Skip to content

Commit ff8028f

Browse files
Merge branch 'openmobilityfoundation:dev' into dev
2 parents fe0d4a4 + 6e8ab41 commit ff8028f

25 files changed

Lines changed: 344 additions & 212 deletions

README.md

Lines changed: 113 additions & 106 deletions
Large diffs are not rendered by default.

ReleaseNotes.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,64 @@
1+
## 1.1.0
2+
3+
> Released: 2021-03-30
4+
5+
> [Release Plan](https://github.com/openmobilityfoundation/governance/wiki/Release-1.1.0)
6+
7+
The 1.1.0 minor release adds new top level APIs (geography, jurisdictions), privacy options (provider reports, geography-driven events, metrics), and transparency features (public endpoints).
8+
9+
### CHANGES
10+
11+
See the closed PRs tagged with [Milestone 1.1.0](https://github.com/openmobilityfoundation/mobility-data-specification/pulls?q=is%3Apr+is%3Aclosed+milestone%3A1.1.0) and [Issues](https://github.com/openmobilityfoundation/mobility-data-specification/issues?q=is%3Aissue+milestone%3A1.1.0+is%3Aclosed) for a full list of changes.
12+
13+
**_MDS_**
14+
15+
- [Policy and Geography can be public](https://github.com/openmobilityfoundation/mobility-data-specification/pull/585)
16+
- [Geography-Driven Events](https://github.com/openmobilityfoundation/mobility-data-specification/pull/503): [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/480)
17+
18+
_Minor Updates_
19+
20+
- [Unregistered error](https://github.com/openmobilityfoundation/mobility-data-specification/pull/565)
21+
- [Geography updates](https://github.com/openmobilityfoundation/mobility-data-specification/issues/474)
22+
- [Stops updates](https://github.com/openmobilityfoundation/mobility-data-specification/pull/603)
23+
- [Response time expectations](https://github.com/openmobilityfoundation/mobility-data-specification/pull/563)
24+
- [Geography publish date field consistency](https://github.com/openmobilityfoundation/mobility-data-specification/pull/597)
25+
- [Adding more cities using MDS](https://github.com/openmobilityfoundation/mobility-data-specification/pull/591)
26+
- [Adding more providers using MDS](https://github.com/openmobilityfoundation/mobility-data-specification/blob/dev/providers.csv)
27+
- [Added a section for third party software companies using MDS](https://github.com/openmobilityfoundation/mobility-data-specification/issues/552) and cleaned up home page, moving list content to the OMF website
28+
- [Update geography_json field type](https://github.com/openmobilityfoundation/mobility-data-specification/issues/635)
29+
30+
**_Provider_**
31+
32+
- [New Reports](https://github.com/openmobilityfoundation/mobility-data-specification/pull/607): [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/569)
33+
34+
**_Agency_**
35+
36+
- N/A
37+
38+
**_Policy_**
39+
40+
- [Images of Stops](https://github.com/openmobilityfoundation/mobility-data-specification/issues/555)
41+
- [Clarify update frequency](https://github.com/openmobilityfoundation/mobility-data-specification/pull/609): [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/567)
42+
43+
**_Geography_**
44+
45+
- [Elevating Geography to a first class API](https://github.com/openmobilityfoundation/mobility-data-specification/pull/582): [PR](https://github.com/openmobilityfoundation/mobility-data-specification/pull/499), [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/500)
46+
- [Geography Types](https://github.com/openmobilityfoundation/mobility-data-specification/pull/581): [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/580), [Discussion](https://github.com/openmobilityfoundation/mobility-data-specification/discussions/588)
47+
48+
**_Metrics_**
49+
50+
- [New Agency Metrics API](https://github.com/openmobilityfoundation/mobility-data-specification/issues/485): [Definitions PR](https://github.com/openmobilityfoundation/mobility-data-specification/pull/487), [Spec PR](https://github.com/openmobilityfoundation/mobility-data-specification/pull/486), [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/485)
51+
52+
**_Jurisdiction_**
53+
54+
- [New Jurisdiction API](https://github.com/openmobilityfoundation/mobility-data-specification/pull/593): [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues/474)
55+
156
## 1.0.0
257

358
> Released: 2020-09-16
459
60+
> [Release Plan](https://github.com/openmobilityfoundation/governance/wiki/Release-1.0.0)
61+
562
The 1.0.0 release reconciles and aligns many parts of the MDS specification and adds features and updates requested by the community, including many new detailed vehicle states and event types, support for Stops (for docked vehicles, dockless corrals, parking areas), and adding rates (fees/subsidies) to Policy.
663

764
### CHANGES

agency/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Mobility Data Specification: **Agency**
22

3+
<a href="/agency/"><img src="https://i.imgur.com/HzMWtaI.png" width="120" align="right" alt="MDS Agency Icon" border="0"></a>
4+
35
The Agency API endpoints are intended to be implemented by regulatory agencies and consumed by mobility providers. Providers query the Agency API when events (such as a trip start or vehicle status change) occur in their systems.
46

57
This specification contains a collection of RESTful APIs used to specify the digital relationship between *mobility as a service* providers and the agencies that regulate them.
@@ -184,7 +186,7 @@ Body Params:
184186
| `event_types` | Enum[] | Required | see [Vehicle Events][vehicle-events] |
185187
| `timestamp` | [timestamp][ts] | Required | Date of last event update |
186188
| `telemetry` | [Telemetry](#telemetry-data) | Required | Single point of telemetry. |
187-
| `event_geographies` | UUID[] | Optional | **[Beta feature](/general-information.md#beta-features):** *Yes (as of 1.1.0)*. Array of Geography UUIDs consisting of every Geography that contains the location of the event. See [Geography Driven Events](#geography-driven-events). Required if `telemetry` is not present. |
189+
| `event_geographies` | UUID[] | Optional | **[Beta feature](/general-information.md#beta-features):** *Yes (as of 1.1.0)*. Array of Geography UUIDs consisting of every Geography that contains the location of the event. See [Geography Driven Events][geography-driven-events]. Required if `telemetry` is not present. |
188190
| `trip_id` | UUID | Optional | UUID provided by Operator to uniquely identify the trip. Required if `event_types` contains `trip_start`, `trip_end`, `trip_cancel`, `trip_enter_jurisdiction`, or `trip_leave_jurisdiction` |
189191

190192
201 Success Response:
@@ -330,7 +332,7 @@ If `stop_id` is specified, `GET` will return an array with a single stop record,
330332
[general]: /general-information.md
331333
[geography-driven-events]: /general-information.md#geography-driven-events
332334
[error-messages]: /general-information.md#error-messages
333-
[hdop]: https://support.esri.com/en/other-resources/gis-dictionary/term/358112bd-b61c-4081-9679-4fca9e3eb926
335+
[hdop]: https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation)
334336
[propulsion-types]: /general-information.md#propulsion-types
335337
[responses]: /general-information.md#responses
336338
[stops]: /general-information.md#stops

agency/get_stops.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@
156156
"type": "number",
157157
"description": "Integer milliseconds since Unix epoch",
158158
"multipleOf": 1.0,
159-
"minimum": 0
159+
"minimum": 1514764800000
160160
},
161161
"uuid": {
162162
"$id": "#/definitions/uuid",

agency/get_vehicle.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"type": "number",
3131
"description": "Integer milliseconds since Unix epoch",
3232
"multipleOf": 1.0,
33-
"minimum": 0
33+
"minimum": 1514764800000
3434
},
3535
"vehicle_type": {
3636
"$id": "#/definitions/vehicle_type",

agency/post_stops.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@
156156
"type": "number",
157157
"description": "Integer milliseconds since Unix epoch",
158158
"multipleOf": 1.0,
159-
"minimum": 0
159+
"minimum": 1514764800000
160160
},
161161
"uuid": {
162162
"$id": "#/definitions/uuid",

agency/post_vehicle_event.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"type": "number",
8181
"description": "Integer milliseconds since Unix epoch",
8282
"multipleOf": 1.0,
83-
"minimum": 0
83+
"minimum": 1514764800000
8484
},
8585
"uuid": {
8686
"$id": "#/definitions/uuid",

agency/post_vehicle_telemetry.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"type": "number",
8181
"description": "Integer milliseconds since Unix epoch",
8282
"multipleOf": 1.0,
83-
"minimum": 0
83+
"minimum": 1514764800000
8484
},
8585
"uuid": {
8686
"$id": "#/definitions/uuid",

general-information.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Mobility Data Specification: **General information**
22

3-
This document contains specifications that are shared between the various MDS APIs such as [`agency`][agency], [`policy`][policy], and [`provider`][provider].
3+
This document contains specifications that are shared between the various MDS APIs such as [`agency`][agency], [`policy`][policy], [`provider`][provider], etc.
44

55
## Table of Contents
66

@@ -11,6 +11,8 @@ This document contains specifications that are shared between the various MDS AP
1111
* [Geographic Data][geo]
1212
* [Stop-based Geographic Data](#stop-based-geographic-data)
1313
* [Intersection Operation](#intersection-operation)
14+
* [Geography-Driven Events](#geography-driven-events)
15+
* [Optional Authentication](#optional-authentication)
1416
* [Propulsion Types](#propulsion-types)
1517
* [Responses](#responses)
1618
* [Error Messages](#error-messages)
@@ -32,9 +34,9 @@ This document contains specifications that are shared between the various MDS AP
3234

3335
In some cases, features within MDS may be marked as "beta." These are typically recently added endpoints or fields. Because beta features are new, they may not yet be fully mature and proven in real-world operation. The design of beta features may have undiscovered gaps, ambiguities, or inconsistencies. Implementations of those features are typically also quite new and are more likely to contain bugs or other flaws. Beta features are likely to evolve more rapidly than other parts of the specification.
3436

35-
Despite this, MDS users are highly encouraged to use beta features. New features can only become proven and trusted through implementation, use, and the learning that comes with it. Users should be thoughtful about the role of beta features in their operations. Beta features may be suitable for enabling some new tools and analysis, but may not be appropriate for mission-critical applications or regulatory decisions where certainty and reliability are essential.
37+
Despite this, MDS users are highly encouraged to use beta features. New features can only become proven and trusted through implementation, use, and the learning that comes with it. Users should be thoughtful about the role of beta features in their operations. Users of beta features are strongly encouraged to share their experiences, learnings, and challenges with the broader MDS community via GitHub issues or pull requests. This will inform the refinements that transform beta features into fully proven, stable parts of the specification.
3638

37-
Users of beta features are strongly encouraged to share their experiences, learnings, and challenges with the broader MDS community via GitHub issues or pull requests. This will inform the refinements that transform beta features into fully proven, stable parts of the specification.
39+
Beta features may be suitable for enabling some new tools and analysis, but may not be appropriate for mission-critical applications or regulatory decisions where certainty and reliability are essential. In subsequent releases existing beta features may include breaking changes, even in a minor release. Note that [schemas](/schema) may not be defined for some beta features until they are promoted out of beta.
3840

3941
Working Groups and their Steering Committees are expected to review beta designated features with each release cycle and determine whether the feature has reached the level of stability and maturity needed to remove the beta designation. In a case where a beta feature fails to reach substantial adoption after an extended time, Working Group Steering Committees should discuss whether or not the feature should remain in the specification.
4042

@@ -121,7 +123,9 @@ For the purposes of this specification, the intersection of two geographic datat
121123
122124
[Top][toc]
123125

124-
## Geography-Driven Events **[Beta feature](/general-information.md#beta-features):** *Yes (as of 1.1.0)*
126+
## Geography-Driven Events
127+
128+
**[Beta feature](/general-information.md#beta-features):** *Yes (as of 1.1.0)*
125129

126130
Geography-Driven Events is a new MDS feature for Agencies to perform complete Policy compliance monitoring without precise location data. Geography-Driven Events describe individual vehicles in realtime – not just aggregate data. However, rather than receiving the exact location of a vehicle, Agencies receive information about the vehicle's current geographic region. The regions used for Geography-Driven Events correspond to the Geographies in an Agency's current Policy. In this way, the data-shared using Geography-Driven Events is matched to an Agency's particular regulatory needs.
127131

@@ -139,20 +143,17 @@ Here's how it works in practice:
139143

140144
*Agency adds rule disallowing parking on waterfront path, begins receiving data on events within area.*
141145

142-
143-
144146
Agencies that wish to use Geography-Driven Events do so by requiring a new `event_geographies` field in status events. When an Agency is using Geography-Driven Events, Providers must emit a new `changed_geographies` status event whenever a vehicle in a trip enters or leaves a Geography managed by a Policy.
145147

146148
During the Beta period for this feature, location and telemtry data remain required fields. This allows Aggencies to test Geography-Driven Events, measuring its accuracy and efficacy against regulatory systems based on precise location data. After the beta period, if Geography-Driven Events is deemed by OMF to be accurate and effective, the specification will evolve to allow cities to use Geography-Driven Events in lieu of location or telemtry data.
147149

148-
149150
[Top][toc]
150151

151152
## Optional Authentication
152153

153154
Authorization of the Policy and Geography APIs is no longer required and will be deprecated in next major release with these endpoints becoming optionally private instead of optionally public. An agency may optionally decide to make both the Policy and Geography endpoints unauthenticated and public. This allows transparency for the public to see how the city is regulating, holds the city accountable for their policy decisions, and reduces the technical burden on providers to use these endpoints. A side benefit is that this allows third parties to ingest this information into their applications and services for public benefit.
154155

155-
Note if implementing the beta features [Geography Driven Events](/general-information.md#geography-driven-events), both Policy and Geography must be public.
156+
Note if implementing the beta feature [Geography Driven Events](/general-information.md#geography-driven-events), both Policy and Geography must be public.
156157

157158
[Top][toc]
158159

geography/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Mobility Data Specification: Geography
22

3+
<a href="/geography/"><img src="https://i.imgur.com/JJdKX8b.png" width="120" align="right" alt="MDS Geography Icon" border="0"></a>
4+
35
This specification contains a collection of RESTful APIs used to read Geographies (descriptions of geographical information, e.g. multi-polygons, currently represented via GeoJSON).
46

57
Geographical data has many applications in the context of mobility, such as the description of municipal boundaries, locations for pick-up and drop-off zones, and areas of temporary closure for special events or emergencies. This API is intended to support a variety of other APIs, including the Policy API.
@@ -87,7 +89,7 @@ Authorization is not required. An agency may decide to make this endpoint unauth
8789

8890
## Schema
8991

90-
Placeholder -- link to schema to be added later.
92+
Link to schema will be defined and added in a future release.
9193

9294
[Top][toc]
9395

@@ -99,7 +101,7 @@ Placeholder -- link to schema to be added later.
99101
| `description` | String | Optional | Detailed description of geography |
100102
| `geography_type` | String | Optional | Type of geography, e.g. `municipal_boundary` or `council_district` or custom text. See [Geography Types](#geography-types). |
101103
| `geography_id` | UUID | Required | Unique ID of geography |
102-
| `geography_json` | UUID | Required | The GeoJSON that defines the geographical coordinates. |
104+
| `geography_json` | JSON | Required | The GeoJSON that defines the geographical coordinates. |
103105
| `effective_date` | [timestamp][ts] | Optional | The date at which a Geography is considered "live". Must be at or after `published_date`. |
104106
| `published_date` | [timestamp][ts] | Required | Time that the geography was published, i.e. made immutable |
105107
| `retire_date` | [timestamp][ts] | Optional | Time that the geography is slated to retire. Once the retire date is passed, new policies can no longer reference it and old policies referencing it should be updated. Retired geographies should continue to be returned in the geographies list. Must be after `effective_date`. |

0 commit comments

Comments
 (0)