openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 1.93 MB
JSON
{"openapi":"3.0.0","servers":[{"url":"https://tracking.api.here.com/"}],"info":{"contact":{"x-twitter":"HERE"},"description":"HERE Tracking is a cloud product designed to address location tracking problems for a wide range of Location IoT industry verticals.\n\nHERE Tracking also includes end-user mobile and web applications that can be used to demonstrate the product.","license":{"name":"HERE Documentation License","url":"https://legal.here.com/en-gb/terms/documentation-license"},"title":"HERE Tracking","version":"2.1.192","x-apisguru-categories":["location"],"x-document-meta-data":{"copyright":"© 2023 HERE Europe B.V.","date-created":"2025-04-15T13:53:19.603Z","document-id":"4bf348e1-11a4-4bfb-bb98-a30b01268771"},"x-logo":{"url":"https://twitter.com/HERE/profile_image?size=original"},"x-origin":[{"format":"openapi","url":"https://developer.here.com/documentation/tracking/swagger/swagger.json","version":"3.0"}],"x-providerName":"here.com","x-serviceName":"tracking"},"tags":[{"description":"The ingestion service provides an interface for devices to do data ingestion to HERE Tracking.\nThe ingested data is a device telemetry, which may include, for example, a GPS position, sensor readings,\nWLAN or Bluetooth scans.\nOnly a provisioned and a claimed device data is accepted.\n\nDevices should use uniquely this interface to send data to HERE Tracking.\n","name":"Ingestion"},{"description":"The Largedata service is used for storing large data blobs from devices to\nHERE Tracking and retrieving the resulting assembled data from HERE Tracking by the users.\n\nThe data upload from a device follows the multipart data upload pattern:\n\n* Create a new data upload.\n* Check that the upload status is no longer ***preparing***.\n* For each part:\n** Upload the part.\n* Complete the upload after all parts have been uploaded.\n\nA data upload state can be one of the following:\n* ***preparing***: The storage for the data is being prepared.\n* ***pending***: Data upload has been succesfully created but no parts have been uploaded yet.\n* ***ongoing***: Data upload is ongoing.\n* ***completed***: Data upload has been successfully completed.\n* ***failed***: Data upload has failed.\n\nData parts can be uploaded only if the upload state is one of the following: ***pending***, ***ongoing***, ***failed***. \nNote that the state will be changed to ***failed*** if uploading a part fails, \nbut if the part is uploaded again successfully, the upload state is changed back to ***ongoing***.\n\nThe data can be downloaded only if the upload state is ***completed***.\n","name":"Largedata"},{"description":"The Registry service is used for provisioning and claiming devices.\n\nDevice licenses can only be provisioned by a vendor.\nA vendor is a user who has a developer plan (evaluation or paid commercial) with HERE\nthat has been enabled for device license creation.\nA user claiming a device is the device owner, which is different from the device vendor.\nAccess to the data generated by the device is limited to the device owner only.\n","name":"Registry"},{"description":"\nAn alias is an arbitrary `type` - `externalId` pair, which can be associated with a `trackingId`.\n\nThe `externalId` can be, for example, an external management system asset ID or a human-readable name.\nAn alias is uniquely identified by an `externalId` and a `type` pair within a tracking project.\n","name":"Aliases"},{"description":"An association is a link between a device and a geofence, a sensor rule or a rule.\nDevice events get generated for existing associations only.\n","name":"Associations"},{"description":"Bulk jobs provies support to perform bulk actions for project's resources, such as adding or\ndeleting multiple devices at once.\n","name":"Bulk jobs"},{"description":"The Cloud to Cloud service is used to create and manage connections between external\ncloud providers and HERE Tracking.\nA connection is formed by creating a cloud-to-cloud connector which receives reports from\nthe external cloud devices and transforms them into the HERE Tracking ingestions,\nthus enabling the external devices to be tracked by HERE Tracking.\n","name":"C2C"},{"description":"This service is used to query associations between devices and geofences.\n\n> **IMPORTANT**\n> Device Associations v2 API is deprecated. Please use Associations v3 API instead.\n","name":"Device Associations"},{"description":"The Events service manages device and shipment events.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion. \n\nA geofence event is created every time a device enters or exits an associated geofence.\nA sensor event is created when sensor data reported by a device triggers a sensor rule. \nA rule event (such as dwelling, detention, utilization, stock and online rule) is created when\na device behaviour triggers a rule.\n","name":"Events"},{"description":"This service is used to manage associations between devices and geofences.\nWhen a device enters or exits an associated geofence, an event gets generated.\n\n> **IMPORTANT**\n> Geofence Associations v2 API is deprecated. Please use Associations v3 API instead.\n","name":"Geofence Associations"},{"description":"The Geofences service creates and manages geofences.\n\nA geofence is an area boundary that users can define and associate with their devices.\nThe area that the geofence encloses can be defined using geographic coordinates or radio measurements.\n\nGeographic geofences can be `circular` or `polygonal`. \nA circular geofence is defined by geographic coordinates of its center and a radius, \nwhile polygonal geofences are defined as a set of geographic coordinates.\n\n`POI geofence` (Point Of Interest) is a geofence, which is defined using radio measurements.\nPOI geofences need to be trained separately using a telemetry that a device has recorded while \nbeing at the desired point of interest. \n\nOnce created, a geofence can be associated to a device. \nEvery time a position or a radio measurement update is received from a device, \nHERE Tracking would evaluate whether the device has transitioned across the boundary of \nan associated geofence.\nIf such a transition has happened, a transition event will be recorded.\nFor the geographic geofences, the evaluation is based on the coordinates of the trace.\nFor POI geofences, the device is considered to be inside a trained POI geofence when the radio \nmeasurements of the device-ingested telemetry and the training data match.\n\nIndoor geofences can be created by adding the floor properties to the geofence definition.\nCircular and polygonal geofences can be both outdoors and indoors. \nPOI geofences should only be used indoors.\nFor indoor geofences a device transition is recorded only if the position of the device is indoors \nand the floor details of the position match the geofence floor definition.\n\nNOTE: A geofence can also be referred to as a geozone, and these two terms are interchangeable.\n","name":"Geofences"},{"description":"The Labels service creates and manages labels.\n\nA label is a key-value pair that can be associated to the following resources:\n\n* device\n* geofence\n* sensor\n* rule\n* location\n* shipment\n\nOne can list labels for a specific resource or resource type, and filter\nlabels by keys or key-value pairs.\n","name":"Labels"},{"description":"The Locations service creates and manages locations.\n\nThis is an Alpha version of the Locations API and can still be changed in future releases.\n\nLocations are geographical points of interest users may store in HERE Tracking. Locations are\nused as building blocks for shipments.\n","name":"Locations"},{"description":"The Metadata service creates and manages metadata.\n\nMetadata is a descriptive information added to a device, a shipment, a geofence or a sensor rule.\n","name":"Metadata"},{"description":"The Notifications service provides a way to manage notification channels.\n\nUsers need to register notification channels to get notified about new events.\nThe supported notification channel types are webhook, \nemail and browser pull. Webhook notifications are common for all users in a project, but email and\nbrowser pull notification subscriptions are user-specific. \n\nEmail notifications will only be sent to a verified HERE Account email address.\nThe browser pull notifications will be enabled for the [HERE Tracking Asset web](https://asset.tracking.here.com).\nFor the webhook notifications, a URL registered as a webhook will receive a POST request on any\nmatching event occurence.\n\nTo get notified only about some specific events, users can apply various filters when subscribing to notifications, \nspecifying, for example, a particular rule ID or a geofence ID.\nIf an occuring event matches `ruleId`, `eventSource`, `eventType` and `initialState` \nfilter settings, a notification gets triggerred.\n\nA single notification contains multiple matching event objects, for example:\n\n```\n[\n {\n \"eventType\": \"ABOVE_RANGE\",\n \"ruleId\": \"a3f652bc-a456-7f12-cd11-123ah761yt41\",\n \"ruleName\": \"My temperature rule\"\n \"eventSource\": \"temperature\"\n \"trackingId\": \"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83\",\n \"timestamp\": 1499258184356,\n \"initialState\": false\n },\n {\n \"eventType\": \"INSIDE_GEOFENCE\",\n \"ruleId\": \"e2f651ee-f196-4fa3-bf88-894dc131dea3\",\n \"ruleName\": \"Warehouse 12345\"\n \"eventSource\": \"geofence\"\n \"trackingId\": \"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83\",\n \"timestamp\": 1499258184356,\n \"initialState\": false\n },\n {\n \"eventType\": \"DWELLING_STARTED\",\n \"ruleId\": \"bf4510c0-ffa1-4ae3-8174-6a3474f7091e\",\n \"ruleName\": \"Dwelling 1 hour in a geofence\"\n \"eventSource\": \"dwelling\"\n \"trackingId\": \"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83\",\n \"timestamp\": 1499258184356,\n \"geofenceId\": \"e2f651ee-f196-4fa3-bf88-894dc131dea3\",\n \"geofenceName\": \"Warehouse 12345\"\n \"initialState\": false\n }\n]\n```\n\nIf a device is offline, its notifications will not be sent to the user until the device is back online again. \n","name":"Notifications"},{"description":"The Reports service provides a way to create and get reports related to event data.\n\nThis is a tool for collecting and analyzing historical data of all devices of a project.\nThe reports are created based on the event data generated by HERE Tracking `rules`.\nThe supported rule types are:\n* dwelling\n* detention\n* utilization\n\nTo be able to create a report, the user must have at least one rule of a supported type created\nand associated to a device.\n\nOnce a report has been successfully created, the user will get the report ID, which can be used\nfor various reports queries.\n\n> Note that in the report context a device is also referred to as an 'asset'.\n","name":"Reports"},{"description":"The Rules service creates and manages rules. \n\nRules generate events and notifications when get triggered by a device behaviour.\nThe following rule types are supported:\n* dwelling\n* detention\n* utilization\n* stock\n* online\n* shipmentSchedule\n\nAfter a rule has been created, it needs to be associated to a device to get activated.\n\nThis association means that every time a telemetry is received from the device,\nit will be evaluated against the rule condition.\nAs soon as the evaluation changes (for example, from true to false), an event will be recorded.\n","name":"Rules"},{"description":"The Sensors service creates and manages sensor rules. \n\nThe sensor rules generate events and notifications when get triggered by a \nreported device sensor reading.\n\nThe following sensor rule types are supported:\n* battery\n* humidity\n* pressure\n* temperature\n* acceleration\n* attach\n* tamper\n\nAfter a sensor rule has been created, it needs to be associated to a device to get activated.\n\nThis association means that every time a sensor update is received from the device as a part \nof its ingestion telemetry, it will be evaluated against the sensor rule condition.\nAs soon as the evaluation changes (for example, from true to false), an event will be recorded.\n","name":"Sensors"},{"description":"The Shadows service provides an effective way to manage configurations \nfor devices that are only intermittently online.\n\nThe device shadow contains `reported` and `desired` state objects of a device, \nreferred to as `reported` and `desired` shadows.\n\nThe `desired` shadow contains configuration settings that the device should use and possibly also\nsome optional custom settings. \nThe device receives the `desired` shadow from HERE Tracking as a response to the ingestion request.\n\nThe `reported` shadow contains the most recent position, sensor readings and settings that the\ndevice has sent. The reported shadow may also contain additional properties generated by HERE \nTracking based on the device-ingested telemetry. Such properties are stored in the `system.computed` \nproperty.\n\nIn case the most recent telemetry did not contain all the possible\nfields, the last known information will remain in the shadow. This means that one can\nsee, for example, the last reported temperature or tracker firmware information in the reported shadow,\neven if the device did not send that information in the latest telemetry.\n\n> **IMPORTANT**\n> Devices should not communicate directly with this service, but should instead send the telemetry to\n> the ingestion endpoint, which updates the `reported` shadow and returns the `desired` shadow.\n> Applications should only write to the `desired` shadow and only read from the \n> `reported` shadow.\n","name":"Shadows"},{"description":"Service for generating and viewing shipment reports.\n\nThis is an alpha version of the Shipment Reports API and can still be changed in future\nreleases.\n\nA shipment report consists of different metrics calculated on shipments which have been completed successfully.\n\nPunctuality at origin or at destination measures how accurate the estimated\ndeparture or arrival was. Dwelling at location measures how much time was spent at locations.\n\nThe metrics are split into two categories. The first category consists of metrics which are calculated\nover all shipments of a shipment plan. The second category consists of metrics which are calculated on\nindividual shipments of a shipment plan.\nFor example, the `location` metrics belongs to the first category.\nStatistical values, such as `average`, are produced for metrics of the first category only.\n","name":"Shipment Reports"},{"description":"The Shipments service manages shipments and shipment plans.\n\nThis is an Alpha version of the Shipments API and can still be changed in future releases.\n\nA shipment describes a structure of a multimodal logistics journey. Shipments are useful when\nthe lifetime of an asset one is tracking spans across multiple devices.\n\nA shipment consists of segments that span from a location to another. The segments and their\norigins and destinations must form a continuous chain of locations, that is the origin of a segment\nmust match the destination of a previous segment. Each segment of the shipment may be assigned a\n`trackingId` that can vary between segments. Devices assigned to a shipment generate traces\nand events for the entire shipment.\n\nThe `shipmentId` of a shipment can be used in similar fashion as a `trackingId` in selected\nAPIs. For example, one can query for shipment ***traces*** and ***events*** and associate ***aliases*** and\n***metadata*** to a shipment.\n\nEach shipment has one of the following statuses:\n* ***pending***: The shipment has not yet started.\n* ***ongoing***: The shipment has started and it has one segment ongoing.\n* ***completed***: The shipment has ended and all of its segments are completed.\n* ***cancelled***: The shipment has ended and it has one or more cancelled segments.\n\nHERE Tracking progresses the shipment automatically if each segment has been assigned a\n`trackingId` and the origin and destination locations contain a `geofenceId`. Each segment is\nstarted upon exiting the origin location of the segment and completed upon entering the\ndestination location of the segment. If the origin and the destination of a segment share the\nsame location (that is, dwelling in a single location), the segment will automatically be started after the\nprevious segment was completed. If a segment does not have a device assigned, the user must\nstart and complete the segment manually.\n\nA new shipment should be instantiated for each separate logistical journey. However, if the\nstructure of the shipment is recurring, a shipment plan can be defined. A shipment plan can\nbe used to define a generic skeleton for a logistical journey. For example, certain types\nof assets often need to be shipped over a typical sequence of locations.\nA user can create a shipment plan defining the segments, and new shipments can be instantiated from the plan.\nThis allows recycling of components for similar shipments and reduces time and effort for\ncreating new shipment instances.\n\nShipments can also be created, managed and visualized via the [Shipment Tracking web](https://shipment.tracking.here.com).\n","name":"Shipments"},{"description":"The Traces service allows users querying device traces based on time ranges.\n\nA device trace is a device-ingested telemetry along with the ingestion timestamp \nand the device current position.\n\n> **NOTE**:\n> Devices should not communicate directly with this service, but should instead send telemetry to\n> the ingestion endpoint. Each data ingestion results in an update to the `reported` device shadow \n> and a new device trace creation.\n","name":"Traces"},{"description":"This service is used to query device transition events.\nA transition event is created each time a device enters or exists an associated geofence.\n\n> **IMPORTANT**\n> Transitions v2 API is deprecated. Please use Events v3 API instead.\n","name":"Transitions"},{"description":"The Users service provides HERE Tracking user authentication and authorization.\n","name":"Users"}],"paths":{"/aliases/v2":{"get":{"description":"Gets all aliases of a project.\n\nIf `type` query parameter is provided, the response will contain\nonly aliases of the given type.\n\nIf `externalId` query parameter is specified, the\nresponse will contain only aliases that match the given\nexternal ID. The following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches a single character.\n\nIf `after` query parameter is provided, the successful response will only\ncontain aliases that were created after the specified timestamp.\nParameters `after` and `pageToken` are mutually exclusive and cannot be provided at the same time.\n\nThe returned results are sorted in ascending order by the alias creation time.\n","parameters":[{"description":"A token from the previously returned response to retrieve the specified page.","in":"query","name":"pageToken","required":false,"schema":{"type":"string"}},{"description":"The number of items to return per page.","in":"query","name":"count","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\nThe accepted range is from 0 to the current time.\n","in":"query","name":"after","required":false,"schema":{"minimum":0,"type":"number"}},{"in":"query","name":"projectId","required":false,"schema":{"description":"Project ID.\nAny HERE Tracking user must be a member of a Tracking project.\nThe project ID can be implicitly resolved if the user calling the API is a member of a single project.\nIf the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.\n","maxLength":50,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"count":{"default":100,"description":"The number of items in the response.","maximum":100,"minimum":0,"type":"integer"},"pageToken":{"description":"A token that can be used to retrieve the next page of the response.","type":"string"}},"type":"object"},{"properties":{"data":{"items":{"properties":{"aliases":{"description":"A map of key-value pairs where the key is the type of the alias\nand the value is an array of externalIds.\n","type":"object"},"trackingId":{"type":"string"}},"required":["trackingId","aliases"],"type":"object"},"type":"array"}},"type":"object"}],"example":{"data":[{"aliases":{"cargoId":["123-456"],"engines":["de7a0e9a-2e86-11e8-b20f-6c400892e894","dfee3968-2e86-11e8-b4e0-6c400892e894"]},"trackingId":"HERE-c47c0d1d-89fd-4961-b341-3eb109f58d19"},{"aliases":{"engines":["5219bfc6-9779-4901-922a-e53a7c01037e"]},"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"}]}}}},"description":"Successful\n\nThe aliases were successfully retrieved\n"},"400":{"content":{"application/json":{"example":{"code":400,"details":{"hereErrorCode":400306},"error":"Bad request","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request object is in an incorrect format or has values that are invalid or out of range."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Bad request\n\nThe request object is in an incorrect format or has values that are invalid or out of range.\n\nIf available, further error details are provided in the response body.\n"},"401":{"content":{"application/json":{"example":{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The provided credentials are not valid."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Unauthorized\n\nThe request did not provide correct authentication details\n"},"403":{"content":{"application/json":{"example":{"code":403,"details":{"hereErrorCode":403306},"error":"Forbidden","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The account does not have the correct privileges."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Forbidden\n\nThe account does not have the correct privileges\n"}},"security":[{"Bearer":[]}],"summary":"Gets all aliases","tags":["Aliases"]},"parameters":[{"description":"ID used for correlating requests within HERE Tracking. Used for logging and error reporting.\n\nMust be a valid UUIDv4.\n","in":"header","name":"X-Request-Id","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"An alias type","in":"query","name":"type","required":false,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"Filter for aliases external IDs","in":"query","name":"externalId","required":false,"schema":{"maxLength":50,"minLength":1,"type":"string"}}]},"/aliases/v2/health":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"example":{"message":"healthy"},"properties":{"message":{"description":"Health status","type":"string"}},"type":"object"}}},"description":"OK\n\nThe service is performing as expected\n"},"500":{"description":"Service unavailable\n\nThe service is not performing as expected\n"}},"security":[],"summary":"Gets service health","tags":["Aliases"]}},"/aliases/v2/trackingId":{"get":{"description":"Gets the `trackingId` associated with an alias.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"appId":{"description":"Virtual device application ID, only present when the device is virtual","minLength":8,"type":"string"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"trackingId":{"description":"This is a unique ID associated with the device data in HERE Tracking. For physical devices the `trackingId` gets assigned to a device when the device is claimed by a user, and for virtual devices it is an external device ID along with the device project `appId`. Alternatively, a valid `shipmentId` may be used.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"}}},"description":"Successful\n\nThe `trackingId` was successfully retrieved.\n"},"400":{"content":{"application/json":{"example":{"code":400,"details":{"hereErrorCode":400306},"error":"Bad request","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request object is in an incorrect format or has values that are invalid or out of range."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Bad request\n\nThe request object is in an incorrect format or has values that are invalid or out of range.\n\nIf available, further error details are provided in the response body.\n"},"401":{"content":{"application/json":{"example":{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The provided credentials are not valid."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Unauthorized\n\nThe request did not provide correct authentication details\n"},"403":{"content":{"application/json":{"example":{"code":403,"details":{"hereErrorCode":403306},"error":"Forbidden","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The account does not have the correct privileges."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Forbidden\n\nThe account does not have the correct privileges\n"},"404":{"content":{"application/json":{"example":{"code":404,"details":{"hereErrorCode":404306},"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The specified resource was not found."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Not Found\n\nThe specified resource was not found\n"}},"security":[{"Bearer":[]}],"summary":"Gets the tracking ID associated with an alias","tags":["Aliases"]},"parameters":[{"description":"An alias type","in":"query","name":"type","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"An external ID. An externalId and type pair uniquely identifies an alias.","in":"query","name":"externalId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"in":"query","name":"projectId","required":false,"schema":{"description":"Project ID.\nAny HERE Tracking user must be a member of a Tracking project.\nThe project ID can be implicitly resolved if the user calling the API is a member of a single project.\nIf the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.\n","maxLength":50,"minLength":1,"type":"string"}},{"description":"ID used for correlating requests within HERE Tracking. Used for logging and error reporting.\n\nMust be a valid UUIDv4.\n","in":"header","name":"X-Request-Id","required":false,"schema":{"format":"uuid","type":"string"}}]},"/aliases/v2/version":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"description":"OK\nService returns its current version number\nschema:\n type: object\n properties:\n \"service-name\":\n type: string\n description: Version of service\n example:\n servicename: \"1.0.0\"\n"}}},"description":"Success\n"},"500":{"description":"Service unavailable\n\nThe service is not performing as expected\n"}},"security":[],"summary":"Gets service version","tags":["Aliases"]}},"/aliases/v2/{trackingId}":{"delete":{"description":"Deletes all aliases of a device identified by the `trackingId`.\n\nNote that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. \nIf the header is not provided, the request will fail.\n","parameters":[{"description":"A safety measure that prevents one from accidentally deleting data.\n\nTo confirm that all entries should be deleted, set the value to `true`.\n","in":"header","name":"x-confirm","required":true,"schema":{"enum":["true"],"type":"string"}}],"responses":{"204":{"description":"Successful (no content)\n\nAll aliases were successfully deleted.\n"},"400":{"content":{"application/json":{"example":{"code":400,"details":{"hereErrorCode":400306},"error":"Bad request","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request object is in an incorrect format or has values that are invalid or out of range."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Bad request\n\nThe request object is in an incorrect format or has values that are invalid or out of range.\n\nIf available, further error details are provided in the response body.\n"},"401":{"content":{"application/json":{"example":{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The provided credentials are not valid."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Unauthorized\n\nThe request did not provide correct authentication details\n"},"403":{"content":{"application/json":{"example":{"code":403,"details":{"hereErrorCode":403306},"error":"Forbidden","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The account does not have the correct privileges."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Forbidden\n\nThe account does not have the correct privileges\n"},"404":{"content":{"application/json":{"example":{"code":404,"details":{"hereErrorCode":404306},"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The specified resource was not found."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Not Found\n\nThe specified resource was not found\n"}},"security":[{"Bearer":[]}],"summary":"Deletes all aliases of a device","tags":["Aliases"]},"get":{"description":"Gets all aliases of a device identified by the `trackingId`.\n\nIf the request is supplied with a `type` query parameter, the response will contain\nonly aliases of the given type.\n","parameters":[{"description":"A token from the previously returned response to retrieve the specified page.","in":"query","name":"pageToken","required":false,"schema":{"type":"string"}},{"description":"The number of items to return per page.","in":"query","name":"count","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"An alias type","in":"query","name":"type","required":false,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"count":{"default":100,"description":"The number of items in the response.","maximum":100,"minimum":0,"type":"integer"},"pageToken":{"description":"A token that can be used to retrieve the next page of the response.","type":"string"}},"type":"object"},{"properties":{"data":{"description":"A map of key-value pairs where the key is the type of the alias\nand the value is an array of `externalId`s.\n","type":"object"}},"type":"object"}],"example":{"data":{"cargoId":["123-456"],"engines":["de7a0e9a-2e86-11e8-b20f-6c400892e894","dfee3968-2e86-11e8-b4e0-6c400892e894"]}}}}},"description":"Successful\n\nThe aliases were successfully retrieved.\n"},"400":{"content":{"application/json":{"example":{"code":400,"details":{"hereErrorCode":400306},"error":"Bad request","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request object is in an incorrect format or has values that are invalid or out of range."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Bad request\n\nThe request object is in an incorrect format or has values that are invalid or out of range.\n\nIf available, further error details are provided in the response body.\n"},"401":{"content":{"application/json":{"example":{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The provided credentials are not valid."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Unauthorized\n\nThe request did not provide correct authentication details\n"},"403":{"content":{"application/json":{"example":{"code":403,"details":{"hereErrorCode":403306},"error":"Forbidden","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The account does not have the correct privileges."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Forbidden\n\nThe account does not have the correct privileges\n"},"404":{"content":{"application/json":{"example":{"code":404,"details":{"hereErrorCode":404306},"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The specified resource was not found."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Not Found\n\nThe specified resource was not found\n"}},"security":[{"Bearer":[]}],"summary":"Gets all aliases of a device","tags":["Aliases"]},"parameters":[{"in":"path","name":"trackingId","required":true,"schema":{"description":"This is a unique ID associated with the device data in HERE Tracking. For physical devices the `trackingId` gets assigned to a device when the device is claimed by a user, and for virtual devices it is an external device ID along with the device project `appId`. Alternatively, a valid `shipmentId` may be used.","maxLength":50,"minLength":1,"type":"string"}},{"description":"ID used for correlating requests within HERE Tracking. Used for logging and error reporting.\n\nMust be a valid UUIDv4.\n","in":"header","name":"X-Request-Id","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"Application identifier. Used together with an external ID to identify a virtual device.","in":"query","name":"appId","required":false,"schema":{"minLength":8,"type":"string"}}]},"/aliases/v2/{trackingId}/batch":{"parameters":[{"in":"path","name":"trackingId","required":true,"schema":{"description":"This is a unique ID associated with the device data in HERE Tracking. For physical devices the `trackingId` gets assigned to a device when the device is claimed by a user, and for virtual devices it is an external device ID along with the device project `appId`. Alternatively, a valid `shipmentId` may be used.","maxLength":50,"minLength":1,"type":"string"}},{"description":"ID used for correlating requests within HERE Tracking. Used for logging and error reporting.\n\nMust be a valid UUIDv4.\n","in":"header","name":"X-Request-Id","required":false,"schema":{"format":"uuid","type":"string"}},{"description":"Application identifier. Used together with an external ID to identify a virtual device.","in":"query","name":"appId","required":false,"schema":{"minLength":8,"type":"string"}}],"put":{"description":"Creates a set of aliases for a device identified by the `trackingId`. \nAn alias must be unique within a project.\n","requestBody":{"content":{"application/json":{"example":{"aliases":{"cargoId":["123-456"],"engines":["engine1","engine22"]}},"schema":{"properties":{"aliases":{"description":"A map of key-value pairs where the key is the type of the\nalias and the value is an array of `externalId`s.\n","type":"object"}},"required":["aliases"],"type":"object"}}}},"responses":{"201":{"description":"Successful (no content)"},"400":{"content":{"application/json":{"example":{"code":400,"details":{"hereErrorCode":400306},"error":"Bad request","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request object is in an incorrect format or has values that are invalid or out of range."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Bad request\n\nThe request object is in an incorrect format or has values that are invalid or out of range.\n\nIf available, further error details are provided in the response body.\n"},"401":{"content":{"application/json":{"example":{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The provided credentials are not valid."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Unauthorized\n\nThe request did not provide correct authentication details\n"},"403":{"content":{"application/json":{"example":{"code":403,"details":{"hereErrorCode":403306},"error":"Forbidden","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The account does not have the correct privileges."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Forbidden\n\nThe account does not have the correct privileges\n"},"404":{"content":{"application/json":{"example":{"code":404,"details":{"hereErrorCode":404306},"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The specified resource was not found."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Not Found\n\nThe specified resource was not found\n"},"409":{"content":{"application/json":{"example":{"code":409,"details":{"hereErrorCode":404306},"error":"Conflict","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The specified resource already exists."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Conflict\n\nThe specified resource already exists\n"}},"security":[{"Bearer":[]}],"summary":"Creates multiple aliases for a device","tags":["Aliases"]}},"/aliases/v2/{trackingId}/{type}":{"delete":{"description":"Deletes all aliases of a specified type for a device identified by the `trackingId`.\n\nNote that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. \nIf the header is not provided, the request will fail.\n","parameters":[{"description":"A safety measure that prevents one from accidentally deleting data.\n\nTo confirm that all entries should be deleted, set the value to `true`.\n","in":"header","name":"x-confirm","required":true,"schema":{"enum":["true"],"type":"string"}}],"responses":{"204":{"description":"Successful (no content)\n\nAll aliases were successfully deleted.\n"},"400":{"content":{"application/json":{"example":{"code":400,"details":{"hereErrorCode":400306},"error":"Bad request","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request object is in an incorrect format or has values that are invalid or out of range."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Bad request\n\nThe request object is in an incorrect format or has values that are invalid or out of range.\n\nIf available, further error details are provided in the response body.\n"},"401":{"content":{"application/json":{"example":{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The provided credentials are not valid."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Unauthorized\n\nThe request did not provide correct authentication details\n"},"403":{"content":{"application/json":{"example":{"code":403,"details":{"hereErrorCode":403306},"error":"Forbidden","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The account does not have the correct privileges."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to trace the error details","format":"uuid","type":"string"},"message":{"description":"Descriptive text that explains the error","type":"string"}},"required":["error","code","id"],"type":"object"}}},"description":"Forbidden\n\nThe account does not have the correct privileges\n"},"404":{"content":{"application/json":{"example":{"code":404,"details":{"hereErrorCode":404306},"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The specified resource was not found."},"schema":{"properties":{"code":{"description":"An HTTP status code","type":"integer"},"details":{"description":"An optional object containing more information about the error"},"error":{"description":"An HTTP error description","type":"string"},"id":{"description":"An error ID that allows you to tra