openapi: 3.0.0 info: title: Open Trip Model version: v5.7 description: | ## Why OTM? In this day and age more and more information about logistics and traffic is shared over the Internet between various parties. To make this communication easier the _Open Trip Model_ specification was created. It is a lightweight data model used to exchange real-time logistic trip data on the web, and to make it easier for shippers, carriers, software vendors, OEMs, and truck manufacturers to create new multi-brand applications and services. To learn more about the what, the why and the how see the **[OTM documentation website](https://opentripmodel.org/)**. ## Changelog Found any bugs on this page? Or have any feature requests for OTM? Create a new ticket on the [OTM5 change requests Github page](https://github.com/opentripmodel/otm5-change-requests) **Version 5.7 (released on 2025-05-23)** * Fix broken link to goods packaging type codes. [See 87](https://github.com/opentripmodel/otm5-change-requests/issues/87). * Fix inconsistent use of plural name 'geoReferences' for non array property in route definitions. Add new property 'geoReference' and deprecate 'geoReferences'. First one is now required. [See 86](https://github.com/opentripmodel/otm5-change-requests/issues/86). * Add enums for location types 'fuelStation', 'serviceStation' and 'other'. Add new property 'otherLocationType' to specify the location type in case of 'other'. [See 73](https://github.com/opentripmodel/otm5-change-requests/issues/73). * Add eight new action result reasons, including 'deliveredElsewhere', 'deliveredToWrongReceiver' and 'other'. In case of 'other' the result reason can be provided as free text in the existing remark property. [See 89](https://github.com/opentripmodel/otm5-change-requests/issues/89). * Add distance property in move action. This can be provided by means of value and unit (e.g. 120 km) [See 90](https://github.com/opentripmodel/otm5-change-requests/issues/90) * Add two specializations of actor, i.e. 'peron' and 'company'. Each with an additional set of properties. [See 100](https://github.com/opentripmodel/otm5-change-requests/issues/100) **Version 5.6 (released on 2023-11-17)** * Add loading and unloading consignment in and from transport equipment. [See 63](https://github.com/opentripmodel/otm5-change-requests/issues/63). * Add enforceability of a constraint. [See 75](https://github.com/opentripmodel/otm5-change-requests/issues/75). * Add recurring date times & durations on actions & events. [See 75](https://github.com/opentripmodel/otm5-change-requests/issues/75). * Add sub-locations as optional field on a location. [See 77](https://github.com/opentripmodel/otm5-change-requests/issues/77). * Add `owner` as a new type of actor role. [See 78](https://github.com/opentripmodel/otm5-change-requests/issues/78). * Add `routeEntityConstraint` and deprecate `routeConstraint`. [See 80](https://github.com/opentripmodel/otm5-change-requests/issues/80). **Version 5.5 (released on 2023-02-07)** * Explain when to use `Consignment` vs `Goods` constraints. [See 42](https://github.com/opentripmodel/otm5-change-requests/issues/42). * Make `fuel` on vehicle an enum instead of a free string. [See 51](https://github.com/opentripmodel/otm5-change-requests/issues/51). * Add `emissionStandardConstraint` as a possible constraint. [See 52](https://github.com/opentripmodel/otm5-change-requests/issues/52). * Add `transportOrder` as a field on `Consignment` to enable the two-way relationship. [See 59](https://github.com/opentripmodel/otm5-change-requests/issues/59). * Add `eori` as a possible contact detail option. [See 60](https://github.com/opentripmodel/otm5-change-requests/issues/60). * Add `valueBoundConstraint` as a possible constraint. [See 61](https://github.com/opentripmodel/otm5-change-requests/issues/61). * Add `refuel` as a possible action. [See 62](https://github.com/opentripmodel/otm5-change-requests/issues/62). * Add `accessConstraint` as possible constraint. [See 69](https://github.com/opentripmodel/otm5-change-requests/issues/69). **Version 5.4 (released on 2022-05-09)** * _Add a `TransportEquipmentConstraint`. [See 46](https://github.com/opentripmodel/otm5-change-requests/issues/46). * _Add `averageFuelConsumption` to vehicle. [See 48](https://github.com/opentripmodel/otm5-change-requests/issues/48). * _Add fuel consumption and emission events. [See 49](https://github.com/opentripmodel/otm5-change-requests/issues/49). * _Add `contextEvents` on entities. [See 49](https://github.com/opentripmodel/otm5-change-requests/issues/49). * _Add `sequenceNr` to all action types. [See 50](https://github.com/opentripmodel/otm5-change-requests/issues/50). * _Add `cancelled` on action results and `receiverAbsent` as 'reason' type. [See 53](https://github.com/opentripmodel/otm5-change-requests/issues/53). * _Add `actors` to all event types. [See 55](https://github.com/opentripmodel/otm5-change-requests/issues/55). * _Add `description` to all constraint types. [See 56](https://github.com/opentripmodel/otm5-change-requests/issues/56). **Version 5.3 (released on 2021-12-16)** * Support 204 (No Content) for delete requests. [See 23](https://github.com/opentripmodel/otm5-change-requests/issues/23). * Add classification lines to goods. [See 26](https://github.com/opentripmodel/otm5-change-requests/issues/26). * Add a result to actions. [See 30](https://github.com/opentripmodel/otm5-change-requests/issues/30). * Extend ADR with points and transport category. [See 31](https://github.com/opentripmodel/otm5-change-requests/issues/31). * Support `relatedConsignments` in consignments. [See 32](https://github.com/opentripmodel/otm5-change-requests/issues/32). * Support UNCode and GLN in locations. [See 36](https://github.com/opentripmodel/otm5-change-requests/issues/36). * Support `temperatureConstraint` as a possible constraint type. [See 37](https://github.com/opentripmodel/otm5-change-requests/issues/37). * Add some references to existing code lists. [See 27](https://github.com/opentripmodel/otm5-change-requests/issues/27). - Using ISO country codes in the country field in addresses. - Using ISO currency codes in 'value-with-unit' fields. - Using the metric system as recommend and default system for dealing with mass, velocity, weight and sizes. - Using the package material codes from the GS1 standard. **Version 5.2 (released on 2021-09-09)** * _Add `transportEquipmentSubType` for example to indicate what type of pallets you use. [See 19](https://github.com/opentripmodel/otm5-change-requests/issues/19). * _Add `timeWindowConstraint` to replace `startDateTimeConstraint` and `endDateTimeConstraint`. [See 6](https://github.com/opentripmodel/otm5-change-requests/issues/6). * _Add `operationalBase` as a location type. [See 22](https://github.com/opentripmodel/otm5-change-requests/issues/22). * _Add more actor role types. [See 20](https://github.com/opentripmodel/otm5-change-requests/issues/20). * _Add new break and wait actions. [See 17](https://github.com/opentripmodel/otm5-change-requests/issues/17). * _Allow for server side UUID generation. [See 16](https://github.com/opentripmodel/otm5-change-requests/issues/16). **Version 5.1 (released on 2021-06-01)** * Add an optional `emission` to Vehicle. [See 13](https://github.com/opentripmodel/otm5-change-requests/issues/13). * Add an optional `transportMode` to Trip and Move. [See 12](https://github.com/opentripmodel/otm5-change-requests/issues/12). * Add optional `grossWeight` to Goods. [See 11](https://github.com/opentripmodel/otm5-change-requests/issues/11). * Add`mobilePhone` as contact detail option. [See 5](https://github.com/opentripmodel/otm5-change-requests/issues/5). * Add an optional `lastModified` field to each entity. [See 2](https://github.com/opentripmodel/otm5-change-requests/issues/2). * Add an optional language to contact details. [See 9](https://github.com/opentripmodel/otm5-change-requests/issues/9). * Add a new entity Document to deal with information about files that can be shared. [See 7](https://github.com/opentripmodel/otm5-change-requests/issues/7). * Add new statuses to Trip and Consignment. [See 4](https://github.com/opentripmodel/otm5-change-requests/issues/4). * Add an optional sensors association to vehicle. [See 2](https://github.com/opentripmodel/otm5-change-requests/issues/2). **Version 5.0 (only documentation changes)** * Add documentation about validation endpoints. * Add reference to the otm5-change-requests github. * Fix the broken checkbox for actions when choosing the `Stop` action. * Document the license plate on a `TransportEquipment` (i.e. a trailer). servers: - url: https://example.com tags: - name: Vehicle description: |- A `Vehicle` is a means to transport consignments from one location to potentially multiple other locations. There are various types of vehicles, each with their own unique properties like size, dimensions, fuel type and means of tranport (by air, on land, over sea). - name: Route description: A route models the path going from one location to at least one other location. - name: Sensor description: A sensor is a device that is able to measure a quantity in a certain unit, such as measuring the speed in km/h. - name: Location description: Object describing a geographic location. A location can either be a point or an area. - name: Actor description: | An `Actor` models a legal entity. A legal entity is an individual, company, or organization that has legal rights and obligations. The use of `Actors` is optional, and is not necessary to use OpenTripModel. Actors can be used e.g. to group all locations that belong to an organisation, or to address an OpenTripModel message to a specific person or organisation. - name: Consignment description: |- A consignment is a description of an identifiable collection of goods items to be transported between the consignor and the consignee. This information may be defined within a transport contract. - name: Trip description: | A Trip is an aggregate entity that combines various entities to model visiting various locations, potentially doing one or multiple actions on each location, such as loading or unloading consignments. It is optionally coupled to a `Vehicle` that is/was driving this trip. - name: Event description: |- Events - like actions - model _dynamic_ entities that couple various _static_ entities at a certain moment in time. Events are used for either real-time updates, or updates on earlier provided data. Notice that in both event types these are _updates_ on earlier provided data, whereas actions are usually used together with the entities they dynamically couple. There are various kinds of events that fall into the two earlier mentioned kinds. **Real-time updates**: - The **LocationUpdateEvent** that provides location data received from some GPS. - The **SensorUpdateEvent** that provides sensor value updates (such as temperature or speed measurements) received from a sensor. - The **StartMovingEvent**, **StopMovingEvent**, **StartEngineEvent**, **StopEngineEvent** that indicate events provided by Fleet Management Systems. **Both real-time and projected/realized events** - The **EmissionEvent** that contains information about how much emission has been produced during a move / on a trip / per consignment. Can be provided as an actual value, projected based on some calculation, or realized as measured by some sensor. - The **FuelConsumedEvent** that contains information about how much fuel was consumed during a move / on a trip / per consignment. Can be provided as an actual value, projected based on some calculation, or realized as measured by some sensor. **Updates on earlier provided data**: - The **UpdateEvent** that is used to update an earlier provided entity with new information. Note that only the changed data has to be provided. - The **AssociationCreatedEvent** and **AssociationRemovedEvent** that allow for _static_ entities to be coupled after the fact. Such as coupling a Vehicle to a Trip. - name: Action description: |- Actions are _dynamic_ entities that are able to couple together various _static_ entities at a certain moment in time. For instance a Load action couples together a Consignment and a Vehicle at the moment the Loading happens. There are various types of Actions: - The **Stop** that models visiting a certain location at a certain time and potentially doing several other actions at that location. - The **Load** action, that models loading in one or multiple Consignments into a vehicle or some sort of container. - The **Unload** action, that models unloading one or multiple Consignments from a vehicle or some other sort of container. - The **HandOver** that indicates transferring a consignment from one Actor to another. - The **Move** that models moving between two or more locations, potentially with detailed route information on _how_ to move between these locations. - The **AttachTransportEquipment** that allows you to attach some equipment to the associated vehicle. Note that you can both load/unload and attach/detach TransportEquipments. For instance loading a container on a ship, or attach a trailer to a truck. So choose the one that is most appropriate. - The **DetachTransportEquipment** that allows you to detach some previously attached equipment from the associated vehicle. - The **Break** action that models a mandatory resting period for the driver of the vehicle. During this period the driver is prohibited from doing any driving activities or other work. - The **Wait** action that models waiting at a particular location during the trip. This can be due to various circumstances such as waiting for the vehicle to be transported by a ferry or train. Or because of waiting at frontiers or docks (e.g. the dock of the loading/unload location is occupied) or traffic prohibitions. The driver is allowed to leave the vehicle during this period. An important aspect distinguishing this from the _break_ action is that waiting times can be shortened because of changing circumstances. For example, if the original waiting time was expected to be 15 minutes because of an occupied dock, but the driver is 10 minutes late, the waiting time can be shortened to 5 minutes until the dock is free. - The **GenericAction** for whenever any of the above actions cannot model the situation appropriately. - name: Goods description: |- Goods are the items to be transported as part of a consignment. Goods can be divided into two sub-types of goods, depending on the use case and the level of detail. Goods either consists of items, describing the actual goods to be transported. Or a transport equipment, which is equipment used to carry the actual goods to be transported. Transport equipment is (usually) a means to an end, not something that needs to be transported on itself, such as pallets. Note that goods can either be or contain dangerous goods. OTM uses the official specification of [ADR](https://unece.org/transportdangerous-goods/adr-2021-files) to describe in what manner and how dangerous those goods are. The used descriptions in the OTM documentation are extracted from document [ADR2021_Vol1e_0.pdf](https://unece.org/sites/default/files/2021-01/ADR2021_Vol1e_0.pdf). The official documentation is always leading and should be consulted. - name: TransportOrder description: |- The TransportOrder is the top-level entity to model a group of related consignments that might be transported separately, but need to be administered together. For consistency, even if there is only one consignment, it is still required to use a transport order. - name: Document description: | In many logistic operations documents are an important part of the data flow. Documents can serve multiple purposes, such as proving some package was delivered with help of a photo, or some scanned document that establishes that the transferred goods are accepted on handover. Documents in OTM come in two flavors, either you provide the content of the document directly as a base64 encoded string, or you provide a link to the document where it can be accessed online. - name: Constraint description: |2 `Constraints` can do different things, depending on the context they're used in: - In the context of a `Location`, access to the location is only allowed if the given constraint applies. - In the context of a `Trip`, constraints can be used to define constraints that have to be met during the trip, e.g. if the temperature in a refrigerated trailer has to stay below a given maximum during the trip. - In the context of a `Shipment`, constraints can be used to e.g. define minimum or maximum temperatures for shipments, or date time constraints for delivery. Since OTM5.2 the _timeWindowConstraint_ is supported which allows you to give (optionally) both the start and end time of the window between which something needs to occur. This replaces the old style where you had to use an _and_ constraint in combination with the _startDateTimeConstraint_ and _endDateTimeConstraint_. Since the new solution is shorter and simpler the _startDateTimeConstraint_ and _endDateTimeConstraint_ are **deprecated**. Note that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. paths: /api/v5/actors/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: 45db6ed0-28a7-4e4a-baba-3d5f8d171103 name: Logistics manager contactDetails: - value: Simon Isaac remark: Wants to be called 'Sim'. type: firstName - value: Macan type: lastName - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone - value: simon@macan type: email - value: NL74BANK5890469479 type: iban - value: NL000099998B57 type: vatCode type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' contactDetails: description: Contact details for this `Actor`. type: array items: oneOf: - $ref: '#/components/schemas/phone' - $ref: '#/components/schemas/mobilePhone' - $ref: '#/components/schemas/email' - $ref: '#/components/schemas/firstName' - $ref: '#/components/schemas/lastName' - $ref: '#/components/schemas/name' - $ref: '#/components/schemas/vatCode' - $ref: '#/components/schemas/gln' - $ref: '#/components/schemas/iban' - $ref: '#/components/schemas/eori' - $ref: '#/components/schemas/other' discriminator: propertyName: type mapping: phone: '#/components/schemas/phone' mobilePhone: '#/components/schemas/mobilePhone' email: '#/components/schemas/email' firstName: '#/components/schemas/firstName' lastName: '#/components/schemas/lastName' name: '#/components/schemas/name' vatCode: '#/components/schemas/vatCode' gln: '#/components/schemas/gln' iban: '#/components/schemas/iban' eori: '#/components/schemas/eori' other: '#/components/schemas/other' locations: description: Locations for this `Actor`. type: array items: oneOf: - $ref: '#/components/schemas/associated-locations-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-locations-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Actor by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Actor required: true tags: - Actor security: - BearerToken: [] delete: responses: '204': description: Deleted actor with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Actor parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Actor to be deleted required: true tags: - Actor security: - BearerToken: [] /api/v5/actors: put: responses: '200': description: The same entity content: application/json: schema: example: id: 45db6ed0-28a7-4e4a-baba-3d5f8d171103 name: Logistics manager contactDetails: - value: Simon Isaac remark: Wants to be called 'Sim'. type: firstName - value: Macan type: lastName - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone - value: simon@macan type: email - value: NL74BANK5890469479 type: iban - value: NL000099998B57 type: vatCode type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' contactDetails: description: Contact details for this `Actor`. type: array items: oneOf: - $ref: '#/components/schemas/phone' - $ref: '#/components/schemas/mobilePhone' - $ref: '#/components/schemas/email' - $ref: '#/components/schemas/firstName' - $ref: '#/components/schemas/lastName' - $ref: '#/components/schemas/name' - $ref: '#/components/schemas/vatCode' - $ref: '#/components/schemas/gln' - $ref: '#/components/schemas/iban' - $ref: '#/components/schemas/eori' - $ref: '#/components/schemas/other' discriminator: propertyName: type mapping: phone: '#/components/schemas/phone' mobilePhone: '#/components/schemas/mobilePhone' email: '#/components/schemas/email' firstName: '#/components/schemas/firstName' lastName: '#/components/schemas/lastName' name: '#/components/schemas/name' vatCode: '#/components/schemas/vatCode' gln: '#/components/schemas/gln' iban: '#/components/schemas/iban' eori: '#/components/schemas/eori' other: '#/components/schemas/other' locations: description: Locations for this `Actor`. type: array items: oneOf: - $ref: '#/components/schemas/associated-locations-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-locations-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Actor requestBody: content: application/json: schema: example: id: 45db6ed0-28a7-4e4a-baba-3d5f8d171103 name: Logistics manager contactDetails: - value: Simon Isaac remark: Wants to be called 'Sim'. type: firstName - value: Macan type: lastName - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone - value: simon@macan type: email - value: NL74BANK5890469479 type: iban - value: NL000099998B57 type: vatCode type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' contactDetails: description: Contact details for this `Actor`. type: array items: oneOf: - $ref: '#/components/schemas/phone' - $ref: '#/components/schemas/mobilePhone' - $ref: '#/components/schemas/email' - $ref: '#/components/schemas/firstName' - $ref: '#/components/schemas/lastName' - $ref: '#/components/schemas/name' - $ref: '#/components/schemas/vatCode' - $ref: '#/components/schemas/gln' - $ref: '#/components/schemas/iban' - $ref: '#/components/schemas/eori' - $ref: '#/components/schemas/other' discriminator: propertyName: type mapping: phone: '#/components/schemas/phone' mobilePhone: '#/components/schemas/mobilePhone' email: '#/components/schemas/email' firstName: '#/components/schemas/firstName' lastName: '#/components/schemas/lastName' name: '#/components/schemas/name' vatCode: '#/components/schemas/vatCode' gln: '#/components/schemas/gln' iban: '#/components/schemas/iban' eori: '#/components/schemas/eori' other: '#/components/schemas/other' locations: description: Locations for this `Actor`. type: array items: oneOf: - $ref: '#/components/schemas/associated-locations-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-locations-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' tags: - Actor security: - BearerToken: [] /api/v5/constraints/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' value: $ref: '#/components/schemas/constraintValue' enforceability: description: The enforceability of the constraint. Indicates whether or not the constraint is a suggestion/preference or something that is mandatory to adhere to. default: enforced type: string enum: - enforced - preference externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' required: - value '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Constraint by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Constraint required: true tags: - Constraint security: - BearerToken: [] delete: responses: '204': description: Deleted constraint with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Constraint parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Constraint to be deleted required: true tags: - Constraint security: - BearerToken: [] /api/v5/constraints: put: responses: '200': description: The same entity content: application/json: schema: example: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' value: $ref: '#/components/schemas/constraintValue' enforceability: description: The enforceability of the constraint. Indicates whether or not the constraint is a suggestion/preference or something that is mandatory to adhere to. default: enforced type: string enum: - enforced - preference externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' required: - value '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Constraint requestBody: content: application/json: schema: example: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' value: $ref: '#/components/schemas/constraintValue' enforceability: description: The enforceability of the constraint. Indicates whether or not the constraint is a suggestion/preference or something that is mandatory to adhere to. default: enforced type: string enum: - enforced - preference externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' required: - value tags: - Constraint security: - BearerToken: [] /api/v5/locations/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: 11c11d75-e114-4b5f-9751-b3a4afa23ecf name: Main warehouse geoReference: lat: 5.4126792 lon: 52.1956251 type: latLonPointGeoReference type: warehouse administrativeReference: name: Supermarket warehouse street: Valutaboulevard houseNumber: '16' houseNumberAddition: C postalCode: 1825BT city: Amersfoort country: NL contactDetails: - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone remark: The cafe around the corner has the best coffee in town. type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' geoReference: description: Describes a geographic reference, this is the primary way to link a `Location` entity to a physical, geographic location. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' unCode: description: |- the United Nations Code for Trade and Transport Locations, is a geographic coding scheme developed and maintained by United Nations Economic Commission for Europe (UNECE) to uniquely identify locations. See [this Wikipedia page](https://en.wikipedia.org/wiki/UN/LOCODE). type: string gln: description: |- The Global Location Number (GLN) is part of the GS1 systems of standards to uniquely identify a location. See also this [Wikipedia page](https://en.wikipedia.org/wiki/Global_Location_Number) type: string type: description: The type of location. type: string enum: - warehouse - store - environmentalZone - restrictedArea - customer - operationalBase - fuelStation - serviceStation - other otherLocationType: description: Description of the location in case type of location is set to 'other'. type: string administrativeReference: description: 'Address information that is used as an administrative reference. For example: when the actual load location is different from the officially registered location, this holds the latter' allOf: - $ref: '#/components/schemas/Address' contactDetails: description: Contact details for this `Location`. type: array items: oneOf: - $ref: '#/components/schemas/phone' - $ref: '#/components/schemas/mobilePhone' - $ref: '#/components/schemas/email' - $ref: '#/components/schemas/firstName' - $ref: '#/components/schemas/lastName' - $ref: '#/components/schemas/name' - $ref: '#/components/schemas/vatCode' - $ref: '#/components/schemas/gln' - $ref: '#/components/schemas/iban' - $ref: '#/components/schemas/eori' - $ref: '#/components/schemas/other' discriminator: propertyName: type mapping: phone: '#/components/schemas/phone' mobilePhone: '#/components/schemas/mobilePhone' email: '#/components/schemas/email' firstName: '#/components/schemas/firstName' lastName: '#/components/schemas/lastName' name: '#/components/schemas/name' vatCode: '#/components/schemas/vatCode' gln: '#/components/schemas/gln' iban: '#/components/schemas/iban' eori: '#/components/schemas/eori' other: '#/components/schemas/other' remark: description: Remark about the location. Please don't misuse this field for external references, use the `externalAttributes` field instead. type: string subLocations: description: |- The locations that are can be identified on their own, but are also part of this location. For example a dock at a large distribution area. Sub-locations can also be seen as 'points of interest' on a larger location. type: array items: oneOf: - $ref: '#/components/schemas/associated-locations-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-locations-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: Locations can be associated with actors in multiple ways, though the most common one is the _owner_ of the location, either a person or a legal entity. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: Multiple actions can be associated with a location, such as a Last-Mile guidance that should be followed to reach that location. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: |- In the context of a `Location`, access to the location is only allowed if the given constraint applies. > **ℹ Note** that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. oneOf: - $ref: '#/components/schemas/location-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/location-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' required: - geoReference '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Location by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Location required: true tags: - Location security: - BearerToken: [] delete: responses: '204': description: Deleted location with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Location parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Location to be deleted required: true tags: - Location security: - BearerToken: [] /api/v5/locations: put: responses: '200': description: The same entity content: application/json: schema: example: id: 11c11d75-e114-4b5f-9751-b3a4afa23ecf name: Main warehouse geoReference: lat: 5.4126792 lon: 52.1956251 type: latLonPointGeoReference type: warehouse administrativeReference: name: Supermarket warehouse street: Valutaboulevard houseNumber: '16' houseNumberAddition: C postalCode: 1825BT city: Amersfoort country: NL contactDetails: - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone remark: The cafe around the corner has the best coffee in town. type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' geoReference: description: Describes a geographic reference, this is the primary way to link a `Location` entity to a physical, geographic location. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' unCode: description: |- the United Nations Code for Trade and Transport Locations, is a geographic coding scheme developed and maintained by United Nations Economic Commission for Europe (UNECE) to uniquely identify locations. See [this Wikipedia page](https://en.wikipedia.org/wiki/UN/LOCODE). type: string gln: description: |- The Global Location Number (GLN) is part of the GS1 systems of standards to uniquely identify a location. See also this [Wikipedia page](https://en.wikipedia.org/wiki/Global_Location_Number) type: string type: description: The type of location. type: string enum: - warehouse - store - environmentalZone - restrictedArea - customer - operationalBase - fuelStation - serviceStation - other otherLocationType: description: Description of the location in case type of location is set to 'other'. type: string administrativeReference: description: 'Address information that is used as an administrative reference. For example: when the actual load location is different from the officially registered location, this holds the latter' allOf: - $ref: '#/components/schemas/Address' contactDetails: description: Contact details for this `Location`. type: array items: oneOf: - $ref: '#/components/schemas/phone' - $ref: '#/components/schemas/mobilePhone' - $ref: '#/components/schemas/email' - $ref: '#/components/schemas/firstName' - $ref: '#/components/schemas/lastName' - $ref: '#/components/schemas/name' - $ref: '#/components/schemas/vatCode' - $ref: '#/components/schemas/gln' - $ref: '#/components/schemas/iban' - $ref: '#/components/schemas/eori' - $ref: '#/components/schemas/other' discriminator: propertyName: type mapping: phone: '#/components/schemas/phone' mobilePhone: '#/components/schemas/mobilePhone' email: '#/components/schemas/email' firstName: '#/components/schemas/firstName' lastName: '#/components/schemas/lastName' name: '#/components/schemas/name' vatCode: '#/components/schemas/vatCode' gln: '#/components/schemas/gln' iban: '#/components/schemas/iban' eori: '#/components/schemas/eori' other: '#/components/schemas/other' remark: description: Remark about the location. Please don't misuse this field for external references, use the `externalAttributes` field instead. type: string subLocations: description: |- The locations that are can be identified on their own, but are also part of this location. For example a dock at a large distribution area. Sub-locations can also be seen as 'points of interest' on a larger location. type: array items: oneOf: - $ref: '#/components/schemas/associated-locations-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-locations-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: Locations can be associated with actors in multiple ways, though the most common one is the _owner_ of the location, either a person or a legal entity. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: Multiple actions can be associated with a location, such as a Last-Mile guidance that should be followed to reach that location. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: |- In the context of a `Location`, access to the location is only allowed if the given constraint applies. > **ℹ Note** that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. oneOf: - $ref: '#/components/schemas/location-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/location-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' required: - geoReference '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Location requestBody: content: application/json: schema: example: id: 11c11d75-e114-4b5f-9751-b3a4afa23ecf name: Main warehouse geoReference: lat: 5.4126792 lon: 52.1956251 type: latLonPointGeoReference type: warehouse administrativeReference: name: Supermarket warehouse street: Valutaboulevard houseNumber: '16' houseNumberAddition: C postalCode: 1825BT city: Amersfoort country: NL contactDetails: - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone remark: The cafe around the corner has the best coffee in town. type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' geoReference: description: Describes a geographic reference, this is the primary way to link a `Location` entity to a physical, geographic location. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' unCode: description: |- the United Nations Code for Trade and Transport Locations, is a geographic coding scheme developed and maintained by United Nations Economic Commission for Europe (UNECE) to uniquely identify locations. See [this Wikipedia page](https://en.wikipedia.org/wiki/UN/LOCODE). type: string gln: description: |- The Global Location Number (GLN) is part of the GS1 systems of standards to uniquely identify a location. See also this [Wikipedia page](https://en.wikipedia.org/wiki/Global_Location_Number) type: string type: description: The type of location. type: string enum: - warehouse - store - environmentalZone - restrictedArea - customer - operationalBase - fuelStation - serviceStation - other otherLocationType: description: Description of the location in case type of location is set to 'other'. type: string administrativeReference: description: 'Address information that is used as an administrative reference. For example: when the actual load location is different from the officially registered location, this holds the latter' allOf: - $ref: '#/components/schemas/Address' contactDetails: description: Contact details for this `Location`. type: array items: oneOf: - $ref: '#/components/schemas/phone' - $ref: '#/components/schemas/mobilePhone' - $ref: '#/components/schemas/email' - $ref: '#/components/schemas/firstName' - $ref: '#/components/schemas/lastName' - $ref: '#/components/schemas/name' - $ref: '#/components/schemas/vatCode' - $ref: '#/components/schemas/gln' - $ref: '#/components/schemas/iban' - $ref: '#/components/schemas/eori' - $ref: '#/components/schemas/other' discriminator: propertyName: type mapping: phone: '#/components/schemas/phone' mobilePhone: '#/components/schemas/mobilePhone' email: '#/components/schemas/email' firstName: '#/components/schemas/firstName' lastName: '#/components/schemas/lastName' name: '#/components/schemas/name' vatCode: '#/components/schemas/vatCode' gln: '#/components/schemas/gln' iban: '#/components/schemas/iban' eori: '#/components/schemas/eori' other: '#/components/schemas/other' remark: description: Remark about the location. Please don't misuse this field for external references, use the `externalAttributes` field instead. type: string subLocations: description: |- The locations that are can be identified on their own, but are also part of this location. For example a dock at a large distribution area. Sub-locations can also be seen as 'points of interest' on a larger location. type: array items: oneOf: - $ref: '#/components/schemas/associated-locations-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-locations-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: Locations can be associated with actors in multiple ways, though the most common one is the _owner_ of the location, either a person or a legal entity. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: Multiple actions can be associated with a location, such as a Last-Mile guidance that should be followed to reach that location. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: |- In the context of a `Location`, access to the location is only allowed if the given constraint applies. > **ℹ Note** that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. oneOf: - $ref: '#/components/schemas/location-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/location-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' required: - geoReference tags: - Location security: - BearerToken: [] /api/v5/routes/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: beb9a25f-3f64-42ae-b1c6-e89cd450f66b name: An example route using coordinates to indicate how to drive. geoReference: geometry: coordinates: - - 1 - 0 - - 5 - 0 - - 5 - 3 - - 13 - 3 - - 13 - 7 type: LineString type: Feature type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' geoReference: description: Geographic representation of this route. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' geoReferences: deprecated: true description: Geographic representation of this route. This property is deprecated; use geoReferece (not plural) instead. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' actors: description: Actors associated with this route, for instance the Company that requires this route as a Last-Mile guidance. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: All the actions that need to be executed on this route. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: Constraints of using this route, for instance it might only be used by vehicles with below a certain weight. oneOf: - $ref: '#/components/schemas/route-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/route-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' required: - geoReference '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Route by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Route required: true tags: - Route security: - BearerToken: [] delete: responses: '204': description: Deleted route with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Route parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Route to be deleted required: true tags: - Route security: - BearerToken: [] /api/v5/routes: put: responses: '200': description: The same entity content: application/json: schema: example: id: beb9a25f-3f64-42ae-b1c6-e89cd450f66b name: An example route using coordinates to indicate how to drive. geoReference: geometry: coordinates: - - 1 - 0 - - 5 - 0 - - 5 - 3 - - 13 - 3 - - 13 - 7 type: LineString type: Feature type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' geoReference: description: Geographic representation of this route. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' geoReferences: deprecated: true description: Geographic representation of this route. This property is deprecated; use geoReferece (not plural) instead. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' actors: description: Actors associated with this route, for instance the Company that requires this route as a Last-Mile guidance. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: All the actions that need to be executed on this route. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: Constraints of using this route, for instance it might only be used by vehicles with below a certain weight. oneOf: - $ref: '#/components/schemas/route-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/route-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' required: - geoReference '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Route requestBody: content: application/json: schema: example: id: beb9a25f-3f64-42ae-b1c6-e89cd450f66b name: An example route using coordinates to indicate how to drive. geoReference: geometry: coordinates: - - 1 - 0 - - 5 - 0 - - 5 - 3 - - 13 - 3 - - 13 - 7 type: LineString type: Feature type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' geoReference: description: Geographic representation of this route. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' geoReferences: deprecated: true description: Geographic representation of this route. This property is deprecated; use geoReferece (not plural) instead. oneOf: - $ref: '#/components/schemas/latLonPointGeoReference' - $ref: '#/components/schemas/latLonArrayGeoReference' - $ref: '#/components/schemas/Feature' - $ref: '#/components/schemas/openLRGeoReference' - $ref: '#/components/schemas/tmcLocationGeoReference' - $ref: '#/components/schemas/tmcArrayGeoReference' - $ref: '#/components/schemas/addressGeoReference' discriminator: propertyName: type mapping: latLonPointGeoReference: '#/components/schemas/latLonPointGeoReference' latLonArrayGeoReference: '#/components/schemas/latLonArrayGeoReference' Feature: '#/components/schemas/Feature' openLRGeoReference: '#/components/schemas/openLRGeoReference' tmcLocationGeoReference: '#/components/schemas/tmcLocationGeoReference' tmcArrayGeoReference: '#/components/schemas/tmcArrayGeoReference' addressGeoReference: '#/components/schemas/addressGeoReference' actors: description: Actors associated with this route, for instance the Company that requires this route as a Last-Mile guidance. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: All the actions that need to be executed on this route. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: Constraints of using this route, for instance it might only be used by vehicles with below a certain weight. oneOf: - $ref: '#/components/schemas/route-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/route-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' required: - geoReference tags: - Route security: - BearerToken: [] /api/v5/sensors/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: 6666f00c-1332-472c-aff9-bc11b3d53296 name: Temperature sensor in trailer x placement: Compartment 1 sensorType: accelerometer actors: - entity: id: 45db6ed0-28a7-4e4a-baba-3d5f8d171103 name: Logistics manager contactDetails: - value: Simon Isaac remark: Wants to be called 'Sim'. type: firstName - value: Macan type: lastName - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone - value: simon@macan type: email - value: NL74BANK5890469479 type: iban - value: NL000099998B57 type: vatCode associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' placement: description: |- Sometimes more than one sensor can be associated with a single entity. This is the case e.g. in cooled trailers that are divided into compartments with different temperatures, where each compartment has its own sensor. The `placement` member can be used to identify where a sensor is placed. Parties using OpenTripModel to exchange sensor data may wish to agree on a standardized naming, but this is too specific to describe in the standard. type: string sensorType: description: The type of sensor. type: string actors: description: The actors associated with this sensor, for instance the owners, the producers or the users of this sensor. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' constraint: description: | In the context of a `Sensor`, only `sensorValueConstraint`s really make sense. You can use such a constraint to model a sensor of which the measured value must be within certain bounds at all times. > **ℹ Note** that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. oneOf: - $ref: '#/components/schemas/sensor-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/sensor-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Sensor by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Sensor required: true tags: - Sensor security: - BearerToken: [] delete: responses: '204': description: Deleted sensor with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Sensor parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Sensor to be deleted required: true tags: - Sensor security: - BearerToken: [] /api/v5/sensors: put: responses: '200': description: The same entity content: application/json: schema: example: id: 6666f00c-1332-472c-aff9-bc11b3d53296 name: Temperature sensor in trailer x placement: Compartment 1 sensorType: accelerometer actors: - entity: id: 45db6ed0-28a7-4e4a-baba-3d5f8d171103 name: Logistics manager contactDetails: - value: Simon Isaac remark: Wants to be called 'Sim'. type: firstName - value: Macan type: lastName - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone - value: simon@macan type: email - value: NL74BANK5890469479 type: iban - value: NL000099998B57 type: vatCode associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' placement: description: |- Sometimes more than one sensor can be associated with a single entity. This is the case e.g. in cooled trailers that are divided into compartments with different temperatures, where each compartment has its own sensor. The `placement` member can be used to identify where a sensor is placed. Parties using OpenTripModel to exchange sensor data may wish to agree on a standardized naming, but this is too specific to describe in the standard. type: string sensorType: description: The type of sensor. type: string actors: description: The actors associated with this sensor, for instance the owners, the producers or the users of this sensor. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' constraint: description: | In the context of a `Sensor`, only `sensorValueConstraint`s really make sense. You can use such a constraint to model a sensor of which the measured value must be within certain bounds at all times. > **ℹ Note** that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. oneOf: - $ref: '#/components/schemas/sensor-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/sensor-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Sensor requestBody: content: application/json: schema: example: id: 6666f00c-1332-472c-aff9-bc11b3d53296 name: Temperature sensor in trailer x placement: Compartment 1 sensorType: accelerometer actors: - entity: id: 45db6ed0-28a7-4e4a-baba-3d5f8d171103 name: Logistics manager contactDetails: - value: Simon Isaac remark: Wants to be called 'Sim'. type: firstName - value: Macan type: lastName - value: '+312012345678' remark: private cellphone of the CEO language: nld type: phone - value: simon@macan type: email - value: NL74BANK5890469479 type: iban - value: NL000099998B57 type: vatCode associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' placement: description: |- Sometimes more than one sensor can be associated with a single entity. This is the case e.g. in cooled trailers that are divided into compartments with different temperatures, where each compartment has its own sensor. The `placement` member can be used to identify where a sensor is placed. Parties using OpenTripModel to exchange sensor data may wish to agree on a standardized naming, but this is too specific to describe in the standard. type: string sensorType: description: The type of sensor. type: string actors: description: The actors associated with this sensor, for instance the owners, the producers or the users of this sensor. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' constraint: description: | In the context of a `Sensor`, only `sensorValueConstraint`s really make sense. You can use such a constraint to model a sensor of which the measured value must be within certain bounds at all times. > **ℹ Note** that constraints can be nested and combined using the `andConstraint`, `orConstraint` and `notConstraint`. oneOf: - $ref: '#/components/schemas/sensor-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/sensor-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' tags: - Sensor security: - BearerToken: [] /api/v5/consignments/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' description: description: General description of consignment in Free text. e.g 20 europallets fruit. Meant for human inspection, not for automating processes. type: string status: description: |- Whether this consignment is a draft, requested, confirmed, in transit, completed or cancelled. The values accepted (replaced by confirmed) and modified (replaced the lastModified field on every entity) are deprecated since OTM5.1, but will be supported for the whole OTM5.X line. type: string enum: - draft - requested - confirmed - inTransit - completed - cancelled - accepted - modified type: description: Free text to describe type of consignment. Usually used to indicate the property types of the products being transported (e.g. frozen, fragile, etc.). type: string goods: description: The various goods that need to be transported, together they are part of this consignment. type: array items: oneOf: - $ref: '#/components/schemas/goods-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/goods-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' transportOrder: description: The transport order this consignment belongs to. oneOf: - $ref: '#/components/schemas/transportOrder-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/transportOrder-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' documents: description: Documents that are relevant for this consignment. Such as an official agreement between consignee and consignor. type: array items: oneOf: - $ref: '#/components/schemas/documents-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/documents-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' remark: description: Remark concerning the complete consignment, to be printed on the transport document. type: string actors: description: The actors associated with this consignment, for instance the shipper and carrier. One should inline the actors only on the top-level entity (such as the transportOrder or trip) type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: General description of actions related to the consignment f.e. loading, unloading, hand over, drop of. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: |- Constraints this consignment has to abide to, such special equipment (tail lift, truck mounted forklift), special vehicle, special instructions related to consignor and consignee. Note that you can put the constraints on the individual goods. However using constraints on the consignment is simpler and therefore recommended when possible. oneOf: - $ref: '#/components/schemas/consignment-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/consignment-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' relatedConsignments: description: |- Consignments that have replaced the current consignment. Because of various reasons a consignment can be cancelled and replaced by one or more other consignments. An example is that the consignment is too large to be transported as a single 'transportable unit'. You can use the `relation` field in the association to indicate the type of relationship. type: array items: oneOf: - $ref: '#/components/schemas/relatedConsignments-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/relatedConsignments-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Consignment by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Consignment required: true tags: - Consignment security: - BearerToken: [] delete: responses: '204': description: Deleted consignment with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Consignment parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Consignment to be deleted required: true tags: - Consignment security: - BearerToken: [] /api/v5/consignments: put: responses: '200': description: The same entity content: application/json: schema: type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' description: description: General description of consignment in Free text. e.g 20 europallets fruit. Meant for human inspection, not for automating processes. type: string status: description: |- Whether this consignment is a draft, requested, confirmed, in transit, completed or cancelled. The values accepted (replaced by confirmed) and modified (replaced the lastModified field on every entity) are deprecated since OTM5.1, but will be supported for the whole OTM5.X line. type: string enum: - draft - requested - confirmed - inTransit - completed - cancelled - accepted - modified type: description: Free text to describe type of consignment. Usually used to indicate the property types of the products being transported (e.g. frozen, fragile, etc.). type: string goods: description: The various goods that need to be transported, together they are part of this consignment. type: array items: oneOf: - $ref: '#/components/schemas/goods-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/goods-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' transportOrder: description: The transport order this consignment belongs to. oneOf: - $ref: '#/components/schemas/transportOrder-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/transportOrder-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' documents: description: Documents that are relevant for this consignment. Such as an official agreement between consignee and consignor. type: array items: oneOf: - $ref: '#/components/schemas/documents-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/documents-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' remark: description: Remark concerning the complete consignment, to be printed on the transport document. type: string actors: description: The actors associated with this consignment, for instance the shipper and carrier. One should inline the actors only on the top-level entity (such as the transportOrder or trip) type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: General description of actions related to the consignment f.e. loading, unloading, hand over, drop of. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: |- Constraints this consignment has to abide to, such special equipment (tail lift, truck mounted forklift), special vehicle, special instructions related to consignor and consignee. Note that you can put the constraints on the individual goods. However using constraints on the consignment is simpler and therefore recommended when possible. oneOf: - $ref: '#/components/schemas/consignment-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/consignment-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' relatedConsignments: description: |- Consignments that have replaced the current consignment. Because of various reasons a consignment can be cancelled and replaced by one or more other consignments. An example is that the consignment is too large to be transported as a single 'transportable unit'. You can use the `relation` field in the association to indicate the type of relationship. type: array items: oneOf: - $ref: '#/components/schemas/relatedConsignments-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/relatedConsignments-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Consignment requestBody: content: application/json: schema: type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' description: description: General description of consignment in Free text. e.g 20 europallets fruit. Meant for human inspection, not for automating processes. type: string status: description: |- Whether this consignment is a draft, requested, confirmed, in transit, completed or cancelled. The values accepted (replaced by confirmed) and modified (replaced the lastModified field on every entity) are deprecated since OTM5.1, but will be supported for the whole OTM5.X line. type: string enum: - draft - requested - confirmed - inTransit - completed - cancelled - accepted - modified type: description: Free text to describe type of consignment. Usually used to indicate the property types of the products being transported (e.g. frozen, fragile, etc.). type: string goods: description: The various goods that need to be transported, together they are part of this consignment. type: array items: oneOf: - $ref: '#/components/schemas/goods-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/goods-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' transportOrder: description: The transport order this consignment belongs to. oneOf: - $ref: '#/components/schemas/transportOrder-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/transportOrder-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' documents: description: Documents that are relevant for this consignment. Such as an official agreement between consignee and consignor. type: array items: oneOf: - $ref: '#/components/schemas/documents-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/documents-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' remark: description: Remark concerning the complete consignment, to be printed on the transport document. type: string actors: description: The actors associated with this consignment, for instance the shipper and carrier. One should inline the actors only on the top-level entity (such as the transportOrder or trip) type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: General description of actions related to the consignment f.e. loading, unloading, hand over, drop of. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: |- Constraints this consignment has to abide to, such special equipment (tail lift, truck mounted forklift), special vehicle, special instructions related to consignor and consignee. Note that you can put the constraints on the individual goods. However using constraints on the consignment is simpler and therefore recommended when possible. oneOf: - $ref: '#/components/schemas/consignment-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/consignment-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' relatedConsignments: description: |- Consignments that have replaced the current consignment. Because of various reasons a consignment can be cancelled and replaced by one or more other consignments. An example is that the consignment is too large to be transported as a single 'transportable unit'. You can use the `relation` field in the association to indicate the type of relationship. type: array items: oneOf: - $ref: '#/components/schemas/relatedConsignments-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/relatedConsignments-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' tags: - Consignment security: - BearerToken: [] /api/v5/goods/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: oneOf: - $ref: '#/components/schemas/items' - $ref: '#/components/schemas/transportEquipment' discriminator: propertyName: type mapping: items: '#/components/schemas/items' transportEquipment: '#/components/schemas/transportEquipment' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Goods by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Goods required: true tags: - Goods security: - BearerToken: [] delete: responses: '204': description: Deleted goods with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Goods parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Goods to be deleted required: true tags: - Goods security: - BearerToken: [] /api/v5/goods: put: responses: '200': description: The same entity content: application/json: schema: oneOf: - $ref: '#/components/schemas/items' - $ref: '#/components/schemas/transportEquipment' discriminator: propertyName: type mapping: items: '#/components/schemas/items' transportEquipment: '#/components/schemas/transportEquipment' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Goods requestBody: content: application/json: schema: oneOf: - $ref: '#/components/schemas/items' - $ref: '#/components/schemas/transportEquipment' discriminator: propertyName: type mapping: items: '#/components/schemas/items' transportEquipment: '#/components/schemas/transportEquipment' tags: - Goods security: - BearerToken: [] /api/v5/transportOrders/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: baa507c2-1d81-4092-a5c2-e80820ee4fd1 externalAttributes: id: OrderId description: Transport order containing all consignments to be shipped. consignments: - entity: id: e75a541b-e9d9-49e7-8bba-95492d682a6c description: Package for miss X. associationType: inline - entity: id: 4a08bd61-720e-4a8c-81cf-028f1271c4da description: Package for mr Y. associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' description: description: A free text description of this transport order, e.g. boxes of fruit ordered by Simacan. type: string consignments: description: All consignments belonging to this transport order. type: array items: oneOf: - $ref: '#/components/schemas/consignments-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/consignments-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: The actors associated with this transport order, for instance the consignor, consignee. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' constraint: description: Constraints this transport order has to abide to, such as the expected delivery time windows. oneOf: - $ref: '#/components/schemas/transport-order-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/transport-order-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific TransportOrder by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this TransportOrder required: true tags: - TransportOrder security: - BearerToken: [] delete: responses: '204': description: Deleted transportOrder with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a TransportOrder parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the TransportOrder to be deleted required: true tags: - TransportOrder security: - BearerToken: [] /api/v5/transportOrders: put: responses: '200': description: The same entity content: application/json: schema: example: id: baa507c2-1d81-4092-a5c2-e80820ee4fd1 externalAttributes: id: OrderId description: Transport order containing all consignments to be shipped. consignments: - entity: id: e75a541b-e9d9-49e7-8bba-95492d682a6c description: Package for miss X. associationType: inline - entity: id: 4a08bd61-720e-4a8c-81cf-028f1271c4da description: Package for mr Y. associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' description: description: A free text description of this transport order, e.g. boxes of fruit ordered by Simacan. type: string consignments: description: All consignments belonging to this transport order. type: array items: oneOf: - $ref: '#/components/schemas/consignments-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/consignments-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: The actors associated with this transport order, for instance the consignor, consignee. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' constraint: description: Constraints this transport order has to abide to, such as the expected delivery time windows. oneOf: - $ref: '#/components/schemas/transport-order-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/transport-order-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new TransportOrder requestBody: content: application/json: schema: example: id: baa507c2-1d81-4092-a5c2-e80820ee4fd1 externalAttributes: id: OrderId description: Transport order containing all consignments to be shipped. consignments: - entity: id: e75a541b-e9d9-49e7-8bba-95492d682a6c description: Package for miss X. associationType: inline - entity: id: 4a08bd61-720e-4a8c-81cf-028f1271c4da description: Package for mr Y. associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: description: | External attributes are a simple way to add information in an OpenTripModel message that could not fit into one of the OTM fields otherwise. The `externalAttributes` member is meant for additional meta data and/or additional ID's of an entity. This can also help to identify an OTM entity in a system by the ID of that system. > Please, use this with caution: having too many external attributes can be a sign of not using OpenTripModel as it was intended. type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' description: description: A free text description of this transport order, e.g. boxes of fruit ordered by Simacan. type: string consignments: description: All consignments belonging to this transport order. type: array items: oneOf: - $ref: '#/components/schemas/consignments-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/consignments-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: The actors associated with this transport order, for instance the consignor, consignee. type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' constraint: description: Constraints this transport order has to abide to, such as the expected delivery time windows. oneOf: - $ref: '#/components/schemas/transport-order-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/transport-order-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' tags: - TransportOrder security: - BearerToken: [] /api/v5/trips/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: 50824123-0924-4563-ac1e-ca0e37487823 name: Daily supply trip status: inTransit transportMode: road vehicle: uuid: b9bb914d-845e-46f2-91ff-31fa4bac2fbe entityType: vehicle associationType: reference actions: - entity: id: d1636ce5-1d12-4545-b3ee-6ddb05631b3a name: Stop at the distribution center (already done) lifecycle: realized sequenceNr: 0 actions: - entity: id: e81a7aa3-23a6-4089-b916-52b854c7b6f1 lifecycle: planned remark: loading a consignment consignment: uuid: 047cfa4d-fd8b-47ba-b8e9-87067294d2fa entityType: consignment associationType: reference startTime: '2021-06-23T14:00:00Z' endTime: '2021-06-23T14:15:00Z' constraint: entity: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint associationType: inline actionType: load associationType: inline actionType: stop associationType: inline - entity: id: 8dd09992-eb55-40a4-b496-bf1292fa5933 name: Stop at the store (still needs to be visited) lifecycle: planned sequenceNr: 1 actions: - entity: id: a5f5fc23-744a-46f7-81b4-bfe26629ad4f lifecycle: planned remark: unloading a consignment consignment: uuid: 047cfa4d-fd8b-47ba-b8e9-87067294d2fa entityType: consignment associationType: reference startTime: '2021-06-23T15:00:00Z' endTime: '2021-06-23T15:15:00Z' constraint: entity: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint associationType: inline actionType: unload associationType: inline actionType: stop associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' status: description: |- Whether this trip is a draft, requested, confirmed, in transit, completed or cancelled. The values accepted (replaced by confirmed) and modified (replaced the lastModified field on every entity) are deprecated since OTM5.1, but will be supported for the whole OTM5.X line. type: string enum: - draft - requested - confirmed - inTransit - completed - cancelled - accepted - modified transportMode: description: |- Method of transport used for the carriage of goods on this trip, can either be using a ship (maritime or inland waterway), a truck/car/van/bike/etc. (road), using the train (rail), or using a plane (air). These values are based on the [recommendation of UNECE](https://unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_ecetrd138.pdf). type: string enum: - maritime - road - rail - air - inlandWaterway vehicle: description: The `Vehicle` that is driving this trip. oneOf: - $ref: '#/components/schemas/vehicle-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/vehicle-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: The actors associated with this trip, for instance the client or the executing party type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: All actions that are/were happening on this trip, such as stopping at certain locations and loading and unloading of consignments. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: Constraints this trip has to abide to, such as the start and end date times in which it has to be completed. oneOf: - $ref: '#/components/schemas/trip-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/trip-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '404': description: '' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Get a specific Trip by its UUID parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of this Trip required: true tags: - Trip security: - BearerToken: [] delete: responses: '204': description: Deleted trip with the provided UUID '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Deletes a Trip parameters: - name: UUID in: path schema: type: string format: uuid description: The unique UUID of the Trip to be deleted required: true tags: - Trip security: - BearerToken: [] /api/v5/trips: put: responses: '200': description: The same entity content: application/json: schema: example: id: 50824123-0924-4563-ac1e-ca0e37487823 name: Daily supply trip status: inTransit transportMode: road vehicle: uuid: b9bb914d-845e-46f2-91ff-31fa4bac2fbe entityType: vehicle associationType: reference actions: - entity: id: d1636ce5-1d12-4545-b3ee-6ddb05631b3a name: Stop at the distribution center (already done) lifecycle: realized sequenceNr: 0 actions: - entity: id: e81a7aa3-23a6-4089-b916-52b854c7b6f1 lifecycle: planned remark: loading a consignment consignment: uuid: 047cfa4d-fd8b-47ba-b8e9-87067294d2fa entityType: consignment associationType: reference startTime: '2021-06-23T14:00:00Z' endTime: '2021-06-23T14:15:00Z' constraint: entity: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint associationType: inline actionType: load associationType: inline actionType: stop associationType: inline - entity: id: 8dd09992-eb55-40a4-b496-bf1292fa5933 name: Stop at the store (still needs to be visited) lifecycle: planned sequenceNr: 1 actions: - entity: id: a5f5fc23-744a-46f7-81b4-bfe26629ad4f lifecycle: planned remark: unloading a consignment consignment: uuid: 047cfa4d-fd8b-47ba-b8e9-87067294d2fa entityType: consignment associationType: reference startTime: '2021-06-23T15:00:00Z' endTime: '2021-06-23T15:15:00Z' constraint: entity: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint associationType: inline actionType: unload associationType: inline actionType: stop associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' status: description: |- Whether this trip is a draft, requested, confirmed, in transit, completed or cancelled. The values accepted (replaced by confirmed) and modified (replaced the lastModified field on every entity) are deprecated since OTM5.1, but will be supported for the whole OTM5.X line. type: string enum: - draft - requested - confirmed - inTransit - completed - cancelled - accepted - modified transportMode: description: |- Method of transport used for the carriage of goods on this trip, can either be using a ship (maritime or inland waterway), a truck/car/van/bike/etc. (road), using the train (rail), or using a plane (air). These values are based on the [recommendation of UNECE](https://unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_ecetrd138.pdf). type: string enum: - maritime - road - rail - air - inlandWaterway vehicle: description: The `Vehicle` that is driving this trip. oneOf: - $ref: '#/components/schemas/vehicle-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/vehicle-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: The actors associated with this trip, for instance the client or the executing party type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: All actions that are/were happening on this trip, such as stopping at certain locations and loading and unloading of consignments. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: Constraints this trip has to abide to, such as the start and end date times in which it has to be completed. oneOf: - $ref: '#/components/schemas/trip-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/trip-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' '400': description: Client error content: application/json: schema: $ref: '#/components/schemas/clientError' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/serverError' summary: Adds a new Trip requestBody: content: application/json: schema: example: id: 50824123-0924-4563-ac1e-ca0e37487823 name: Daily supply trip status: inTransit transportMode: road vehicle: uuid: b9bb914d-845e-46f2-91ff-31fa4bac2fbe entityType: vehicle associationType: reference actions: - entity: id: d1636ce5-1d12-4545-b3ee-6ddb05631b3a name: Stop at the distribution center (already done) lifecycle: realized sequenceNr: 0 actions: - entity: id: e81a7aa3-23a6-4089-b916-52b854c7b6f1 lifecycle: planned remark: loading a consignment consignment: uuid: 047cfa4d-fd8b-47ba-b8e9-87067294d2fa entityType: consignment associationType: reference startTime: '2021-06-23T14:00:00Z' endTime: '2021-06-23T14:15:00Z' constraint: entity: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint associationType: inline actionType: load associationType: inline actionType: stop associationType: inline - entity: id: 8dd09992-eb55-40a4-b496-bf1292fa5933 name: Stop at the store (still needs to be visited) lifecycle: planned sequenceNr: 1 actions: - entity: id: a5f5fc23-744a-46f7-81b4-bfe26629ad4f lifecycle: planned remark: unloading a consignment consignment: uuid: 047cfa4d-fd8b-47ba-b8e9-87067294d2fa entityType: consignment associationType: reference startTime: '2021-06-23T15:00:00Z' endTime: '2021-06-23T15:15:00Z' constraint: entity: id: 89a7bb4d-8720-4db9-aef7-4c3309186c3e name: Example combined constraint value: and: - startTime: '2021-06-23T10:00:00Z' endTime: '2021-06-23T13:00:00Z' description: alert-threshold type: timeWindowConstraint - constraintType: maximum maximum: value: 5 unit: C type: temperatureConstraint - or: - fuelTypes: - battery type: fuelTypeConstraint - fuelTypes: - biodiesel type: fuelTypeConstraint - minimum: euro5 type: emissionStandardConstraint type: orConstraint type: andConstraint associationType: inline actionType: unload associationType: inline actionType: stop associationType: inline type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' status: description: |- Whether this trip is a draft, requested, confirmed, in transit, completed or cancelled. The values accepted (replaced by confirmed) and modified (replaced the lastModified field on every entity) are deprecated since OTM5.1, but will be supported for the whole OTM5.X line. type: string enum: - draft - requested - confirmed - inTransit - completed - cancelled - accepted - modified transportMode: description: |- Method of transport used for the carriage of goods on this trip, can either be using a ship (maritime or inland waterway), a truck/car/van/bike/etc. (road), using the train (rail), or using a plane (air). These values are based on the [recommendation of UNECE](https://unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_ecetrd138.pdf). type: string enum: - maritime - road - rail - air - inlandWaterway vehicle: description: The `Vehicle` that is driving this trip. oneOf: - $ref: '#/components/schemas/vehicle-association-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/vehicle-association-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' actors: description: The actors associated with this trip, for instance the client or the executing party type: array items: oneOf: - $ref: '#/components/schemas/associated-actors-inline' - $ref: '#/components/schemas/reference-roles' - $ref: '#/components/schemas/attributeRestriction-roles' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/associated-actors-inline' reference: '#/components/schemas/reference-roles' attributeRestriction: '#/components/schemas/attributeRestriction-roles' actions: description: All actions that are/were happening on this trip, such as stopping at certain locations and loading and unloading of consignments. type: array items: $ref: '#/components/schemas/associations-actions' constraint: description: Constraints this trip has to abide to, such as the start and end date times in which it has to be completed. oneOf: - $ref: '#/components/schemas/trip-constraint-inline' - $ref: '#/components/schemas/reference' - $ref: '#/components/schemas/attributeRestriction' discriminator: propertyName: associationType mapping: inline: '#/components/schemas/trip-constraint-inline' reference: '#/components/schemas/reference' attributeRestriction: '#/components/schemas/attributeRestriction' tags: - Trip security: - BearerToken: [] /api/v5/vehicles/{UUID}: get: responses: '200': description: Returned the entity with the provided UUID content: application/json: schema: example: id: b9bb914d-845e-46f2-91ff-31fa4bac2fbe name: Bob's Boxtruck vehicleType: boxtruck fuel: electricity loadCapacities: - value: 1000 unit: kg length: value: 8 unit: m height: value: 2.8 unit: m width: value: 2 unit: m licensePlate: AB-12-CD emptyWeight: value: 2000 unit: kg type: object properties: id: description: |- Uniquely identifies this entity. A URI can be assigned by the client to indicate where more information can be retrieved. Note that every entity always has a unique EntityId. However since, OTM5.2 it is not required to send it in the request. One can be generated for you by the server. type: string name: description: Name of the entity. For display purposes and search only. type: string creationDate: description: The creation date of this entity. type: string lastModified: description: The last modified date of this entity. If none is given the creation date is used instead. type: string contextEvents: description: |- The context events provides some optional information about the events that can provide additional information on the current state of this entity. For example: your system might send ETA information for the arrival of a vehicle on a location. To make it clear what caused this ETA to be updated, we can include some information about what caused this ETA update by including an event as context. If your ETA update was caused by a location update, this event can be included as context. If the ETA was caused by a traffic accident on the route of the vehicle, you can include that event in the context. type: array items: $ref: '#/components/schemas/events' externalAttributes: type: object properties: {} additionalProperties: $ref: '#/components/schemas/unrestricted_json' vehicleType: description: The type of vehicle type: string fuel: description: The type of fuel the vehicle runs on. For vehicle without an engine of their own, such as a trailer, you may choose `not-applicable`. For trailers with cooling capabilities, choose the fuel type of the cooling engine. type: string enum: - petrol - diesel - electricity - hydrogen - lng - cng - adBlue - other otherFuelType: description: Type of fuel, only to be used when the `fuel` field is set to `other`. type: string averageFuelConsumption: description: The average fuel consumption for this vehicle. Usually measured in distance per 100l type: object properties: value: description: Value in the given unit. type: number format: double unit: description: |- Measurement unit of this value. OTM5 currently does not enforce any units of measure. So you are free to use any unit necessary. However to ensure parties use OTM5 consistently there are a few rules: * For **currencies** use the [ISO_4217 standard](https://en.wikipedia.org/wiki/ISO_4217) * For **mass**, **volume** and **length** the [SI system (International System of Units)](https://en.wikipedia.org/wiki/International_System_of_Units) is recommended. To avoid problems with symbols, square and cubic units of measure are simply communicated using the proper number. Thus a square meter is `m2` and a cubic meter is `m3`. * For degrees the recommend approach is Celsius, but Fahrenheit and Kelvin are also supported. To again avoid problems with symbols, the degree symbol (° in °C) is left off, thus only the single capital letter remains (C, F, or K). * For velocity use the metric system. The required format would then be \/\