{"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-08-15T13:52:57.403Z","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 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 specified type for a device","tags":["Aliases"]},"get":{"description":"Gets all aliases of a specified type for a device identified by the `trackingId`.","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"}}],"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"]}}}}},"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 specified type for a device","tags":["Aliases"]},"parameters":[{"description":"An alias type","in":"path","name":"type","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"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}/{type}/{externalId}":{"delete":{"description":"Deletes the specified alias.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes an alias","tags":["Aliases"]},"parameters":[{"description":"An alias type","in":"path","name":"type","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"An external ID. An `externalId` and a `type` pair uniquely identifies an alias.","in":"path","name":"externalId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"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 an alias for the `trackingId`. An alias must be unique within a project.\n","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 an alias","tags":["Aliases"]}},"/associations/v3/devices/batchUpdate":{"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":"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":"Updates rules associated with devices.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to disassociate\n(oldRules) from and associate (newRules) to the devices identified\nin trackingIds array.\n","properties":{"newRules":{"additionalProperties":false,"description":"Rules to be associated to the devices","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"oldRules":{"additionalProperties":false,"description":"Rules to be disassociated from the devices","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"trackingIds":{"description":"Array of tracking IDs (external IDs are also permitted here)","items":{"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`.","maxLength":50,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"}},"required":["trackingIds","oldRules","newRules"],"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"}},"security":[{"Bearer":[]}],"summary":"Updates rules associations for devices","tags":["Associations"]}},"/associations/v3/devices/{trackingId}/batchCreate":{"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"}},{"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`.","maxLength":50,"minLength":1,"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"}}],"post":{"description":"Associates rules with the device `trackingId`.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to associate with the shipment or device.","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"}}}},"responses":{"201":{"description":"Successful\n\nDevice has been associated with provided rules.\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":"Associates rules with a device","tags":["Associations"]}},"/associations/v3/devices/{trackingId}/batchDelete":{"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"}},{"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`.","maxLength":50,"minLength":1,"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"}}],"post":{"description":"Disassociates rules from the device identified by `trackingId`.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to disassociate from the shipment or device.","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"}}}},"responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Disassociates rules from a device","tags":["Associations"]}},"/associations/v3/geofences/{geofenceId}":{"get":{"description":"Gets all devices associated with the geofence `geofenceId`.\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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"appId":"c2639c686251407a9052aaea824a1fb5","externalId":"TestDevice1","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},{"appId":"c2639c686251407a9052aaea824a1fc9","externalId":"TestDevice2","trackingId":"HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"}],"pageToken":"024ggjjea253d79fc"},"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":{"description":"Response body contains a single device object.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of device objects, count indicating the number of returned devices,\nand pageToken if available. If no devices are found, an object with empty data array is returned.\n","type":"object"}}},"description":"Response body contains an array of device objects, count indicating the number of returned devices,\nand pageToken if available.\n\nIf no associations are found, an object with empty data array is returned.\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 devices associated with a geofence","tags":["Associations"]},"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":"ID of the geofence","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","type":"string"}}]},"/associations/v3/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":["Associations"]}},"/associations/v3/rules/{ruleId}":{"get":{"description":"Gets all devices associated with the rule `ruleId`.\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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"appId":"c2639c686251407a9052aaea824a1fb5","externalId":"TestDevice1","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},{"appId":"c2639c686251407a9052aaea824a1fc9","externalId":"TestDevice2","trackingId":"HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"}],"pageToken":"024ggjjea253d79fc"},"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":{"description":"Response body contains a single device object.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of device objects, count indicating the number of returned devices,\nand pageToken if available. If no devices are found, an object with empty data array is returned.\n","type":"object"}}},"description":"Response body contains an array of device objects, count indicating the number of returned devices,\nand pageToken if available.\n\nIf no associations are found, an object with empty data array is returned.\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 devices associated with a rule","tags":["Associations"]},"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":"ID of the rule","in":"path","name":"ruleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}}]},"/associations/v3/sensors/{sensorRuleId}":{"get":{"description":"Gets all devices associated with the sensor rule `sensorRuleId`.\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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"appId":"c2639c686251407a9052aaea824a1fb5","externalId":"TestDevice1","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},{"appId":"c2639c686251407a9052aaea824a1fc9","externalId":"TestDevice2","trackingId":"HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"}],"pageToken":"024ggjjea253d79fc"},"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":{"description":"Response body contains a single device object.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of device objects, count indicating the number of returned devices,\nand pageToken if available. If no devices are found, an object with empty data array is returned.\n","type":"object"}}},"description":"Response body contains an array of device objects, count indicating the number of returned devices,\nand pageToken if available.\n\nIf no associations are found, an object with empty data array is returned.\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","message":"The sensor rule ID 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":"The sensor rule ID was not found"}},"security":[{"Bearer":[]}],"summary":"Gets all devices associated with a sensor rule","tags":["Associations"]},"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":"ID of the sensor rule","in":"path","name":"sensorRuleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}}]},"/associations/v3/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":["Associations"]}},"/associations/v3/{trackingId}/geofences":{"get":{"description":"Gets a list of geofences associated with the device `trackingId`.\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":"Type of a geofence","in":"query","name":"type","required":false,"schema":{"items":{"enum":["circle","polygon","poi"],"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"geofence":{"definition":{"points":[{"lat":52.5308398,"lng":13.38490035},{"lat":52.5408398,"lng":14.38490035},{"lat":53.5308398,"lng":13.39490035}]},"type":"polygon"},"id":"d0c29690-5d26-4cf1-a37e-b7816e72cb99"},{"geofence":{"definition":{"center":{"lat":52.5308398,"lng":13.38490035},"floor":{"id":"DM_82228","name":"House 3"},"radius":100},"description":"This is a circular geofence","name":"16fbc82c-88d1-4219-bfad-6e5de52688a2","type":"circle"},"id":"ff92eda0-3114-4640-b7e6-4ba641ae1124"}],"pageToken":"027ffffea253d79fc"},"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":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"trainingStatus":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"trained":{"description":"True if the POI geofence is trained","type":"boolean"}},"required":["trained"],"type":"object"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type","trainingStatus"],"title":"POI","type":"object"}]},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","geofence"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of geofence objects. `count` indicates the number of returned geofences, and `pageToken` indicates the next available page in the matching result set. If no geofences are found, an object with empty data array is returned.","type":"object"}},"application/octet-stream":{"example":"34 56 18 93 45 29 54 62 77 28 23 79 22","schema":{"description":"Response body contains an array of geofence objects, `count` specifies the number of returned geofences,\nand `pageToken` indicates the next available page in the matching result set.\n\nIf no geofences are found, an object with empty data array is returned.\n","example":{"response data as Protobuf binary, format as follows":"message GeofenceMsg {\n  message GeofenceCircular {\n    //Latitude value\n    float lat = 1;\n    //Longitude value\n    float lng = 2;\n    //Center radius value\n    uint32 radius = 3;\n    //Geofence ID\n    string id = 4;\n  }\n  message GeofencePolygonal {\n    //Latitude value array\n    repeated float lat = 1;\n    //Longitude value array\n    repeated float lng = 2;\n    //Geofence ID\n    string id = 3;\n  }\n  //Circular geofence array\n  repeated GeofenceCircular circulars = 1;\n  //Polygonal geofence array\n  repeated GeofencePolygonal polygonals = 2;\n  //Page token\n  string pageToken = 3;\n}\n"},"items":{},"type":"array"}}},"description":"Response body contains an array of geofence objects, `count` specifies the number of returned geofences,\nand `pageToken` indicates the next available page in the matching result set.\n\nIf no geofences are found, an object with empty data array is returned.\nResponse content type can be either JSON or protobuf depending on the 'Content-Type' request header.\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","message":"The trackingId 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":"TrackingId not found."}},"security":[{"Bearer":[]}],"summary":"Gets geofences associated with a device","tags":["Associations"]},"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"}},{"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`.","maxLength":50,"minLength":1,"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"}}]},"/associations/v3/{trackingId}/geofences/{geofenceId}":{"delete":{"description":"Deletes an association between the geofence `geofenceId` and the device `trackingId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Disassociates a device and a geofence","tags":["Associations"]},"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":"ID of the geofence","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"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`.","maxLength":50,"minLength":1,"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":"Associates the device with `trackingId` to the geofence with `geofenceId`.\nWhenever the device enters or exits the associated geofence, an event is generated.\n","responses":{"200":{"description":"Successful\n\nDevice already associated with the geofence\n"},"201":{"description":"Successful\n\nThe device has been associated with the geofence\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":"Associates a device to a geofence","tags":["Associations"]}},"/associations/v3/{trackingId}/rules":{"get":{"description":"Gets a list of rules associated with the device `trackingId`.\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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":1,"data":[{"rule":{"threshold":{"durationS":3600},"type":"dwelling"},"ruleId":"f4c26630-5d26-4cd1-a57e-g7834e72cb99"}],"pageToken":"024ggjjea253d79fc"},"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":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of rule objects, count indicating the number of returned rules,\nand pageToken if available. If no rules are found, an object with empty data array is returned.\n","type":"object"}}},"description":"Response body contains an array of rule objects, count indicating the number of returned rules,\nand pageToken if available.\n\nIf no rule is found, an object with empty data array is returned.\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 rules associated with a device","tags":["Associations"]},"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"}},{"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`.","maxLength":50,"minLength":1,"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"}}]},"/associations/v3/{trackingId}/rules/{ruleId}":{"delete":{"description":"Deletes an association between the rule `ruleId` and the device `trackingId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Disassociates a device and a rule","tags":["Associations"]},"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":"ID of the rule","in":"path","name":"ruleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},{"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`.","maxLength":50,"minLength":1,"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":"Associates the device with `trackingId` to the rule with `ruleId`.\nWhenever the device behaviour triggers the rule, an event is generated.\n","responses":{"200":{"description":"Successful\n\nDevice already associated with the rule\n"},"201":{"description":"Successful\n\nThe device has been associated with the rule\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":"Associates a device to a rule","tags":["Associations"]}},"/associations/v3/{trackingId}/sensors":{"get":{"description":"Gets a list of sensor rules associated with the device `trackingId`.\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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"id":"f4c26630-5d26-4cd1-a57e-g7834e72cb99","range":{"begin":-20,"end":30},"type":"temperature"},{"id":"j7c24430-5f26-4kd1-c58e-g7126e72ab33","range":{"begin":30,"end":80},"type":"pressure"}],"pageToken":"024ggjjea253d79fc"},"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":{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of sensor rule objects, `count` indicates the number of returned sensor rules,\nand `pageToken` is the next page token if available.\n\nIf no sensor rules are found, an object with an empty data array is returned.\n","type":"object"}}},"description":"Response body contains an array of sensor rule objects, count indicating the number of returned sensor rules,\nand pageToken if available.\n\nIf no sensor rule is found, an object with empty data array is returned.\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 sensor rules associated with a device","tags":["Associations"]},"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"}},{"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`.","maxLength":50,"minLength":1,"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"}}]},"/associations/v3/{trackingId}/sensors/{sensorRuleId}":{"delete":{"description":"Deletes the association between the sensor rule `sensorRuleId` and the device `trackingId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Disassociates a device and a sensor rule","tags":["Associations"]},"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":"ID of the sensor rule","in":"path","name":"sensorRuleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},{"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`.","maxLength":50,"minLength":1,"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":"Associates the device with `trackingId` to the sensor rule with `sensorRuleId`.\n\nA single device can only have one sensor rule per sensor type associated.\n\nThe associated sensor rule settings will be automatically synchronised to the `system.sensorAlarmConfig` section of the device\n`desired shadow`.\n\nEvery time the associated sensor rule gets triggered by the device ingestion, an event will be generated.\n","responses":{"200":{"description":"Successful\n\nDevice already associated with the sensor rule\n"},"201":{"description":"Successful\n\nThe device has been associated with the sensor rule\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":"Associates a device with a sensor rule","tags":["Associations"]}},"/bulkjobs/v4/deviceUploads":{"get":{"description":"Gets the bulk upload job IDs for a project. The jobs and their results are available for one week.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"type","required":false,"schema":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},{"in":"query","name":"status","schema":{"oneOf":[{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},{"items":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"type":"array"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"jobId":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},"required":["jobId","status"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Success\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets the bulk upload job IDs for a project","tags":["Bulk jobs"]},"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"}},{"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"}}],"post":{"description":"Starts bulk upload process\n","parameters":[{"in":"query","name":"fileName","schema":{"description":"The name of the upload file.","maxLength":50,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"oneOf":[{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name"],"title":"Unprovisioned device","type":"object"},{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","deviceId"],"title":"Provisioned device","type":"object"},{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","externalId"],"title":"Virtual device","type":"object"},{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","externalDeviceId","connectorId"],"title":"External cloud device","type":"object"}]},"title":"Add devices","type":"array"},{"items":{"oneOf":[{"additionalProperties":false,"properties":{"trackingId":{"description":"This is a unique ID associated with the device data in HERE Tracking.","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["trackingId"],"title":"Physical devices","type":"object"},{"additionalProperties":false,"properties":{"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["externalId"],"title":"Virtual devices","type":"object"},{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"removeFromConnectorOnly":{"default":false,"description":"If set to true, external device is only removed from the connector but the virtual device\nwill remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c\ndevice, i.e. when `externalDeviceId` and `connectorId` are provided.\n","type":"boolean"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["connectorId","externalDeviceId"],"title":"C2C devices","type":"object"}]},"title":"Delete devices","type":"array"}]}},"text/csv":{"schema":{"description":"Text defining the device details in csv format. Rows are separated by a line break and columns by comma.\nThe first row must have the field names.\n\nThe maximum number of devices to be uploaded at once is 1000.\n\n## Add devices\nEach row represents a single device, that can be already provisioned\ndevice (in which case deviceId must be provided), un-provisioned device (in which case only name is required\ndevice identificator field), virtual device (in which case externalId must be provided) or external cloud device,\nfor which both `externalDeviceId` and `connectorId` must be provided.\nOne can also define device settings to be saved to device desired shadow. Additionally rules and\ngeofences can be defined -- those will be associated to the devices. Also device type and tags can be defined.\n\nThe supported field names are the following:\n\n### Device identificators\n- `name`: The name of the device. Must be unique within a project. Used to identify the device in the response. Required field.\n- `deviceId`: Device ID of the provisioned device. The device `deviceId` will be claimed to the project `projectId` in the bulk upload process\n- `externalId`: Virtual device external ID that must be unique within a project. The virtual device will be claimed to the project.\n- `externalDeviceId`: Identifier of the device on the external cloud. Must be provided together with `connectorId`. The external device is added to connector.\n- `connectorId`: Identifier of the could-to-cloud connector.\nIn case only `name` is provided, a new device is provisioned and claimed to the project. `deviceId` and `deviceSecret` will be provided via \"Gets bulk upload results\" API\n\n### Device settings, labels and associations\n- `sampleMs`: Device sampling rate in milliseconds\n- `sendMs`: Device sending rate in milliseconds (should be equal or greater than sampleMs)\n- `distanceM`: Device sends an update if it has moved farther than the specified distance in meters\n- `areaBased`: Set true/1 if device should be configured to area based mode.\n- `type`: The type of the asset. Can be any user defined string. Type is saved to labels service.\n- `tags`: There are two ways of defining tags in the csv format. Tags are saved to labels service.\n  + `tag:{any}`, e.g. `tag:priority 1,tag:priority 2`: In device row, the tag is applied to the device if the corresponding column has `1` in it.\n  + `tags`: In device row and tags column provide tags separated by `|`, e.g. `priority 1|priority 2`\n- `geofences`: There are two ways of defining geofences to be associated with the device:\n  + `geofence:{geofenceId}`, e.g. `geofence:e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc`: In device row, the geofence is associated to the device if the corresponding column has `1` in it.\n  + `geofences`: In the device row and geofences column provide geofenceIds to be associated with the device, separated by `|` e.g. `2b4c5571-e398-45c5-9637-6ce63e320b4f|e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc`\n- `rules`: There are two ways of defining rules to be associated with the device. The functionality is the same as for geofences. Rules cover both sensor rules that are managed via sensors/v3 endpoint and other rules that are managed via rules/v4 endpoint.\n  + `rule:{ruleId}`, e.g. `rule:e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc`\n  + `rules`: In the device row in rules column specify the rules to be associated to the device, separated by `|`, e.g. `2b4c5571-e398-45c5-9637-6ce63e320b4f|e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc`\n\nExample 1:\n```\nname,deviceId,externalId,externalDeviceId,connectorId,sendMs,sampleMs,areaBased,distanceM,geofence:e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc,geofence:2b4c5571-e398-45c5-9637-6ce63e320b4f,rule:b647155e-0789-4fa0-8807-154332c0617d,type\nMy HW tracker 1,1ae212e7-c342-4108-ad26-45df1a8e2631,,,,600000,120000,,,1,1,1,Warehouse\nUnprovisioned device,,,,,600000,120000,,100,,,,Phone\nVirtual tracker,,MyDevice,,,900000,180000,1,,1,1,,Heavy Machinery\nMy external cloud tracker,,,MyExternalDeviceIdentifier,CON-8bfd6006-5fe6-400f-8a0a-ca73d44866f3,,,,,1,,1,Airport / Air Cargo\n```\n\nExample 2:\n```\nname,tags,geofences\ntracker1,Priority1;Important,2b4c5571-e398-45c5-9637-6ce63e320b4f|e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc\ntracker2,Important,e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc\n```\n\n## Delete devices\nEach row represents a single tracker to be deleted. Trackers can be identified by\n`trackingId`, `externalId` (for virtual devices) or `externalDeviceId` along with\n`connectorId` (for external cloud devices).\nBy default the provided tracker will be both unclaimed and unprovisioned.\nWith boolean property `unclaimOnly` one can bypass unprovisioning for selected devices\nand with `removeFromConnectorOnly` both unclaiming and unprovisioning steps will be skipped.\n\nExample:\n```\ntrackingId,externalId,externalDeviceId,connectorId,unclaimOnly,removeFromConnectorOnly\nHERE-ef63c528-0aea-4f9f-a160-368559fa31ed,,,,1,\nHERE-aba23346-5248-49db-bea8-9f75aa81d3dd,,,,,\n,MyDevice,,,,\n,,MyExternalDevice,CON-8bfd6006-5fe6-400f-8a0a-ca73d44866f3,,1\n```\n","type":"string"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"jobId":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["jobId"],"type":"object"}}},"description":"Accepted\n\nThe bulk upload job has been started successfully.\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"},"412":{"content":{"application/json":{"example":{"code":412,"details":{"hereErrorCode":412306},"error":"Precondition Failed","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The server does not meet one of the preconditions that the requester put on the request."},"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":"Precondition Failed\n\nThe server does not meet one of the preconditions that the requester put on the request.\n"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Starts bulk upload","tags":["Bulk jobs"]}},"/bulkjobs/v4/deviceUploads/{jobId}":{"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"}},{"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"}},{"in":"path","name":"jobId","required":true,"schema":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"patch":{"description":"Updates bulk upload status. In case current status is pending or ongoing, user can perform action `cancel`,\nwhich cancels the bulk upload processes of the job that are still in the pending state.\nIn case current status is completed, failed or cancelled, user can perform action `acknowledged`\nwhich can be used to mark the job acknowledged.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"action":{"enum":["cancel","acknowledge"],"type":"string"}},"required":["action"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"}},"type":"object"}}},"description":"Successful\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"},"412":{"content":{"application/json":{"example":{"code":412,"details":{"hereErrorCode":412306},"error":"Precondition Failed","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The server does not meet one of the preconditions that the requester put on the request."},"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":"Precondition Failed\n\nThe server does not meet one of the preconditions that the requester put on the request.\n"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Updates bulk upload job status","tags":["Bulk jobs"]}},"/bulkjobs/v4/deviceUploads/{jobId}/results":{"get":{"description":"Gets bulk upload results\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Error code","type":"integer"},"details":{"description":"Error details","type":"string"},"message":{"description":"Error description","type":"string"}},"type":"object"},"type":"array"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"name":{"description":"The name of the device. Must be unique within a project.","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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},"required":["status","limit","count","items"],"type":"object"}}},"description":"Successful\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets bulk upload results","tags":["Bulk jobs"]},"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"}},{"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"}},{"in":"path","name":"jobId","required":true,"schema":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}]},"/bulkjobs/v4/deviceUploads/{jobId}/status":{"get":{"description":"Gets bulk upload status and progress\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"failed":{"description":"The number of devices for which all planned upload operations failed.","type":"integer"},"fileName":{"description":"The name of the upload file.","maxLength":50,"minLength":1,"type":"string"},"partiallySucceeded":{"description":"The number of devices for which some upload operations succeeded.","type":"integer"},"pending":{"description":"The number of devices that are still waiting upload operations to be done.","type":"integer"},"progress":{"description":"The percentage of the job that was completed at the time of the request.","maximum":100,"minimum":0,"type":"number"},"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"succeeded":{"description":"The number of devices for which all planned upload operations succeeded.","type":"integer"},"total":{"description":"The total number of devices to be uploaded in this job.","type":"integer"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},"required":["status","progress","total","succeeded","failed","partiallySucceeded","pending"],"type":"object"}}},"description":"Successful\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets bulk upload status","tags":["Bulk jobs"]},"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"}},{"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"}},{"in":"path","name":"jobId","required":true,"schema":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}]},"/bulkjobs/v4/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":["Bulk jobs"]}},"/bulkjobs/v4/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":["Bulk jobs"]}},"/c2c/v4/callback":{"post":{"description":"External clouds can call this endpoint through their callback mechanism\nto report device updates. The format of the payload is driver specific.\n","parameters":[{"description":"API Key","in":"query","name":"apiKey","required":true,"schema":{"maxLength":100,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"204":{"description":"Successful"},"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"},"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"},"501":{"content":{"application/json":{"example":{"code":501,"details":{"hereErrorCode":501306},"error":"Not Implemented","id":"78fa16ca-6702-4cc7-90dd-29f60a6528d6","message":"This feature is not yet available."},"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 Implemented\n\nThis feature is not yet available.\n"}},"summary":"Receives external device update reports","tags":["C2C"]}},"/c2c/v4/connectors":{"get":{"description":"Gets a list of cloud-to-cloud connectors for the project `projectId`.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"allOf":[{"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"projectId":{"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"}},"type":"object"},{"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"},{"properties":{"lastExecTs":{"description":"Timestamp of the last connection execution.","maxLength":50,"type":"string"}},"type":"object"},{"properties":{"totalAddedDevices":{"description":"Number of external devices added to the connector.","minimum":0,"type":"integer"}},"required":["totalAddedDevices"],"type":"object"},{"properties":{"createdAt":{"description":"Timestamp of the connector creation.","format":"date-time","type":"string"}},"required":["createdAt"],"type":"object"}]},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Successful"},"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 a list of connectors","tags":["C2C"]},"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"}},{"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"}}],"post":{"description":"Registers a cloud-to-cloud connector between the HERE Tracking project `projectId`\nand an external cloud using the cloud-to-cloud driver `driverId`\nand the external cloud access credentials.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"object"}}},"description":"Successful"},"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 a connector","tags":["C2C"]}},"/c2c/v4/connectors/ext-devices/{externalDeviceId}":{"get":{"description":"Gets identifiers for connectors to which an external device belongs.","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"}},{"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":"Identifier of the external device","in":"path","name":"externalDeviceId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"}},"required":["connectorId"],"type":"object"},"type":"array"}},"required":["items"],"type":"object"}}},"description":"Successful"},"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 connector identifiers for an external device","tags":["C2C"]}},"/c2c/v4/connectors/{connectorId}":{"delete":{"description":"Deletes the connector `connectorId`.","parameters":[{"description":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"Unclaim and unprovision devices","in":"query","name":"deleteDevices","schema":{"type":"boolean"}}],"responses":{"204":{"description":"Successful"},"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"},"412":{"content":{"application/json":{"example":{"code":412,"details":{"hereErrorCode":412306},"error":"Precondition Failed","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The server does not meet one of the preconditions that the requester put on the request."},"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":"Precondition Failed\n\nThe server does not meet one of the preconditions that the requester put on the request.\n"}},"security":[{"Bearer":[]}],"summary":"Deletes a connector","tags":["C2C"]},"get":{"description":"Gets connector info for the connector `connectorId`.","parameters":[{"description":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"projectId":{"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"}},"type":"object"},{"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"},{"properties":{"lastExecTs":{"description":"Timestamp of the last connection execution.","maxLength":50,"type":"string"}},"type":"object"},{"properties":{"totalAddedDevices":{"description":"Number of external devices added to the connector.","minimum":0,"type":"integer"}},"required":["totalAddedDevices"],"type":"object"},{"properties":{"createdAt":{"description":"Timestamp of the connector creation.","format":"date-time","type":"string"}},"required":["createdAt"],"type":"object"}]}}},"description":"Successful"},"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 a connector info","tags":["C2C"]},"put":{"description":"Updates the connector `connectorId` info.","parameters":[{"description":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"object"}}},"description":"Successful"},"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":"Updates a connector info","tags":["C2C"]}},"/c2c/v4/connectors/{connectorId}/ext-devices":{"get":{"description":"Gets all external devices under the connector `connectorId`.","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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"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":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"},"info":{"description":"Extra information regarding the device's provisioning status at HERE Tracking Cloud.\nIt also contains an error object if the device failed provisioning.\n","type":"object"},"localDeviceId":{"description":"Device id in TC. Either trackingId or shipmentId.","maxLength":50,"minLength":1,"type":"string"},"provisioning":{"description":"Current device status from HERE Tracking Cloud's perspective.\n\"provisioning\": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.\n\"provisioned\": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.\n\"failed\": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.\n","enum":["provisioning","provisioned","failed"],"type":"string"}},"required":["externalDeviceId","provisioning","enabled"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Successful"},"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 external devices under a connector","tags":["C2C"]},"post":{"description":"Adds external devices to the connector `connectorId`.","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":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"}},"required":["externalDeviceId"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"}}}},"responses":{"204":{"description":"Successful"},"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":"Adds external devices to a connector","tags":["C2C"]}},"/c2c/v4/connectors/{connectorId}/ext-devices-batch":{"delete":{"description":"Removes a batch of external devices from the connector `connectorId`.","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":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"externalDeviceIds":{"items":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"}},"type":"object"}}}},"responses":{"204":{"description":"Successful"},"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":"Removes a batch of external devices from a connector","tags":["C2C"]}},"/c2c/v4/connectors/{connectorId}/ext-devices/{externalDeviceId}":{"delete":{"description":"Removes the external device `externalDeviceId` from the connector `connectorId`.","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":"Identifier of the connector","in":"path","name":"connectorId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"Identifier of the external device","in":"path","name":"externalDeviceId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"Successful"},"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":"Removes an external device from a connector","tags":["C2C"]}},"/c2c/v4/drivers":{"get":{"description":"Gets all cloud-to-cloud drivers that a user is authorized to use.","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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"example":{"autoProvisionCallbackDevices":true,"driverId":"my-driver-1-id","driverSyncMethod":"pull","driverType":"internal","externalCloudInfoSchema":[{}],"provider":"External Cloud 1","strategy":{"managerId":"my-manager-1-id","name":"my-manager-1"},"version":0},"properties":{"autoProvisionCallbackDevices":{"description":"If true, it indicates that this one is a self-provisioning callback driver.","type":"boolean"},"driverId":{"description":"Identifier of the driver.","maxLength":50,"minLength":1,"type":"string"},"driverSyncMethod":{"description":"Driver synchronization method","enum":["push","pull","none"],"type":"string"},"driverType":{"description":"Driver type.","enum":["tracker-device","transporter","internal"],"type":"string"},"externalCloudInfoSchema":{"items":{"properties":{"hidden":{"description":"Indicates whether cloud info parameter is hidden.","type":"boolean"},"key":{"description":"Key of external cloud info parameter.","maxLength":100,"type":"string"},"label":{"description":"Label of external cloud info parameter.","type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"provider":{"description":"Name/description of the external cloud that the driver represents.\n","type":"string"},"strategy":{"properties":{"managerId":{"description":"Identifier of the manager.","maxLength":50,"minLength":1,"type":"string"},"name":{"description":"A strategy name","type":"string"}},"type":"object"},"version":{"description":"Version number of the driver.","type":"integer"}},"required":["driverId","provider","driverType","driverSyncMethod","externalCloudInfoSchema","version","strategy"],"title":"driverInfo","type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Successful"},"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 a list of drivers","tags":["C2C"]},"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"}}]},"/c2c/v4/drivers/{driverId}/verify":{"post":{"description":"External cloud credentials to be validated for structure and fields provided.\nVerify external cloud authentication status.\n","parameters":[{"description":"Driver ID","in":"path","name":"driverId","required":true,"schema":{"description":"Identifier of the driver.","maxLength":50,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"}}}},"responses":{"200":{"description":"Successful"},"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"},"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"},"501":{"content":{"application/json":{"example":{"code":501,"details":{"hereErrorCode":501306},"error":"Not Implemented","id":"78fa16ca-6702-4cc7-90dd-29f60a6528d6","message":"This feature is not yet available."},"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 Implemented\n\nThis feature is not yet available.\n"}},"summary":"Validate and verify external cloud credentials for driver","tags":["C2C"]}},"/c2c/v4/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":["C2C"]}},"/c2c/v4/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":["C2C"]}},"/device-associations/v2/health":{"get":{"deprecated":true,"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":["Device Associations"]}},"/device-associations/v2/version":{"get":{"deprecated":true,"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":["Device Associations"]}},"/device-associations/v2/{trackingId}/geofences":{"get":{"deprecated":true,"description":"Gets all geofences associated with the device with `trackingId`.","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"}},{"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`.","maxLength":50,"minLength":1,"type":"string"}},{"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":"Application identifier. Used together with an external ID to identify a virtual device.","in":"query","name":"appId","required":false,"schema":{"minLength":8,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"geofence":{"definition":{"points":[{"lat":52.5308398,"lng":13.38490035},{"lat":52.5408398,"lng":14.38490035},{"lat":53.5308398,"lng":13.39490035}]},"type":"polygon"},"id":"d0c29690-5d26-4cf1-a37e-b7816e72cb99"},{"geofence":{"definition":{"center":{"lat":52.5308398,"lng":13.38490035},"floor":{"id":"DM_82228","name":"House 3"},"radius":100},"description":"This is a circular geofence","name":"16fbc82c-88d1-4219-bfad-6e5de52688a2","type":"circle"},"id":"ff92eda0-3114-4640-b7e6-4ba641ae1124"}],"pageToken":"027ffffea253d79fc"},"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":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"trainingStatus":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"trained":{"description":"True if the POI geofence is trained","type":"boolean"}},"required":["trained"],"type":"object"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type","trainingStatus"],"title":"POI","type":"object"}]},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","geofence"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of geofence objects. `count` indicates the number of returned geofences, and `pageToken` indicates the next available page in the matching result set. If no geofences are found, an object with empty data array is returned.","type":"object"}},"application/octet-stream":{"example":"34 56 18 93 45 29 54 62 77 28 23 79 22","schema":{"description":"Response body contains an array of geofence objects, `count` specifies the number of returned geofences,\nand `pageToken` indicates the next available page in the matching result set.\n\nIf no geofences are found, an object with empty data array is returned.\n","example":{"response data as Protobuf binary, format as follows":"message GeofenceMsg {\n  message GeofenceCircular {\n    //Latitude value\n    float lat = 1;\n    //Longitude value\n    float lng = 2;\n    //Center radius value\n    uint32 radius = 3;\n    //Geofence ID\n    string id = 4;\n  }\n  message GeofencePolygonal {\n    //Latitude value array\n    repeated float lat = 1;\n    //Longitude value array\n    repeated float lng = 2;\n    //Geofence ID\n    string id = 3;\n  }\n  //Circular geofence array\n  repeated GeofenceCircular circulars = 1;\n  //Polygonal geofence array\n  repeated GeofencePolygonal polygonals = 2;\n  //Page token\n  string pageToken = 3;\n}\n"},"items":{},"type":"array"}}},"description":"Response body contains an array of geofence objects, `count` specifies the number of returned geofences,\nand `pageToken` indicates the next available page in the matching result set.\n\nIf no geofences are found, an object with empty data array is returned.\nResponse content type can be either JSON or protobuf depending on the 'Content-Type' request header.\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","message":"The trackingId 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":"TrackingId not found."}},"security":[{"Bearer":[]}],"summary":"Gets geofences associated with a device","tags":["Device Associations"]}},"/events/v3":{"get":{"description":"Gets all events for all devices and shipments of the project. The results are listed in descending order \nbased on the timestamp. \n\nAn event is uniquely identified by `trackingId`-`ruleId`-`timestamp` key, \nwith an exception of dwelling and stock rule events. \nDwelling events also need `geofenceId` to be specified, \nwhereas for stock events `trackingId` is not applicable.\n\nA time range can be defined with `before` and `after` timestamps. The response will contain\nan array of events that were recorded within the range.\n\nIf the request is supplied with `eventSource` query parameter, the response will contain\nevents generated by the defined source only.\n\nIf the request is supplied with `eventType` query parameter, the response will contain\nevents of the specified type only.\n\nIf the request is supplied with `ruleId` query parameter, the response will only contain events\nfor the specified rule ID.\n\nIf the request is supplied with `initialState` query parameter, the response will contain\nevents having the specified initial state.\n\nAll the aforementioned query parameters can be combined together.\n","parameters":[{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\nThe accepted range is from 1 to the current time.\n","in":"query","name":"before","required":false,"schema":{"minimum":1,"type":"number"}},{"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":"eventSource","required":false,"schema":{"oneOf":[{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},{"items":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"type":"array"}]}},{"in":"query","name":"eventType","required":false,"schema":{"oneOf":[{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},{"items":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"type":"array"}]}},{"in":"query","name":"ruleId","required":false,"schema":{"oneOf":[{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},{"items":{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"type":"array"}]}},{"in":"query","name":"initialState","required":false,"schema":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"}},{"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":1000,"maximum":1000,"minimum":1,"type":"integer"}},{"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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":1,"data":[{"eventSource":"attach","eventType":"TRUE_TO_FALSE","initalState":false,"ruleId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","timestamp":1499258057036,"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"}],"pageToken":"2lkjfdaoiekllldko=sdflkjdfasdi34"},"schema":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{"oneOf":[{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["attach","tamper","online"],"type":"string"},"eventType":{"enum":["FALSE_TO_TRUE","TRUE_TO_FALSE"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by online rule or by sensors that report boolean data (attach, tamper).\n","title":"Boolean event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["battery","humidity","pressure","temperature"],"type":"string"},"eventType":{"enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by sensor that report numerical data (battery, humidity,\npressure and temperature).\n","title":"Range event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: acceleration rule\n","enum":["acceleration"],"type":"string"},"eventType":{"enum":["EVENT"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by sensor that report numerical data but only when a specific\nevent occurs (eg. the device was dropped)\n","title":"Generic event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: geofence rule\n","enum":["geofence"],"type":"string"},"eventType":{"enum":["INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by device crossing the geofence border.\n","title":"Geofence event"},{"allOf":[{"properties":{"eventSource":{"description":"The event source: stock rule\n","enum":["stock"],"type":"string"},"eventType":{"description":"The \"OVERSTOCK\" type - Events are triggered when the number of assets\nis over a maximum stock volume.\n\nThe \"UNDERSTOCK\" type - Events are triggered when the number of assets\nis under a minimum stock volume.\n\nThe \"NORMAL_VOLUME\" type - Events are triggered when the number of assets\nis between the minimum stock volume and the maximum stock volume.\n","enum":["OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK"],"type":"string"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["timestamp","ruleId","eventSource","eventType"]},{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"}},"required":["initialState"],"type":"object"}],"description":"Events generated by the number of assets inside a geofence over a maximum stock volume,\nor between a minimum stock volume and a maximum stock volume, or under a minimum stock volume.\n","title":"Stock event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: dwelling rule\n","enum":["dwelling"],"type":"string"},"eventType":{"enum":["DWELLING_STARTED","DWELLING_ENDED"],"type":"string"},"geofenceId":{"description":"An ID of a geofence that triggered the dwelling event\n","format":"uuid","type":"string"}},"required":["eventSource","eventType","geofenceId"]}],"description":"Events generated by a device that has dwelled inside a geofence for longer than specified\nthreshold duration\n","title":"Dwelling event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: detention rule\n","enum":["detention"],"type":"string"},"eventType":{"enum":["DETENTION_STARTED","DETENTION_ENDED"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated when a device has been stationary for longer than the specified\nthreshold duration.\n","title":"Detention event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: utilization rule\n","enum":["utilization"],"type":"string"},"eventType":{"enum":["UTILIZED","UNUTILIZED"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"The UTILIZED event is generated when a device starts moving,\nand the UNUTILIZED event is generated when the device has been stationary\nfor longer than the specified threshold duration.\n","title":"Utilization event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"enum":["shipmentSchedule"],"type":"string"},"eventType":{"enum":["SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"segmentId":{"description":"An ID of the segment where the schedule deviation was detected\n","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentStatus":{"description":"Status of the segment.","enum":["pending","ongoing","completed","cancelled"],"type":"string"}},"required":["eventSource","eventType","segmentId","segmentStatus"],"type":"object"}],"description":"Events generated by a shipment that is ahead or delayed from its preplanned schedule\n","title":"Shipment schedule event"}]},"type":"array"}},"type":"object"}]}}},"description":"Successful\n\nThe events 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 event history","tags":["Events"]},"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"}},{"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"}}]},"/events/v3/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":["Events"]}},"/events/v3/statuses":{"get":{"description":"Gets all events statuses for all devices and shipments of the project.\nAn event status of a device is the most recent event of any rule or geofence the device \nis associated with.\nThe same applies for shipments.\n\nThe response contains a list of event status objects and\neach object has the following properties:\n* `trackingId` or `shipmentId`: a device ID or a shipment ID\n* `ruleId`: an associated rule or geofence ID\n* `eventSource`: the rule type\n* `eventType`: an event type of the latest event of the rule (same as the \"event state\")\n* `timestamp`: a time since when the device has been in this event state\n\nThe array is sorted by the following fields in the\nfollowing order: `trackingId`, `eventSource`, `timestamp`, `ruleId`, `geofenceId`.\n\nA time range can be defined with `before` and `after` timestamps. The response will contain\nevent statuses that were recorded within the range.\n\nIf the request is supplied with `eventSource` query parameter, the response results will be limited\nto the specified rule types only.\n\nIf the request is supplied with `ruleId` query parameter, the response results will be limited\nto the specified rule IDs only.\n\nIf the request is supplied with `trackingId` query parameter, the response results will be limited\nto the specified devices only. Also `shipmentId` can be used as a `trackingId`.\n\nIf the request is supplied with `eventType` query parameter, the response results will be limited\nto the specified type only.\n\nIf the request is supplied with `geofenceId` query parameter, it will only affect dwelling \nevent statuses filtering, limiting the results to the specified geofence only.\nOther event types are not affected by this setting.\nNote that for the event statuses of geofence type, the `ruleId` is the `geofenceId`.\n\nIf the request is supplied with `shipments` query parameter, the response results will be limited\neither to shipments (`shipments`=`true`) or devices (`shipments`=`false`) only. \nOtherwise, if `shipments` query parameter is not specified, response results will include both devices and shipments.\n\nAll the aforementioned query parameters can be combined together.\n","parameters":[{"in":"query","name":"eventSource","required":false,"schema":{"oneOf":[{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},{"items":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"type":"array"}]}},{"in":"query","name":"eventType","required":false,"schema":{"oneOf":[{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},{"items":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"type":"array"}]}},{"in":"query","name":"trackingId","required":false,"schema":{"oneOf":[{"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"},{"items":{"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"},"type":"array"}]}},{"in":"query","name":"ruleId","required":false,"schema":{"oneOf":[{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},{"items":{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"type":"array"}]}},{"in":"query","name":"geofenceId","required":false,"schema":{"oneOf":[{"description":"ID of the geofence. Must be a valid UUIDv4.\nThis filter can be used to filter results related to dwelling event source.\n","format":"uuid","type":"string"},{"items":{"description":"ID of the geofence. Must be a valid UUIDv4.\nThis filter can be used to filter results related to dwelling event source.\n","format":"uuid","type":"string"},"type":"array"}]}},{"in":"query","name":"shipments","required":false,"schema":{"description":"If `true`, the results will be limited to shipment event statuses only.\nIf `false`, the results will be limited to device event statuses only.\nIf not specified, the results will include both device and shipments event statuses.\n","type":"boolean"}},{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\nThe accepted range is from 1 to the current time.\n","in":"query","name":"before","required":false,"schema":{"minimum":1,"type":"number"}},{"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"}},{"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":1000,"maximum":1000,"minimum":1,"type":"integer"}},{"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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"eventSource":"attach","eventType":"TRUE_TO_FALSE","ruleId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","timestamp":1499258057036,"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},{"eventSource":"geofence","eventType":"INSIDE_GEOFENCE","ruleId":"0d2c30d4-a827-4baf-931f-9b85c9b4e428","timestamp":1499258500036,"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"}],"pageToken":"2lkjfdaoiekllldko=sdflkjdfasdi34"},"schema":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{"oneOf":[{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["attach","tamper","online"],"type":"string"},"eventType":{"enum":["FALSE_TO_TRUE","TRUE_TO_FALSE"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"attach, tamper, online"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["battery","humidity","pressure","temperature"],"type":"string"},"eventType":{"enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"battery, humidity, pressure, temperature"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: acceleration rule\n","enum":["acceleration"],"type":"string"},"eventType":{"enum":["EVENT"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"acceleration"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: geofence rule\n","enum":["geofence"],"type":"string"},"eventType":{"enum":["INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"geofence"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: dwelling rule\n","enum":["dwelling"],"type":"string"},"eventType":{"enum":["DWELLING_STARTED","DWELLING_ENDED"],"type":"string"},"geofenceId":{"description":"An ID of a geofence that triggered the dwelling event\n","format":"uuid","type":"string"}},"required":["eventSource","eventType","geofenceId"]}],"title":"dwelling"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: detention rule\n","enum":["detention"],"type":"string"},"eventType":{"enum":["DETENTION_STARTED","DETENTION_ENDED"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"detention"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: utilization rule\n","enum":["utilization"],"type":"string"},"eventType":{"enum":["UTILIZED","UNUTILIZED"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"utilization"},{"properties":{"eventSource":{"description":"The event source: stock rule\n","enum":["stock"],"type":"string"},"eventType":{"description":"The \"OVERSTOCK\" type - Events are triggered when the number of assets\nis over a maximum stock volume.\n\nThe \"UNDERSTOCK\" type - Events are triggered when the number of assets\nis under a minimum stock volume.\n\nThe \"NORMAL_VOLUME\" type - Events are triggered when the number of assets\nis between the minimum stock volume and the maximum stock volume.\n","enum":["OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK"],"type":"string"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"title":"stock","type":"object"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"enum":["shipmentSchedule"],"type":"string"},"eventType":{"enum":["SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"segmentId":{"description":"An ID of the segment where the schedule deviation was detected\n","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentStatus":{"description":"Status of the segment.","enum":["pending","ongoing","completed","cancelled"],"type":"string"}},"required":["eventSource","eventType","segmentId","segmentStatus"],"type":"object"}],"title":"shipment schedule"}]},"type":"array"}},"type":"object"}]}}},"description":"Successful\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 event statuses","tags":["Events"]},"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"}},{"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"}}]},"/events/v3/statuses/deviceCounts":{"get":{"description":"This API call counts the number of devices and shipments that are currently in the different \nevent states per rule or per event source (that is per rule type).\n\nAn event state of a device is the event type of the most recent device event.\nIt indicates a state the device is currently in, in relation to a rule the device is associated with.\n\nFor example, the event state can be either `INSIDE_GEOFENCE` or `OUTSIDE_GEOFENCE` in case the event source is `geofence`; \nor `BELOW_RANGE`, `IN_RANGE` or `ABOVE_RANGE` in case the event source is `battery` rule.\n\nA device can be in several different event states at the same time when it has more than \none rule associated with it. \nFor example, a device can be at the same time in `INSIDE_GEOFENCE` and `ABOVE_RANGE` event states.\n\nThe same applies for shipments.\n\nThe `groupBy` query parameter defines how the results are grouped.\n\nThe default value for the `groupBy` parameter is `ruleId`. \nThe response contains a list of objects, one per each rule,\nthat are associated to at least one device or shipment of the project.\nEach object has the following properties:\n* `ruleId`: a rule ID\n* `eventSource`: the rule type\n* every distinct event state (applicable for the rule type) and the number of devices in this state\n* `total`: the total number of devices associated to the rule\n\nWhen the `groupBy` parameter value is `eventSource`, the response contains a list of objects, one per\nevent source (that is per each rule type),\nthat are associated to at least one device or shipment of the project.\nEach object has the following properties:\n* `eventSource`: a rule type\n* every distinct event state (applicable for the rule type) and the number of devices in this state. \n  One device is counted only once per `eventType` state, but in case a single device is associated to multiple\n  rules of the same type, it will be counted separately for each event state.\n* `total`: the total number of devices associated to the rule type. A single device is counted only once.\n\nFor example, a device A is associated to 2 geofences and is inside one and outside the other.\nA device B is associated to 3 geofences and is outside all of them. With the request \nquery parameter set as `groupBy`=`eventSource`, the response body will contain the following result item:\n```\n{\n  \"eventSource\": \"geofence\",\n  \"INSIDE_GEOFENCE\": 1,\n  \"OUTSIDE_GEOFENCE\": 2,\n  \"total\": 2\n}.\n```\n\nIf the request is supplied with `eventSource` query parameter, the response results will be limited\nto the specified rule types only.\n\nIf the request is supplied with `ruleId` query parameter, the response results will be limited\nto the specified rule IDs only.\n\nIf the request is supplied with `trackingId` query parameter, the response results will be limited\nto the specified devices only. Also `shipmentId` can be used as a `trackingId`.\n\nIf the request is supplied with `geofenceId` query parameter, it will only affect dwelling \nevent statuses filtering, limiting the results to the specified geofence only.\nOther event types are not affected by this setting.\nNote that for the event statuses of geofence type, the `ruleId` is the `geofenceId`.\n\nIf the request is supplied with `shipments` query parameter, the response results will be limited\neither to shipments (`shipments`=`true`) or devices (`shipments`=`false`) only. \nOtherwise, if `shipments` query parameter is not specified, response results will include both devices and shipments.\n\nAll the aforementioned query parameters can be combined together.\n","parameters":[{"in":"query","name":"groupBy","schema":{"default":"ruleId","description":"Define whether the number of devices and shipments in each event state is calculated per rule ID or per rule type.\n","enum":["ruleId","eventSource"],"type":"string"}},{"in":"query","name":"eventSource","required":false,"schema":{"oneOf":[{"description":"Source of the event.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","detention","utilization","online","shipmentSchedule"],"type":"string"},{"items":{"description":"Source of the event.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","detention","utilization","online","shipmentSchedule"],"type":"string"},"type":"array"}]}},{"in":"query","name":"trackingId","required":false,"schema":{"oneOf":[{"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"},{"items":{"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"},"type":"array"}]}},{"in":"query","name":"ruleId","required":false,"schema":{"oneOf":[{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},{"items":{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"type":"array"}]}},{"in":"query","name":"geofenceId","required":false,"schema":{"oneOf":[{"description":"ID of the geofence. Must be a valid UUIDv4.\nThis filter can be used to filter results related to dwelling event source.\n","format":"uuid","type":"string"},{"items":{"description":"ID of the geofence. Must be a valid UUIDv4.\nThis filter can be used to filter results related to dwelling event source.\n","format":"uuid","type":"string"},"type":"array"}]}},{"in":"query","name":"shipments","required":false,"schema":{"description":"If `true`, the results will be limited to shipment event statuses only.\nIf `false`, the results will be limited to device event statuses only.\nIf not specified, the results will include both device and shipments event statuses.\n","type":"boolean"}},{"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":1000,"maximum":1000,"minimum":1,"type":"integer"}},{"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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":3,"data":[{"FALSE_TO_TRUE":4,"TRUE_TO_FALSE":1,"eventSource":"attach","ruleId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","total":5},{"ABOVE_RANGE":0,"BELOW_RANGE":1,"IN_RANGE":4,"eventSource":"battery","ruleId":"4e74ad36-7dd3-459a-ace4-f8a7f1c6085d","total":5},{"DWELLING_ENDED":5,"DWELLING_STARTED":2,"eventSource":"dwelling","ruleId":"018eedc7-1b16-4233-80b1-2b13a307b4aa","total":5}],"pageToken":"sakuh8342jhe83290US87sdjhAS8we"},"schema":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{"oneOf":[{"allOf":[{"properties":{"FALSE_TO_TRUE":{"description":"Number of devices currently in this event state.\n","type":"number"},"TRUE_TO_FALSE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["attach","tamper","online"],"type":"string"}},"required":["eventSource","TRUE_TO_FALSE","FALSE_TO_TRUE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"attach, tamper, online"},{"allOf":[{"properties":{"ABOVE_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"BELOW_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"IN_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["battery","humidity","pressure","temperature"],"type":"string"}},"required":["eventSource","BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"battery, humidity, pressure, temperature"},{"allOf":[{"properties":{"EVENT":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["acceleration"],"type":"string"}},"required":["eventSource","EVENT"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"acceleration"},{"allOf":[{"properties":{"INSIDE_GEOFENCE":{"description":"Number of devices currently in this event state.\n","type":"number"},"OUTSIDE_GEOFENCE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["geofence"],"type":"string"}},"required":["eventSource","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"geofence"},{"allOf":[{"properties":{"DWELLING_ENDED":{"description":"Number of devices currently in this event state.\n","type":"number"},"DWELLING_STARTED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["dwelling"],"type":"string"}},"required":["eventSource","DWELLING_STARTED","DWELLING_ENDED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"dwelling"},{"allOf":[{"properties":{"DETENTION_ENDED":{"description":"Number of devices currently in this event state.\n","type":"number"},"DETENTION_STARTED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["detention"],"type":"string"}},"required":["eventSource","DETENTION_STARTED","DETENTION_ENDED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"detention"},{"allOf":[{"properties":{"UNUTILIZED":{"description":"Number of devices currently in this event state.\n","type":"number"},"UTILIZED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["utilization"],"type":"string"}},"required":["eventSource","UTILIZED","UNUTILIZED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"utilization"},{"allOf":[{"properties":{"SHIPMENT_DELAYED":{"description":"Number of devices currently in this event state.\n","type":"number"},"SHIPMENT_EARLY":{"description":"Number of devices currently in this event state.\n","type":"number"},"SHIPMENT_ON_TIME":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["shipmentSchedule"],"type":"string"}},"required":["eventSource","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"shipmentSchedule"}]},"type":"array"}},"type":"object"}]}}},"description":"Successful\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 number of devices and shipments in each event state","tags":["Events"]},"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"}},{"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"}}]},"/events/v3/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":["Events"]}},"/events/v3/{trackingId}":{"get":{"description":"Gets all events for a device or a shipment. \nA device is identified by the `trackingId`.\nFor shipments, `shipmentId` can be used as a `trackingId`.\n\nThe results are listed in descending order based on the timestamp.\n\nAn event is uniquely identified by `trackingId`-`ruleId`-`timestamp` key, \nwith an exception of dwelling and stock rule events. \nDwelling events also need `geofenceId` to be specified, \nwhereas for stock events `trackingId` is not applicable.\n\nA single event can be fetched using `ruleId`, `before` and `after` query parameters.\n\nA time range can be defined with `before` and `after` timestamps. The response will contain\nan array of events that were recorded within the range.\n\nIf the request is supplied with `eventSource` query parameter, the response will contain\nevents generated by the defined source only.\n\nIf the request is supplied with `eventType` query parameter, the response will contain\nevents of the specified type only.\n\nIf the request is supplied with `ruleId` query parameter, the response will only contain events\nfor the specified rule ID.\n\nIf the request is supplied with `initialState` query parameter, the response will contain\nevents having the specified initial state.\n\nAll the aforementioned query parameters can be combined together.\n","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":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\nThe accepted range is from 1 to the current time.\n","in":"query","name":"before","required":false,"schema":{"minimum":1,"type":"number"}},{"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":"eventSource","required":false,"schema":{"oneOf":[{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},{"items":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"type":"array"}]}},{"in":"query","name":"eventType","required":false,"schema":{"oneOf":[{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},{"items":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"type":"array"}]}},{"in":"query","name":"ruleId","required":false,"schema":{"oneOf":[{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},{"items":{"description":"ID of the rule or geofence. Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"type":"array"}]}},{"in":"query","name":"initialState","required":false,"schema":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"}},{"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":1000,"maximum":1000,"minimum":1,"type":"integer"}},{"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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":1,"data":[{"eventSource":"attach","eventType":"TRUE_TO_FALSE","initalState":false,"ruleId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","timestamp":1499258057036,"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"}],"pageToken":"2lkjfdaoiekllldko=sdflkjdfasdi34"},"schema":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{"oneOf":[{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["attach","tamper","online"],"type":"string"},"eventType":{"enum":["FALSE_TO_TRUE","TRUE_TO_FALSE"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by online rule or by sensors that report boolean data (attach, tamper).\n","title":"Boolean event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["battery","humidity","pressure","temperature"],"type":"string"},"eventType":{"enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by sensor that report numerical data (battery, humidity,\npressure and temperature).\n","title":"Range event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: acceleration rule\n","enum":["acceleration"],"type":"string"},"eventType":{"enum":["EVENT"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by sensor that report numerical data but only when a specific\nevent occurs (eg. the device was dropped)\n","title":"Generic event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: geofence rule\n","enum":["geofence"],"type":"string"},"eventType":{"enum":["INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated by device crossing the geofence border.\n","title":"Geofence event"},{"allOf":[{"properties":{"eventSource":{"description":"The event source: stock rule\n","enum":["stock"],"type":"string"},"eventType":{"description":"The \"OVERSTOCK\" type - Events are triggered when the number of assets\nis over a maximum stock volume.\n\nThe \"UNDERSTOCK\" type - Events are triggered when the number of assets\nis under a minimum stock volume.\n\nThe \"NORMAL_VOLUME\" type - Events are triggered when the number of assets\nis between the minimum stock volume and the maximum stock volume.\n","enum":["OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK"],"type":"string"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["timestamp","ruleId","eventSource","eventType"]},{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"}},"required":["initialState"],"type":"object"}],"description":"Events generated by the number of assets inside a geofence over a maximum stock volume,\nor between a minimum stock volume and a maximum stock volume, or under a minimum stock volume.\n","title":"Stock event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: dwelling rule\n","enum":["dwelling"],"type":"string"},"eventType":{"enum":["DWELLING_STARTED","DWELLING_ENDED"],"type":"string"},"geofenceId":{"description":"An ID of a geofence that triggered the dwelling event\n","format":"uuid","type":"string"}},"required":["eventSource","eventType","geofenceId"]}],"description":"Events generated by a device that has dwelled inside a geofence for longer than specified\nthreshold duration\n","title":"Dwelling event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: detention rule\n","enum":["detention"],"type":"string"},"eventType":{"enum":["DETENTION_STARTED","DETENTION_ENDED"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"Events generated when a device has been stationary for longer than the specified\nthreshold duration.\n","title":"Detention event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"description":"The event source: utilization rule\n","enum":["utilization"],"type":"string"},"eventType":{"enum":["UTILIZED","UNUTILIZED"],"type":"string"}},"required":["eventSource","eventType"]}],"description":"The UTILIZED event is generated when a device starts moving,\nand the UNUTILIZED event is generated when the device has been stationary\nfor longer than the specified threshold duration.\n","title":"Utilization event"},{"allOf":[{"properties":{"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId","initialState"]},{"properties":{"eventSource":{"enum":["shipmentSchedule"],"type":"string"},"eventType":{"enum":["SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"segmentId":{"description":"An ID of the segment where the schedule deviation was detected\n","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentStatus":{"description":"Status of the segment.","enum":["pending","ongoing","completed","cancelled"],"type":"string"}},"required":["eventSource","eventType","segmentId","segmentStatus"],"type":"object"}],"description":"Events generated by a shipment that is ahead or delayed from its preplanned schedule\n","title":"Shipment schedule event"}]},"type":"array"}},"type":"object"}]}}},"description":"Successful\n\nThe events 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 event history for a device or a shipment","tags":["Events"]},"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"}}]},"/geofence-associations/v2/health":{"get":{"deprecated":true,"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":["Geofence Associations"]}},"/geofence-associations/v2/version":{"get":{"deprecated":true,"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":["Geofence Associations"]}},"/geofence-associations/v2/{geofenceId}/devices":{"get":{"deprecated":true,"description":"Returns all devices associated with the geofence `geofenceId`.\n","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":"Geofence ID","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"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"}}],"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":{"description":"Response body contains a single device object.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of device objects, `count` indicates the number of returned devices,\nand `pageToken` is the next page token if available. \nIf no devices are found, an object with an empty data array is returned.\n","type":"object"}}},"description":"Successful"},"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 devices associated with a geofence","tags":["Geofence Associations"]}},"/geofence-associations/v2/{geofenceId}/{trackingId}":{"delete":{"deprecated":true,"description":"Deletes an association between the geofence `geofenceId` and the device `trackingId`.\n","responses":{"204":{"description":"Successful (no content)\n\nThe association was successfully removed.\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":"Disassociates a device and a geofence","tags":["Geofence Associations"]},"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":"Geofence ID","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"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`.","maxLength":50,"minLength":1,"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":{"deprecated":true,"description":"Associates the device with `trackingId` to the geofence with `geofenceId`. \nWhenever the device enters or exits the associated geofence, an event is generated.\n","responses":{"200":{"description":"Successful\n\nDevice was already associated with the geofence\n"},"201":{"description":"Successful\n\nThe device was successfully associated with the geofence\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":"Associates a device with a geofence","tags":["Geofence Associations"]}},"/geofences/v2":{"delete":{"description":"Deletes all geofences of a project.\n\nIf a geofence is associated with a stock rule, the rule will also be deleted.\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 geofence definitions 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"}},"security":[{"Bearer":[]}],"summary":"Deletes all geofences","tags":["Geofences"]},"get":{"description":"Gets all geofences of a project. \nResults can be filtered by using the query parameters.\nIndoor geofences with the `floor` properties\nmay be filtered by `floor[id]`, which specifies the ID of the venue associated with the geofence.\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":"The floor of the indoor geofence","example":{"id":"DM_1234"},"explode":true,"in":"query","name":"floor","schema":{"anyOf":[{"properties":{"id":{"description":"ID of the venue, which is associated with the geofence","maxLength":100,"minLength":1,"type":"string"}},"title":"Floor ID","type":"object"},{"description":"Null option can be used to query for geofences without a floor property","enum":["null"],"title":"No `floor` property","type":"string"}]},"style":"deepObject"},{"description":"Type of a geofence","in":"query","name":"type","required":false,"schema":{"items":{"enum":["circle","polygon","poi"],"type":"string"},"type":"array"}},{"description":"Limit search to geofences intersecting the given bounding box.","in":"query","name":"bbox","schema":{"items":{"description":"Latitude and longitude of Northwest and Southeast corners.","maximum":180,"minimum":-180,"type":"number"},"maxItems":4,"minItems":4,"type":"array"},"style":"form"},{"description":"Field names to filter a result object.\n","explode":false,"in":"query","name":"fields","required":false,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"geofence":{"definition":{"points":[{"lat":52.5308398,"lng":13.38490035},{"lat":52.5408398,"lng":14.38490035},{"lat":53.5308398,"lng":13.39490035}]},"type":"polygon"},"id":"d0c29690-5d26-4cf1-a37e-b7816e72cb99"},{"geofence":{"definition":{"center":{"lat":52.5308398,"lng":13.38490035},"floor":{"id":"DM_82228","name":"House 3"},"radius":100},"description":"This is a circular geofence","name":"16fbc82c-88d1-4219-bfad-6e5de52688a2","type":"circle"},"id":"ff92eda0-3114-4640-b7e6-4ba641ae1124"}],"pageToken":"027ffffea253d79fc"},"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":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"trainingStatus":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"trained":{"description":"True if the POI geofence is trained","type":"boolean"}},"required":["trained"],"type":"object"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type","trainingStatus"],"title":"POI","type":"object"}]},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","geofence"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of geofence objects. `count` indicates the number of returned geofences, and `pageToken` indicates the next available page in the matching result set. If no geofences are found, an object with empty data array is returned.","type":"object"}},"application/octet-stream":{"example":"34 56 18 93 45 29 54 62 77 28 23 79 22","schema":{"description":"Response body contains an array of geofence objects, `count` specifies the number of returned geofences,\nand `pageToken` indicates the next available page in the matching result set.\n\nIf no geofences are found, an object with empty data array is returned.\n","example":{"response data as Protobuf binary, format as follows":"message GeofenceMsg {\n  message GeofenceCircular {\n    //Latitude value\n    float lat = 1;\n    //Longitude value\n    float lng = 2;\n    //Center radius value\n    uint32 radius = 3;\n    //Geofence ID\n    string id = 4;\n  }\n  message GeofencePolygonal {\n    //Latitude value array\n    repeated float lat = 1;\n    //Longitude value array\n    repeated float lng = 2;\n    //Geofence ID\n    string id = 3;\n  }\n  //Circular geofence array\n  repeated GeofenceCircular circulars = 1;\n  //Polygonal geofence array\n  repeated GeofencePolygonal polygonals = 2;\n  //Page token\n  string pageToken = 3;\n}\n"},"items":{},"type":"array"}}},"description":"Response body contains an array of geofence objects, `count` specifies the number of returned geofences,\nand `pageToken` indicates the next available page in the matching result set.\n\nIf no geofences are found, an object with empty data array is returned.\nResponse content type can be either JSON or protobuf depending on the 'Content-Type' request header.\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 geofences","tags":["Geofences"]},"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"}},{"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"}}],"post":{"description":"One can specify a geofence as a circle, as a polygon or as POI (Point of Interest). One can also\nassign a name and a description to each geofence to help identify them.\n\nCircle\n---\n\nSpecify coordinates of the center point of the circle and a radius in\nmeters.\n\n```json\n    {\n      \"name\": \"Home\",\n      \"type\": \"circle\",\n      \"definition\": {\n        \"center\": {\n          \"lat\": 52.5308398,\n          \"lng\": 13.38490035\n        },\n        \"radius\": 100\n      },\n      \"description\": \"Small area around my house.\"\n    }\n```\n\nPolygon\n---\n\nSpecify an array of points. A minimum of three points is required.\n\n*NOTE: If the array of points does not describe a closed polygon, the polygon is\nautomatically closed between the last and first points.*\n\n```json\n    {\n      \"name\": \"Work\",\n      \"type\": \"polygon\",\n      \"definition\": {\n        \"points\": [{\n          \"lat\": 52.5308398,\n          \"lng\": 13.38490035\n        }, {\n          \"lat\": 52.530443,\n          \"lng\": 13.38482003\n        }, {\n          \"lat\": 52.5308298,\n          \"lng\": 13.38492235\n        }]\n      },\n      \"description\": \"The area around work.\"\n    }\n```\n\nIndoor geofence\n---\n\nCircular and polygonal geofences can be both outdoors and indoors.\nTo create a `circular` `indoor` geofence, add the `floor` property to the request body.\n\n```json\n    {\n      \"name\": \"Office indoor\",\n      \"type\": \"circle\",\n      \"definition\": {\n        \"center\": {\n          \"lat\": 52.5308398,\n          \"lng\": 13.38490035\n        },\n        \"radius\": 20,\n        \"floor\": {\n          \"level\": 2,\n          \"id\": \"DM_1234\",\n          \"name\": \"Office floor 2\"\n        }\n      },\n      \"description\": \"Floor 2 of the office.\"\n    }\n\n```\n\nPOI geofence\n---\n\nSpecify location details of a POI geofence for its initial creation.\n\nAfter the POI geofence has been created, it will need to be trained.\nThe POI geofence boundary is defined using radio measurements.\nThe POI geofence is trained using a telemetry \nthat a device has ingested while being at this desired point of interest.\n\nFor a trained POI geofence, an associated device is considered to be inside the \ngeofence when the radio measurements of the device-ingested telemetry and \nthe training data match.\n\n```json\n    {\n      \"name\": \"POI room in the office\",\n      \"type\": \"poi\",\n      \"definition\": {\n        \"location\": {\n          \"room\": ROOM_201,\n          \"address\": Invalidenstrasse 116,\n          \"country\": Germany,\n          \"position\": {\n            \"lat\": 52.5308398,\n            \"lng\": 13.38490035\n          }\n        },\n        \"floor\": {\n          \"level\": 2,\n          \"id\": \"DM_1234\",\n          \"name\": \"Office floor 2\"\n        }\n      },\n      \"description\": \"A room where goods should be delivered.\"\n    }\n```\n\nSuccessful requests have the HTTP status 201 and the response body provides\nthe ID of the created geofence.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type"],"title":"POI","type":"object"}]}}}},"responses":{"201":{"content":{"application/json":{"example":{"id":"0d994f31-ceea-42e4-96a5-4484585c3802"},"schema":{"properties":{"id":{"description":"Geofence ID","format":"uuid","type":"string"},"message":{"type":"string"}},"required":["id"],"type":"object"}}},"description":"Created\n\nThe geofence was successfully created.\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":"Creates a geofence","tags":["Geofences"]}},"/geofences/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":["Geofences"]}},"/geofences/v2/trainingTest":{"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"}}],"post":{"description":"Checks if a POI geofence training is possible with the given request parameters.\n\nThe request body contains a training data sample in form of either a device tracking ID \nalong with a specific time range for the ingested device telemetry or a WLAN scan.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"properties":{"after":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe value must be within the past 24 hours from the current timestamp\n","type":"integer"},"before":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe value must not be greater than current timestamp\n","type":"integer"},"id":{"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["id","after","before"],"type":"object"},{"additionalProperties":false,"properties":{"wlan":{"description":"WLAN access points","items":{"additionalProperties":false,"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac","powrx"],"type":"object"},"maxItems":128,"minItems":2,"type":"array"}},"required":["wlan"],"type":"object"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"reason":{"type":"string"},"success":{"type":"boolean"}},"required":["success"],"type":"object"}}},"description":"Returns an object indicating if the training is possible with the given parameters\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"},"422":{"content":{"application/json":{"example":{"code":422,"details":{"hereErrorCode":422306},"error":"Unprocessable Entity","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request was well-formed but was unable to be followed due to semantic errors."},"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":"Unprocessable Entity\n\nThe request was well-formed but was unable to be followed due to semantic errors.\n"}},"security":[{"Bearer":[]}],"summary":"Checks if a POI geofence training is possible with the given parameters","tags":["Geofences"]}},"/geofences/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":["Geofences"]}},"/geofences/v2/{geofenceId}":{"delete":{"description":"Deletes a single geofence identified by the `geofenceId`.\n","responses":{"204":{"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,"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"The Geofence ID 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":"Geofence ID not found"},"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":"Deletes a geofence","tags":["Geofences"]},"get":{"description":"Gets details of a single geofence identified by the `geofenceId`.\n","parameters":[{"description":"Field names to filter a result object.\n","explode":false,"in":"query","name":"fields","required":false,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"example":{"geofence":{"definition":{"floor":{"id":"DM_82228","level":2,"name":"House 3"},"points":[{"lat":52.5308398,"lng":13.38490035},{"lat":52.5408398,"lng":14.38490035},{"lat":53.5308398,"lng":13.39490035}]},"type":"polygon"},"id":"d0c29690-5d26-4cf1-a37e-b7816e72cb99"},"schema":{"description":"Response body contains a single geofence object","properties":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"trainingStatus":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"trained":{"description":"True if the POI geofence is trained","type":"boolean"}},"required":["trained"],"type":"object"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type","trainingStatus"],"title":"POI","type":"object"}]},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","geofence"],"type":"object"}},"application/octet-stream":{"example":"34 56 18 93 45 29 54 62 77 28 23 79 22","schema":{"description":"Response body contains a single geofence object.\n","example":{"response data as Protobuf binary, format as follows":"message GeofenceMsg {\n  message GeofenceCircular {\n    //Latitude value\n    float lat = 1;\n    //Longitude value\n    float lng = 2;\n    //Center radius value\n    uint32 radius = 3;\n    //Geofence ID\n    string id = 4;\n  }\n  message GeofencePolygonal {\n    //Latitude value array\n    repeated float lat = 1;\n    //Longitude value array\n    repeated float lng = 2;\n    //Geofence ID\n    string id = 3;\n  }\n  //Circular geofence array\n  repeated GeofenceCircular circulars = 1;\n  //Polygonal geofence array\n  repeated GeofencePolygonal polygonals = 2;\n  //Page token\n  string pageToken = 3;\n}\n"},"items":{},"type":"array"}}},"description":"Response body contains a single geofence object.\nResponse content type can be either JSON or protobuf depending on the 'Content-Type' request header.\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,"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"The Geofence ID 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":"Geofence ID not found"}},"security":[{"Bearer":[]}],"summary":"Gets a single geofence","tags":["Geofences"]},"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":"ID of the geofence","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","type":"string"}}],"put":{"description":"Updates the geofence `type`, `name`, `description` or `definition` property. \nThe old geofence will be replaced by the new one, and hence the full set of the \ngeofence properties must be provided in the request body. \n`POI` geofence type cannot be changed to `circle` or `polygon` and vice versa.\n\nIf the update was successful, the response will contain the updated geofence details.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type"],"title":"POI","type":"object"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Response body contains a single geofence object","properties":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type"],"title":"POI","type":"object"}]},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","geofence"],"type":"object"}},"application/octet-stream":{"schema":{"description":"Response body contains a single geofence object.\n","example":{"response data as Protobuf binary, format as follows":"message GeofenceMsg {\n  message GeofenceCircular {\n    //Latitude value\n    float lat = 1;\n    //Longitude value\n    float lng = 2;\n    //Center radius value\n    uint32 radius = 3;\n    //Geofence ID\n    string id = 4;\n  }\n  message GeofencePolygonal {\n    //Latitude value array\n    repeated float lat = 1;\n    //Longitude value array\n    repeated float lng = 2;\n    //Geofence ID\n    string id = 3;\n  }\n  //Circular geofence array\n  repeated GeofenceCircular circulars = 1;\n  //Polygonal geofence array\n  repeated GeofencePolygonal polygonals = 2;\n  //Page token\n  string pageToken = 3;\n}\n"},"items":{},"type":"array"}}},"description":"Successful\n\nThe geofence definition was updated.\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,"error":"Not Found","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"The Geofence ID 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":"Geofence ID not found"}},"security":[{"Bearer":[]}],"summary":"Updates a single geofence","tags":["Geofences"]}},"/geofences/v2/{geofenceId}/poiTraining":{"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":"ID of the geofence","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","type":"string"}}],"post":{"description":"Trains the POI geofence `geofenceId` using a device telemetry.\nThe POI geofence boundary is defined using radio measurements.\nThe geofence is trained using a telemetry that the device with `trackingId` has ingested \nduring the specified time range, while being at this point of interest.\nOnly telemetries that have been ingested during the last 24 hours can be used in the training.\n\nOptionally, a WLAN scan be used for the training.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"properties":{"after":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe value must be within the past 24 hours from the current timestamp\n","type":"integer"},"before":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe value must not be greater than current timestamp\n","type":"integer"},"id":{"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["id","after","before"],"type":"object"},{"additionalProperties":false,"properties":{"wlan":{"description":"WLAN access points","items":{"additionalProperties":false,"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac","powrx"],"type":"object"},"maxItems":128,"minItems":2,"type":"array"}},"required":["wlan"],"type":"object"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"trainingStatus":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"trained":{"description":"True if the POI geofence is trained","type":"boolean"}},"required":["trained"],"type":"object"}},"required":["trainingStatus"],"type":"object"}}},"description":"The POI geofence was trained successfully\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"},"422":{"content":{"application/json":{"example":{"code":422,"details":{"hereErrorCode":422306},"error":"Unprocessable Entity","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request was well-formed but was unable to be followed due to semantic errors."},"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":"Unprocessable Entity\n\nThe request was well-formed but was unable to be followed due to semantic errors.\n"}},"security":[{"Bearer":[]}],"summary":"Trains a POI geofence","tags":["Geofences"]}},"/labels/v4/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":["Labels"]}},"/labels/v4/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":["Labels"]}},"/labels/v4/{resourceType}":{"get":{"description":"Gets all labels of the resource type `resourceType` within a project.\n\nThe `fields` parameter specifies which fields should be added to the response body \n(for example, `resourceId`).\n\nThe `labels` query parameter is specified as a label filter, and only the matching\nresults will be returned:\n\n\"?labels[priority]=high&labels[group]=group1&fields=resourceId,labels\"\n\"?labels[group]=*\"\n","parameters":[{"description":"A filter containing label key-value pairs.","example":{"group":"group1","priority":"high"},"explode":true,"in":"query","name":"labels","required":false,"schema":{"type":"object"},"style":"deepObject"},{"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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Field names to filter a result object.\n","explode":false,"in":"query","name":"fields","required":false,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"items":[{"labels":{"group":["group1"],"priority":["high"]},"resourceId":"HERE-c47c0d1d-89fd-4961-b341-3eb109f58d19","resourceType":"device"},{"labels":{"group":["group1","group2"],"priority":["high"]},"resourceId":"HERE-a89uo64n-fd45-0956-g452-4g6w908um5r4","resourceType":"device"}],"limit":100,"nextPageToken":"823aabbea253d56fa"},"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"properties":{"labels":{"description":"An object containing label key-value pairs.","type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},"required":["resourceId"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Response body contains an array of label objects, `count` indicates the number of returned labels,\nand `pageToken` is the next page token if available.\n\nIf no label is found, an object with empty data array is returned.\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 labels of a resource type","tags":["Labels"]},"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"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"}},{"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"}}]},"/labels/v4/{resourceType}/keys":{"get":{"description":"Gets all label keys of the resource type `resourceType`.\n","responses":{"200":{"content":{"application/json":{"example":{"keys":["priority","group","..."]},"schema":{"properties":{"keys":{"items":{"description":"The label keys","maxLength":50,"minLength":1,"type":"string"},"type":"array"}},"required":["keys"],"type":"object"}}},"description":"Successful\n\nThe label keys 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 label keys of a resource type","tags":["Labels"]},"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"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"}},{"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"}}]},"/labels/v4/{resourceType}/keys/{key}/values":{"get":{"description":"Gets all values of the label `key` for the resource type `resourceType`.\n","responses":{"200":{"content":{"application/json":{"example":{"values":["high","group1","..."]},"schema":{"properties":{"values":{"items":{"description":"The label values","maxLength":50,"minLength":1,"type":"string"},"type":"array"}},"required":["values"],"type":"object"}}},"description":"Successful\n\nThe label values for a specific label key and resource type 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 values of a label","tags":["Labels"]},"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},{"description":"The label key.","in":"path","name":"key","required":true,"schema":{"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"}},{"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"}}]},"/labels/v4/{resourceType}/{resourceId}":{"delete":{"description":"Deletes all labels of the resource `resourceId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes all labels of a resource","tags":["Labels"]},"get":{"description":"Gets all labels of the resource `resourceId`.\n","parameters":[{"description":"Field names to filter a result object.\n","explode":false,"in":"query","name":"fields","required":false,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"example":{"labels":{"group":["group1"],"priority":["high"]},"resourceId":"HERE-c47c0d1d-89fd-4961-b341-3eb109f58d19","resourceType":"device"},"schema":{"properties":{"labels":{"description":"An object containing label key-value pairs.","type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},"required":["resourceId"],"type":"object"}}},"description":"Successful\n\nThe labels of a specific resource 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 labels of a resource","tags":["Labels"]},"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.","in":"path","name":"resourceId","required":true,"schema":{"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"}}]},"/labels/v4/{resourceType}/{resourceId}/batch":{"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.","in":"path","name":"resourceId","required":true,"schema":{"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 labels for the resource `resourceId`.\n","requestBody":{"content":{"application/json":{"example":{"labels":{"group":["group1","group2"],"priority":["high"]}},"schema":{"properties":{"labels":{"description":"A map of key-value pairs where the key is the label key\nand the value is an array of label values.\n","type":"object"}},"required":["labels"],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"labels":{"description":"An object containing label key-value pairs.","type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},"required":["resourceId"],"type":"object"}}},"description":"Successful\n\nThe labels were successfully created.\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"},"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 a set of labels for a resource","tags":["Labels"]}},"/labels/v4/{resourceType}/{resourceId}/{key}":{"delete":{"description":"Deletes all the labels that have the key `key` of the resource `resourceId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes all labels of a resource by a label key","tags":["Labels"]},"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.","in":"path","name":"resourceId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"The label key.","in":"path","name":"key","required":true,"schema":{"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"}}]},"/labels/v4/{resourceType}/{resourceId}/{key}/{value}":{"delete":{"description":"Deletes the label `key`-`value` of the resource `resourceId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes a label of a resource","tags":["Labels"]},"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.","in":"path","name":"resourceId","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"The label key.","in":"path","name":"key","required":true,"schema":{"maxLength":50,"minLength":1,"type":"string"}},{"description":"The label value.","in":"path","name":"value","required":true,"schema":{"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 label for the resource `resourceId`.\n","responses":{"201":{"content":{"application/json":{"schema":{"properties":{"labels":{"description":"An object containing label key-value pairs.","type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},"required":["resourceId"],"type":"object"}}},"description":"Successful\n\nThe label was successfully created.\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"},"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 a label for a resource","tags":["Labels"]}},"/largedata/v4":{"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"}}],"post":{"description":"Creates a new multipart large data upload.  Response contains `dataId`, which is the created large data object identifier.\n","requestBody":{"content":{"application/json":{"schema":{"description":"Data upload creation request","example":{"description":"Description for my large data","name":"My large data"},"properties":{"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"description":"Response to data upload creation request","example":{"dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991"},"properties":{"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["dataId"],"type":"object"}}},"description":"Success\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":"Creates a new data upload","tags":["Largedata"]}},"/largedata/v4/devices/{trackingId}/metadata":{"get":{"description":"Gets metadata listing for all large data objects for a given device.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"description":"Metadata for a large data object","example":{"completedAt":"2025-08-15T13:52:57.420Z","createdAt":"2025-08-15T13:52:57.420Z","dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991","description":"Description for my large data","name":"My large data","numberOfParts":5,"size":10000,"status":"completed","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d"},"properties":{"completedAt":{"description":"Time when data upload was completed","format":"date-time","type":"string"},"createdAt":{"description":"Time when data upload was created","format":"date-time","type":"string"},"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"},"numberOfParts":{"description":"Number of parts","maxLength":10000,"minLength":1,"type":"integer"},"size":{"description":"Total size of the data in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data upload","enum":["preparing","pending","ongoing","completed","failed"],"type":"string"},"trackingId":{"description":"ID of the device that produced this data","maxLength":50,"minLength":1,"type":"string"}},"required":["dataId","trackingId","numberOfParts","status","createdAt"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Success\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 metadata listing for all large data for a device","tags":["Largedata"]},"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`.","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"}}]},"/largedata/v4/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":["Largedata"]}},"/largedata/v4/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":["Largedata"]}},"/largedata/v4/{dataId}":{"delete":{"description":"Deletes large data object.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes large data","tags":["Largedata"]},"parameters":[{"in":"path","name":"dataId","required":true,"schema":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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"}}],"post":{"description":"After all parts have been uploaded, this operation completes the upload.\n\nWhen the upload has been completed, it is no longer possible to upload\nnew parts to it but the uploaded data can be downloaded.\n\nThis request has an optional `abort` query\nparameter (the default value is `false`) for aborting the upload instead\nof successfully completing it. If the upload is aborted, all of its\nparts and data are removed from HERE Tracking.\n","parameters":[{"in":"query","name":"abort","schema":{"default":false,"description":"Flag telling if the data upload should be aborted","type":"boolean"}}],"responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Completes data upload","tags":["Largedata"]}},"/largedata/v4/{dataId}/data":{"get":{"description":"Downloads a part of large data.\n\nThe data to be downloaded is identified with `dataId`. \n`offset` query paremeter specifies the first byte of the data,\nand `count` indicates how many bytes of the data is to be downloaded\nstarting from and including the `offset`. The default value for `offset`\nis zero and the for `count` it is the total size of the data.\n\nThe size of one downloaded data part must be between 1 byte and 10 MB.\n","parameters":[{"in":"query","name":"offset","schema":{"description":"Byte offset to the data to be downloaded (inclusive, starts at zero)","minimum":0,"type":"integer"}},{"in":"query","name":"count","schema":{"description":"Number of bytes of the data to download","maximum":10485760,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Success\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 large data object","tags":["Largedata"]},"parameters":[{"in":"path","name":"dataId","required":true,"schema":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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"}}]},"/largedata/v4/{dataId}/metadata":{"get":{"description":"Gets metadata for a large data object.\n","responses":{"200":{"content":{"application/json":{"schema":{"description":"Metadata for a large data object","example":{"completedAt":"2025-08-15T13:52:57.420Z","createdAt":"2025-08-15T13:52:57.420Z","dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991","description":"Description for my large data","name":"My large data","numberOfParts":5,"size":10000,"status":"completed","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d"},"properties":{"completedAt":{"description":"Time when data upload was completed","format":"date-time","type":"string"},"createdAt":{"description":"Time when data upload was created","format":"date-time","type":"string"},"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"},"numberOfParts":{"description":"Number of parts","maxLength":10000,"minLength":1,"type":"integer"},"size":{"description":"Total size of the data in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data upload","enum":["preparing","pending","ongoing","completed","failed"],"type":"string"},"trackingId":{"description":"ID of the device that produced this data","maxLength":50,"minLength":1,"type":"string"}},"required":["dataId","trackingId","numberOfParts","status","createdAt"],"type":"object"}}},"description":"Success\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 metadata for a large data object","tags":["Largedata"]},"parameters":[{"in":"path","name":"dataId","required":true,"schema":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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"}}]},"/largedata/v4/{dataId}/parts":{"get":{"description":"Gets information about uploaded parts for a large data object.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"description":"Information about uploaded part","example":{"md5":"b026324c6904b2a9cb4b88d6d61c81d1","partNumber":1,"size":1,"status":"completed"},"properties":{"md5":{"description":"MD5 digest of the data (hexadecimal representation)","maxLength":32,"minLength":32,"type":"string"},"partNumber":{"description":"Part number for a large data object","maximum":10000,"minimum":1,"type":"integer"},"size":{"description":"Part size in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data part upload","enum":["pending","ongoing","completed","failed"],"type":"string"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Success\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 parts information listing for a large data object","tags":["Largedata"]},"parameters":[{"in":"path","name":"dataId","required":true,"schema":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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"}}]},"/largedata/v4/{dataId}/parts/{partNumber}":{"parameters":[{"in":"path","name":"dataId","required":true,"schema":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},{"in":"path","name":"partNumber","required":true,"schema":{"description":"Part number for a large data object","maximum":10000,"minimum":1,"type":"integer"}},{"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"}}],"put":{"description":"Uploads a part of large data. The part is identified with `dataId` and a part number.\n\nPart upload has the following limits:\n* The part numbers must start from 1, be no greater than 10000 and be consecutive.\n* The size of one uploaded data part must be between 1 byte and 1 MB.\n* Parts re-uploaded with the same `partNumber` are overridden.\n* Only `application/octet-stream` Content-Type is supported.\n\nParts can be uploaded in any order, the `partNumber` determines their\nposition in the total data.\n\nThe optional `md5` query parameter can be used to provide the MD5\ndigest for the uploaded data part. If it is specified and does not match\nto the received data, HERE Tracking returns HTTP status 400.\n\nIf the data upload is still in ***preparing*** state, HERE Tracking\nreturns HTTP status 409.\n","parameters":[{"in":"query","name":"md5","schema":{"description":"MD5 digest of the data (hexadecimal representation)","maxLength":32,"minLength":32,"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}}},"responses":{"204":{"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":"Uploads a part of a large data","tags":["Largedata"]}},"/locations/v4":{"delete":{"description":"Deletes all locations of the project.\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 locations 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"}},"security":[{"Bearer":[]}],"summary":"Deletes all locations","tags":["Locations"]},"get":{"description":"Gets all locations of the project.\n","parameters":[{"description":"The number of items to return per page","in":"query","name":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"A token from the previously returned response to retrieve the specified page.","in":"query","name":"pageToken","required":false,"schema":{"type":"string"}},{"description":"Filter the results by `geofenceId`","in":"query","name":"geofenceId","required":false,"schema":{"description":"Geofence ID","format":"uuid","type":"string"}},{"description":"Filter locations by name. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*office*","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter locations by street address. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*street*","in":"query","name":"street","required":false,"schema":{"type":"string"}},{"description":"Filter locations by city. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*city*","in":"query","name":"city","required":false,"schema":{"type":"string"}},{"description":"Filter locations by postal code. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*100*","in":"query","name":"postalCode","required":false,"schema":{"type":"string"}},{"description":"Filter locations by state. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"New*","in":"query","name":"state","required":false,"schema":{"type":"string"}},{"description":"Filter locations by country. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*land*","in":"query","name":"country","required":false,"schema":{"type":"string"}},{"description":"Filter locations by locationId wildcard.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"LOC-*","in":"query","name":"locationId","required":false,"schema":{"type":"string"}},{"description":"A paramater to specify field to sort by and order.\nThe following format can be used:\n'name:asc' sort by name in ascending order,\n'steet:desc' sort by street in descending order.\nAllowed fields to sort by:\nlocationId, name, street, city, postalCode, state, country.\n","example":"name:asc","in":"query","name":"sort","required":false,"schema":{"oneOf":[{"pattern":"^(locationId|name|street|city|postalCode|state|country):(asc|desc)$","type":"string"},{"items":{"pattern":"^(locationId|name|street|city|postalCode|state|country):(asc|desc)$","type":"string"},"type":"array"}]}},{"description":"Filter locations by external location id","in":"query","name":"externalLocationId","schema":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"description":"Location object body.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"locationId":"LOC-61a3fba0-cb44-405f-816c-c2aec73a1add","name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofenceId associated with the location. Has to match an existing geofenceId.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"required":["locationId"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total number of locations for query","type":"integer"}},"required":["limit","count","items"],"type":"object"}}},"description":"Response body contains an array of location objects, count indicating the number of\nreturned items, limit indicating the requested maximum amount of records to be returned\nand pageToken for the next page if available.\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 locations","tags":["Locations"]},"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"}},{"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"}}],"post":{"description":"Creates a new location.\nA location consists of latitude/longitude coordinate pair and/or geofenceId.\nA name, description, and address of the location may be provided.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"anyOf":[{"required":["location"]},{"required":["geofenceId"]}],"description":"Body for creating a location.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofence ID associated with the location. A geofence with the specified ID must exist.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["locationId"],"type":"object"}}},"description":"Created.\n\nThe location has been successfully created.\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":"Creates a location","tags":["Locations"]}},"/locations/v4/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":["Locations"]}},"/locations/v4/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":["Locations"]}},"/locations/v4/{locationId}":{"delete":{"description":"Deletes the location `locationId`.\n\n***NOTE***: A location can not be deleted if the location is referred by any shipment or\nshipment plan.\n","responses":{"204":{"description":"Successful (no content).\n\nThe location was 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 a location","tags":["Locations"]},"get":{"description":"Gets details of the location `locationId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Location object body.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"locationId":"LOC-61a3fba0-cb44-405f-816c-c2aec73a1add","name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofenceId associated with the location. Has to match an existing geofenceId.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"required":["locationId"],"type":"object"}}},"description":"Success.\n\nThe location information was returned\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 a location details","tags":["Locations"]},"parameters":[{"description":"Location ID","in":"path","name":"locationId","required":true,"schema":{"pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"put":{"description":"Updates the location `locationId` details. A location consists of latitude/longitude coordinate pair and/or geofenceId.\nA name, description, and address of the location may be provided.\nThe old location definition will be replaced, meaning that\nfull location body should be provided. After a successful update, the response provides\nthe updated location details.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"anyOf":[{"required":["location"]},{"required":["geofenceId"]}],"description":"Body for creating a location.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofence ID associated with the location. A geofence with the specified ID must exist.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Location object body.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"locationId":"LOC-61a3fba0-cb44-405f-816c-c2aec73a1add","name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofenceId associated with the location. Has to match an existing geofenceId.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"required":["locationId"],"type":"object"}}},"description":"Success.\n\nThe location information was updated\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":"Updates a location details","tags":["Locations"]}},"/metadata/v2/devices/batch":{"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":"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"}}],"post":{"description":"Gets a batch of metadata of multiple devices or shipments. The device or shipment IDs are specified in the request body.","requestBody":{"content":{"application/json":{"schema":{"example":["HERE-d0c29690-5d26-4cf1-a37e-b7816e72cb99","SHP-ff92eda0-3114-4640-b7e6-4ba641ae1124"],"items":{"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"},"type":"array"}}}},"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":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"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":["id","data"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}]}}},"description":"Successful\n\nThe metadata 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 a batch of metadata of multiple devices or shipments","tags":["Metadata"]}},"/metadata/v2/devices/{trackingId}":{"delete":{"description":"Deletes all the metadata of the device or a shipment identified by the `trackingId` or the `shipmentId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes all metadata of a device or a shipment","tags":["Metadata"]},"get":{"description":"Gets metadata of a device or a shipment identified by the `trackingId` or the `shipmentId`.","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"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":["id","data"],"type":"object"}}},"description":"Successful\n\nThe metadata 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 metadata of a device or a shipment","tags":["Metadata"]},"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":"Updates the metadata object of the device or a shipment identified by the `trackingId` or the `shipmentId`. \nThe metadata specified in the request body is merged with the existing metadata object \n(or gets created if no metadata object exists); \nnew keys are added, and the values of the existing keys are updated with the new data.\nAdding 'null' value for a key deletes it from the metadata object.\nSuccessful response body contains the updated metadata object.\n","requestBody":{"content":{"application/json":{"example":{"priority":"high"},"schema":{"type":"object"}}},"description":"Metadata object associated with the resource. Max size 1k.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"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":["id","data"],"type":"object"}}},"description":"Successful\n\nThe metadata was successfully updated.\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":"Creates or updates metadata of a device or a shipment","tags":["Metadata"]}},"/metadata/v2/geofences/batch":{"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":"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"}}],"post":{"description":"Gets a batch of metadata of multiple geofences. The geofences IDs are specified in the request body.","requestBody":{"content":{"application/json":{"schema":{"example":["d0c29690-5d26-4cf1-a37e-b7816e72cb99","ff92eda0-3114-4640-b7e6-4ba641ae1124"],"items":{"description":"Geofence ID","format":"uuid","type":"string"},"type":"array"}}}},"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":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}]}}},"description":"Successful\n\nThe metadata 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 a batch of metadata of multiple geofences","tags":["Metadata"]}},"/metadata/v2/geofences/{geofenceId}":{"delete":{"description":"Deletes all the metadata of the geofence identified by the `geofenceId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes all metadata of a geofence","tags":["Metadata"]},"get":{"description":"Gets metadata of the geofence identified by the `geofenceId`.","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"}}},"description":"Successful\n\nThe metadata 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 metadata of a geofence","tags":["Metadata"]},"parameters":[{"description":"Geofence ID","in":"path","name":"geofenceId","required":true,"schema":{"format":"uuid","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"}}],"put":{"description":"Updates the metadata object of the geofence identified by the `geofenceId`. \nThe metadata specified in the request body is merged with the existing metadata object \n(or gets created if no metadata object exists); \nnew keys are added, and the values of the existing keys are updated with the new data.\nAdding 'null' value for a key deletes it from the metadata object.\nSuccessful response body contains the updated metadata object.\n","requestBody":{"content":{"application/json":{"example":{"priority":"high"},"schema":{"type":"object"}}},"description":"Metadata object associated with the resource. Max size 1k.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"}}},"description":"Successful\n\nThe metadata was successfully updated.\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":"Creates or updates metadata of a geofence","tags":["Metadata"]}},"/metadata/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":["Metadata"]}},"/metadata/v2/sensorRules/batch":{"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":"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"}}],"post":{"description":"Gets a batch of metadata of multiple sensor rules. The sensor rules IDs are specified in the request body.","requestBody":{"content":{"application/json":{"schema":{"example":["d0c29690-5d26-4cf1-a37e-b7816e72cb99","ff92eda0-3114-4640-b7e6-4ba641ae1124"],"items":{"description":"Sensor rule ID","format":"uuid","type":"string"},"type":"array"}}}},"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":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Sensor rule ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}],"example":{"count":2,"data":[{"data":{"blob":"SEVSRSBUcmFja2luZw=="},"id":"3b10404d-4e9e-456b-b262-5e98dd39d9c3"},{"data":{"externalId":"EXT-1234"},"id":"3b10404d-4e9e-456b-b262-5e98dd39d9c3"}],"pageToken":"018ffffea253d64ba"}}}},"description":"Successful\n\nThe metadata 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 a batch of metadata for multiple sensor rules","tags":["Metadata"]}},"/metadata/v2/sensorRules/{sensorRuleId}":{"delete":{"description":"Delete all the metadata of the sensor rule identified by the `sensorRuleId`.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes all metadata of a sensor rule","tags":["Metadata"]},"get":{"description":"Gets metadata of the sensor rule identified by the `sensorRuleId`.","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Sensor rule ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"}}},"description":"Successful\n\nThe metadata 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 metadata of a sensor rule","tags":["Metadata"]},"parameters":[{"description":"Sensor rule ID","in":"path","name":"sensorRuleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","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"}}],"put":{"description":"Updates the metadata object of the sensor rule identified by the `sensorRuleId`. \nThe metadata specified in the request body is merged with the existing metadata object \n(or gets created if no metadata object exists); \nnew keys are added, and the values of the existing keys are updated with the new data.\nAdding 'null' value for a key deletes it from the metadata object.\nSuccessful response body contains the updated metadata object.\n","requestBody":{"content":{"application/json":{"example":{"priority":"high"},"schema":{"type":"object"}}},"description":"Metadata object associated with the resource. Max size 1k.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Sensor rule ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"}}},"description":"Successful\n\nThe metadata was successfully updated.\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":"Creates or updates metadata of a sensor rule","tags":["Metadata"]}},"/metadata/v2/users/{userId}":{"parameters":[{"description":"User Id.\n","in":"path","name":"userId","required":true,"schema":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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"}}]},"/metadata/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":["Metadata"]}},"/notifications/v3/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":["Notifications"]}},"/notifications/v3/registration/{channelId}":{"delete":{"description":"Unregisters from notifications and deletes the notification channel `channelId`.\n","responses":{"204":{"description":"Successful\n\nThe notification channel registration was 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","message":"The channel ID 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":"The channel ID not found"}},"security":[{"Bearer":[]}],"summary":"Unregisters from notifications","tags":["Notifications"]},"get":{"description":"Gets details of the notification channel `channelId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"registration":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]}},"type":"object"}}},"description":"Successful\n\nThe notification channel was updated.\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","message":"The channel ID 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":"The channel ID not found"}},"security":[{"Bearer":[]}],"summary":"Gets a single notification channel information","tags":["Notifications"]},"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":"The notification channel ID.\n","in":"path","name":"channelId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}}],"put":{"description":"Updates the `url`, `ruleId`, `eventSource`, `eventType` and `initialState` parameters of\nthe notification channel `channelId`. If a property is not provided in the request body,\nits value will be updated to null. When updating a webhook channel, the `url` parameter must be provided.\n\nAfter a successful update, the response provides the updated notification channel details.\n","requestBody":{"content":{"application/json":{"schema":{"properties":{"channelType":{"description":"The type of notification channel.","enum":["webhook","email","browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A webhook URL that will receive notifications POST requests.\n","type":"string"}},"required":["channelType"],"type":"object"}}},"description":"Request body contains a notification channel registration information","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"registration":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]}},"type":"object"}}},"description":"Successful\n\nThe notification channel registration was updated.\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","message":"The channel ID 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":"The channel ID not found"},"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":"Updates a notification channel","tags":["Notifications"]}},"/notifications/v3/registrations":{"delete":{"description":"Deletes all the notification channels. \nThis would result in unregistering from all the notifications.\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"}},{"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":{"204":{"description":"Successful (no content)\n\nAll notification registrations 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"}},"security":[{"Bearer":[]}],"summary":"Unregisters from all notifications","tags":["Notifications"]},"get":{"description":"Gets a list of all registered notification channels.\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"}},{"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":"Filter result by channelType.\n\nExample: `channelType[]=webhook`, `channelType[]=browserPull,email`\n","in":"query","name":"channelType","required":false,"schema":{"items":{"description":"The type of notification channel.","enum":["webhook","email","browserPull"],"type":"string"},"type":"array"}},{"description":"User ID. Can be used by the project admin to filter email and browser pull notification channels by subscriber.\n","in":"query","name":"userId","required":false,"schema":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},{"description":"Filters by `emailBounce` property. When set to `true`, returns the email channels which are not active anymore\ndue to email bounce. When set to `false`, returns all the channels which are active (and not only email channels).\n","in":"query","name":"emailBounce","required":false,"schema":{"type":"boolean"}}],"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":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]},"type":"array"}},"type":"object"}],"description":"Response body contains an array of notification registration objects, count indicating the number of registrations,\nand pageToken if available. If no registrations are found, an object with empty data array is returned.\n","example":{"count":3,"data":[{"channelId":"11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000","channelType":"webhook","url":"https://example.com/call/this/web/hook1"},{"channelId":"97870f23-36cb-440f-96ef-38992d0b4ctd","channelType":"webhook","eventSource":"battery","eventType":"BELOW_RANGE","initialState":"false","ruleId":"a3f652bc-a456-7f12-cd11-123ah761yt41","url":"https://example.com/call/this/web/hook2"},{"channelId":"b6b07cae-db4c-49c1-b353-93c8dfc09453","channelType":"email","emailBounce":"false","ruleId":"e0abbb7c-3bd7-4428-a576-7a9f347a82f3","userId":"HERE-f51801ff-61c9-45b7-8f04-ecc68b6a7959"}],"pageToken":"1490376144514"},"type":"object"}}},"description":"Success\n\nThe list of registered notification channels was returned\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 registered notification channels","tags":["Notifications"]},"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"}}],"post":{"description":"User can subscribe to notifications of all events triggered by device telemetry and rules and geofences.\n\nTo get notified about some specific events only, one can set up `ruleId`, `eventSource`, `eventType` \nand `initialState` filters for a notification channel.\n","parameters":[{"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":"User Id.\n","in":"query","name":"userId","required":false,"schema":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"channelType":{"description":"The type of notification channel.","enum":["webhook","email","browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A webhook URL that will receive notifications POST requests.\n","type":"string"}},"required":["channelType"],"type":"object"}}},"description":"Request body contains registration information","required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"registration":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]}},"type":"object"}}},"description":"Created\n\nThe notification channel for the specified user or device was\nsuccessfully created\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":"Registers for notifications","tags":["Notifications"]}},"/notifications/v3/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":["Notifications"]}},"/registry/v2/devices/{deviceOrExternalId}":{"delete":{"description":"Deactivates a provisioned device.\nThis operation will deactivate the device license (`deviceId` and `deviceSecret`).\nDeactivated devices cannot be claimed anymore.\n\nNOTE: The device must be unclaimed before it can be deactivated.\n","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deactivates a device.","tags":["Registry"]},"get":{"description":"Gets the `trackingId` for a claimed device by its `deviceId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"}}},"description":"Successful"},"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 trackingId for a device","tags":["Registry"]},"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":"Device ID of a provisioned physical device or for virtual devices an application specific external ID provided together with `appId` query parameter.","in":"path","name":"deviceOrExternalId","required":true,"schema":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"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":"Claims a device, associating a device to a user account.\nThe user who claimed a device is the device owner,\nwhich is different from the device vendor.\n\nUnclaimed devices cannot login or send any data to HERE Tracking.\nA claimed device data is stored in HERE Tracking and is available to the\ndevice owner's project, which the device has been claimed to.\n\nWhen a device is claimed, it gets assigned a `trackingId`.\nThis is a unique ID associated with the device data in HERE Tracking.\n\n`trackingId` is different from the `deviceId`.\nThe `deviceId` is permanently associated with the hardware, while the `trackingId`\nis associated with the device data.\nIf the device is later sold or transferred, the `deviceId` remains the same but the\n`trackingId` changes in case the device is reclaimed.\nThis way the new owner cannot access the old data.\n\nIf the user is a member of multiple projects, the target project ID needs to be\nspecified in the `projectId` query parameter (note that this is different from the `appId`).\n\nOnly users with a valid HERE Tracking license are authorized to claim\nnew devices. Claimed devices are associated with the owner\napplication ID, and the total device count is kept up-to-date for billing purposes.\n","parameters":[{"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"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"ownerAppId":{"description":"(Deprecated) Application identifier which specifies device owner's application to which the device is associated with.","minLength":8,"type":"string"}},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"}}},"description":"Already claimed by the same user"},"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"}}},"description":"Successfully claimed"},"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":"Claims a device","tags":["Registry"]}},"/registry/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":["Registry"]}},"/registry/v2/licenses":{"get":{"description":"Gets a list of projects the user is a member of, along with the license information details for each project.\n","parameters":[{"in":"query","name":"startIndex","required":false,"schema":{"default":0,"description":"Start of returned block from a list. Default 0.","minimum":0,"type":"integer"}},{"in":"query","name":"endIndex","required":false,"schema":{"default":100,"description":"End of returned block from a list. Default 100.","minimum":0,"type":"integer"}},{"in":"query","name":"projectIds","required":false,"schema":{"oneOf":[{"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":"Project id list","items":{"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"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":true}]}},{"in":"query","name":"projectTypes","required":false,"schema":{"oneOf":[{"description":"Project type","enum":["indoor","tracking","trackingAzure","lastmile"],"type":"string"},{"description":"Project types array","items":{"description":"Project type","enum":["indoor","tracking","trackingAzure","lastmile"],"type":"string"},"maxItems":4,"minItems":1,"type":"array","uniqueItems":true}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"end":{"default":100,"description":"End of returned block from a list. Default 100.","minimum":0,"type":"integer"},"licenses":{"description":"Developer plan licenses for HERE Tracking","items":{"properties":{"appId":{"description":"A project application id.","minLength":8,"type":"string"},"expired":{"description":"True if a license has expired.","type":"boolean"},"expiryDate":{"description":"A license expiration date.","type":"string"},"features":{"description":"Features supported by the license plan.","items":{"type":"string"},"type":"array"},"projectDescription":{"description":"Project description","maxLength":250,"minLength":1,"type":"string"},"projectHrn":{"description":"Project HRN","pattern":"^hrn:here.*$","type":"string"},"projectId":{"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"},"projectName":{"description":"Project name","maxLength":50,"minLength":1,"type":"string"},"quota":{"properties":{"provisioning":{"description":"The number of devices that can still be provisioned.","type":"number"}},"type":"object"},"realm":{"description":"Platform application realm.","type":"string"},"type":{"description":"A license type.","enum":["evaluation","commercial","platformApp","platform"],"type":"string"}},"type":"object"},"type":"array"},"start":{"default":0,"description":"Start of returned block from a list. Default 0.","minimum":0,"type":"integer"},"total":{"default":0,"description":"Total number of elements that can be received with current query.","minimum":0,"type":"integer"}},"required":["licenses","start","end","total"],"type":"object"}}},"description":"Successful"},"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 a list user projects along with the license information","tags":["Registry"]},"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"}}]},"/registry/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":["Registry"]}},"/registry/v2/{appId}/devices":{"get":{"description":"Lists all the devices provisioned by a user project identified by the `appId`.\n","parameters":[{"description":"Project appId of the user's project","in":"path","name":"appId","required":true,"schema":{"minLength":8,"type":"string"}},{"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":"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"}}],"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":{"additionalProperties":false,"properties":{"appId":{"description":"Virtual device application ID, only present when the device is virtual","type":"string"},"deviceId":{"description":"The provisioned device ID","type":"string"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","type":"string"},"timestamp":{"description":"Provisioning time in milliseconds elapsed since 1 January 1970 00:00:00 UTC.","type":"integer"}},"required":["deviceId","timestamp"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}],"example":{"count":2,"data":[{"deviceId":"d34d8c7f-6bd5-496a-adef-7bf2395aa456","timestamp":1548143359339},{"appId":"jJHUjhytyGJHJFtftgHG","deviceId":"VRDE-40e87f34-59b9-4bd9-827f-f8ff5a8210e8","externalId":"my-device-1","timestamp":1548143359340}],"pageToken":"027ffffea253d79fc"}}}},"description":"Success\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":"Lists all the devices provisioned by a user","tags":["Registry"]},"post":{"description":"Starts a batch job to create licenses for either physical devices or\nvirtual devices. Virtual devices are meant for cloud-to-cloud use case.\n\nA physical device license is a `deviceId` and `deviceSecret` credential pair. The batch\njob creates a number of physical device licenses specified by the `count`\nparameter in the request body.\nThe response contains an array of `deviceId` and `deviceSecret` pairs.\n\nVirtual devices are identified with an external device ID and the requestor's\nproject `appId`. The virtual device external ID is application-specific\nand the user is free to allocate it as user finds suitable.\nThe external IDs for the virtual devices to be created are specified\nin the `devices` array in request body. For virtual devices\nthe response contains only an array of `deviceId`s, but no `deviceSecret`s.\n\nThe `autoclaim` parameter can only be used when creating virtual devices.\nIf `autoclaim`=`true`, the created virtual devices are immediately claimed\nby the requesting user account. In this case the response contains also\ntracking IDs for the claimed devices.\n","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":"Project appId of the user's project","in":"path","name":"appId","required":true,"schema":{"minLength":8,"type":"string"}},{"description":"If set to `true`, the licenses are created and devices are immediately claimed by the same user. Supported only with `deviceId` array in body, and not with the `count` parameter.","in":"query","name":"autoclaim","required":false,"schema":{"default":false,"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"example":{"count":10},"properties":{"count":{"description":"Number of device credentials requested","maximum":1000,"minimum":1,"type":"integer"}},"required":["count"],"type":"object"},{"example":{"devices":[{"id":"my-first-device"},{"id":"my-second-device"}]},"properties":{"devices":{"items":{"properties":{"id":{"description":"The external ID for the device","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":100,"minItems":1,"type":"array"}},"required":["devices"],"type":"object"}]}}}},"responses":{"202":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"jobId":"344a17a4-1b19-4420-bb6f-8400b87071fd"},"properties":{"jobId":{"description":"The batch job ID, needed for subsequent requests. Valid for 24 hours.","format":"uuid","type":"string"}},"required":["jobId"],"type":"object"}}},"description":"Accepted\n\nThe batch job started successfully. Use the `/registry/v2/{jobId}/status` endpoint to\ncheck the job progess. After the job completes, use the `/registry/v2/{jobId}/results`\nendpoint to get the device licenses.\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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"No app ID found."}},"security":[{"Bearer":[]}],"summary":"Creates licenses for multiple devices","tags":["Registry"]}},"/registry/v2/{appId}/licenseCount":{"get":{"description":"Gets a number of provisioned device licenses for a user project identified by the `appId`.\n","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":"Project appId of the user's project","in":"path","name":"appId","required":true,"schema":{"minLength":8,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"count":1337,"updatedAt":"2025-08-15T13:52:57.424Z"},"properties":{"count":{"description":"The number of created device licenses for given `appId`","minimum":0,"type":"number"},"updatedAt":{"description":"Timestamp of the last `count` update","type":"string"}},"required":["count","updatedAt"],"type":"object"}}},"description":"Successful"},"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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"No app ID found."}},"security":[{"Bearer":[]}],"summary":"Gets a number of device licenses provisioned by a user","tags":["Registry"]}},"/registry/v2/{appId}/one-device":{"post":{"description":"Device license is a `deviceId` and `deviceSecret` credential pair.\nThe created credentials will be returned in the response body.\n\nIf `autoclaim` query parameter is set to `true`, the created device will also be claimed by the same user account.\n","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":"Project appId of the user's project","in":"path","name":"appId","required":true,"schema":{"minLength":8,"type":"string"}},{"description":"If set to `true`, the device license is created and the device is immediately claimed by the same user.","in":"query","name":"autoclaim","required":false,"schema":{"default":false,"type":"boolean"}}],"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"A JSON object containing the newly created device credentials","example":{"deviceId":"4cdafa38-fdf9-474c-8eb3-72ea276a163a","deviceSecret":"AGIhZGmU1jJS-H1ZfAZuh5U9cswyqquWVrbOKGwKN9s","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"deviceId":{"description":"A newly created device ID.","type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["deviceId"],"type":"object"}}},"description":"Successful"},"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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"No app ID found."}},"security":[{"Bearer":[]}],"summary":"Creates a license for a single physical device","tags":["Registry"]}},"/registry/v2/{jobId}/results":{"get":{"description":"Gets results of a previously created multiple device license request batch job upon its successful completion.\n","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 asynchronous job ID. UUID v.4.0.","in":"path","name":"jobId","required":true,"schema":{"format":"uuid","type":"string"}},{"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"}}],"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":{"additionalProperties":false,"description":"A JSON object containing the newly created device credentials","example":{"deviceId":"4cdafa38-fdf9-474c-8eb3-72ea276a163a","deviceSecret":"AGIhZGmU1jJS-H1ZfAZuh5U9cswyqquWVrbOKGwKN9s","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"deviceId":{"description":"A newly created device ID. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"externalId":{"description":"Virtual device external ID, only present when provisioning virtual devices.","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["deviceId"],"type":"object"},"type":"array"},"errors":{"items":{"properties":{"error":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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"},"id":{"description":"ID for the device to which error occurred","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}],"example":{"count":3,"data":[{"deviceId":"d34d8c7f-6bd5-496a-adef-7bf2395aa456","deviceSecret":"qerjpsdujnewppqnqefvli"},{"deviceId":"c6a22c91-c185-474c-9970-5eea445d92ac","deviceSecret":"xvbnm,do0e,md;ffgdsle,d"}],"errors":[{"error":{"code":500,"error":"Internal Server Error","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee"},"id":"my-device"}],"pageToken":"027ffffea253d79fc"}}}},"description":"Successful.\nThe response body contains an array of newly created device licenses.\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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"No job ID found."}},"security":[{"Bearer":[]}],"summary":"Gets the multiple device license request job results","tags":["Registry"]}},"/registry/v2/{jobId}/status":{"get":{"description":"Checks the progress of a previously created multiple device license request batch job.\n","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 asynchronous job ID. UUID v.4.0.","in":"path","name":"jobId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"percent":10,"status":"started"},"properties":{"percent":{"description":"The percentage of the job that was completed at the time of the request.","maximum":100,"minimum":0,"type":"number"},"status":{"description":"The status of the batch job. When the job status is `complete`, use the `/registry/v2/{jobId}/results` endpoint to get the device licenses","enum":["started","complete"],"type":"string"}},"required":["status","percent"],"type":"object"}}},"description":"Successful"},"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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"No job ID found."}},"security":[{"Bearer":[]}],"summary":"Gets the multiple device license request job status","tags":["Registry"]}},"/registry/v2/{trackingId}":{"delete":{"description":"Unclaims a device removing the ownership association between the user and the device. The device data will no longer be accessible to the user. The device can then be reclaimed by a different or the same user.","responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Unclaims a device","tags":["Registry"]},"get":{"description":"Gets the `deviceId` of a claimed device by its `trackingId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"}},"type":"object"}}},"description":"Successful"},"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 deviceId","tags":["Registry"]},"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"}},{"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`.","maxLength":50,"minLength":1,"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"}}]},"/registry/v4/resources/{resourceType}/find":{"parameters":[{"description":"The resource type, for example \"device\", \"geofence\".","in":"path","name":"resourceType","required":true,"schema":{"enum":["device","geofence","location","rule","sensorRule","shipment"],"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":"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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"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"}}],"post":{"description":"Gets all resources of the resource type `resourceType`.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"filters":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"key":{"enum":["onlyShipments","onlyShipmentPlans"]}},"required":["key"],"type":"object"},{"additionalProperties":false,"properties":{"key":{"description":"aliasType|labelKey","minLength":1,"type":"string"},"storage":{"enum":["aliases","labels"]},"value":{"description":"value with wildcards","minLength":1,"type":"string"}},"required":["key","value","storage"],"type":"object"}]},"maxItems":10,"minItems":1,"type":"array"}},"required":["filters"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"count":3,"items":[{"resourceId":"SHP-ee73df84-0ab1-40fd-aac1-c39deb943de9"},{"resourceId":"SHP-ee73df84-0ab1-40fd-aac1-c39deb943df0"},{"resourceId":"SHP-ee73df84-0ab1-40fd-aac1-c39deb943df1"}],"limit":3,"nextPageToken":"skjfgWOF7162712JHAIW8FYBCASK!/EUQHSDkuhedf","total":10},"properties":{"count":{"description":"number of items returned in the response","type":"integer"},"items":{"description":"Array of matching resource ids","items":{"description":"matching resource id","properties":{"resourceId":{"type":"string"}},"required":["resourceId"],"type":"object"},"type":"array"},"limit":{"description":"number of items as specified in request","type":"integer"},"nextPageToken":{"description":"token to fetch the next page","type":"string"},"total":{"description":"total number of items at the moment when the first page was requested","type":"integer"}},"required":["limit","count","items","total"],"type":"object"}}},"description":"Successful.\nThe resources 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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets all resources of a resource type","tags":["Registry"]}},"/reports/v4":{"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"}},{"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"}}],"post":{"description":"Starts a report creation.\n\nThe request body contains a rule ID, and the report start and end time.\nThe report will be created based on the event data generated by the rule and devices associated to it.\n\nThe supported rule types are:\n* dwelling\n* detention\n* utilization\n\n> Note that both the report start and end timestamps must be earlier than the current time, \n> and no newly ingested data will be automatically added to the report after its creation.\n\nThe created report ID will be provided in the response.\n\nThe generated report is available for one week, after which it will expire \nand will need to be recreated.\nIf there is an already existing report matching the request parameters, its `reportId`\nwill be returned in the response and no new report will be generated.\n","requestBody":{"content":{"application/json":{"schema":{"properties":{"end":{"description":"End date of the report period. The end date should be greater than the start date.","format":"date-time","type":"string"},"ruleId":{"description":"Rule ID of a dwelling or detention rule.","format":"uuid","type":"string"},"start":{"description":"Start date and time of the report period. When getting reports per interval, this timestamp\ndefines the start of the interval day, week or month.\n\nFor example, to make the report week start on Monday midnight 1st March 2021 in timezone UTC+1:00,\nset the `start` parameter to be `2021-02-28T23:00:00.000Z` (GMT). Now when getting interval reports,\nthe first week would contain data between `2021-02-28T23:00:00.000Z` and `2021-03-07T23:00:00.000Z` (GMT).\n","format":"date-time","type":"string"}},"required":["ruleId","start","end"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"reportId":{"description":"Report ID","maxLength":50,"minLength":1,"pattern":"^REP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["reportId"],"type":"object"}}},"description":"OK\n\nThe report already exists or a new report creation has been started successfully.\nUse the `Gets reports` endpoint to check the report creation status and to query for actual reports.\n"},"202":{"content":{"application/json":{"schema":{"properties":{"reportId":{"description":"Report ID","maxLength":50,"minLength":1,"pattern":"^REP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["reportId"],"type":"object"}}},"description":"Accepted\n\nThe report creation job has been started successfully. \nUse the `Gets reports` endpoint to check the report creation status and to query for actual reports.\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":"Starts report creation","tags":["Reports"]}},"/reports/v4/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":["Reports"]}},"/reports/v4/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":["Reports"]}},"/reports/v4/{reportId}":{"get":{"description":"Gets the report creation status and makes queries to fetch the actual reports.\nEach report request can have a different set of query parameters.\n\n> Note that in the report context an asset is a device.\n\nExamples\n---\nTo get a report on assets dwelling times in the specified geofence during the report period, \ncreate a request specifying the following:\n* `reportId`: ID of a report created for a dwelling rule\n* `measure`: 'duration'\n* `groupBy`: 'asset'\n* `geofenceId`: geofence ID\n\nTo get a report on how many times assets were in detention on average during each week of \nthe report period, create a request specifying the following:\n* `reportId`: ID of a report created for a detention rule\n* `measure`: 'occurrence'\n* `method`: 'average'\n* `groupBy`: 'asset'\n* `interval`: 'week'\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Defines the report metric to be calculated. \nThe metrics are always calculated over a time period, either over each interval specified \nby the `interval` parameter (for example, over a week) or over the whole time period of the report.\n\n* `duration`: duration of the event\n  * _\"The asset dwelled for 45 hours during week 2. It was in detention for 4 hours.\"_\n* `occurrence`: total number of the event occurrences\n  * _\"During week 3, the asset was in detention 2 times. During the past month it had 7 individual dwelling periods.\"_\n* `day`: the number of days the event lasted\n  * _\"The asset was utilized for 3 days during week 4.\"_\n* `asset`: the number of assets that generated the event\n  * _\"On Monday 5 assets were in detention. On Tuesday 16 assets were in detention.\"_\n","in":"query","name":"measure","required":false,"schema":{"enum":["duration","occurrence","day","asset"],"type":"string"}},{"description":"Defines an interval, which can be a day, a week or a month, that will be used to group \nthe report results.\n\nWhen the `interval` parameter is provided, the response will be an array of `timestamp`-`value` \npairs where the `timestamp` defines the beginning of the interval and the `value` is the specified \nreport metric's value calculated over the interval time.\n","in":"query","name":"interval","required":false,"schema":{"enum":["day","week","month"],"type":"string"}},{"description":"Tracking ID.\nProvide a tracking ID to get a report on a specific asset.\n\n> Note that in the report context an asset is a device.\n\nFor example, to get a report on how many times the specified asset was in detention during each week,\ncreate a request specifying the following:\n* `reportId`: ID of a report created for a detention rule\n* `trackingId`: tracking ID\n* `measure`: 'occurrence'\n* `interval`: 'week'\n","in":"query","name":"trackingId","required":false,"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`.","maxLength":50,"minLength":1,"type":"string"}},{"description":"ID of the geofence.\n\nOne can provide a geofence ID in case one wants to get reports on a specific geofence.\nThis parameter can only be used with reports created for a dwelling rule type.\n\nFor example, to get a report on assets' average dwelling time in the specified geofence \nduring each week, create a request specifying the following:\n* `reportId`: ID of a report created for a dwelling rule\n* `measure`: 'duration'\n* `groupBy`: 'asset'\n* `interval`: 'week'\n* `method`: 'average'\n* `geofenceId`: geofence ID\n","in":"query","name":"geofenceId","required":false,"schema":{"description":"Geofence ID","format":"uuid","type":"string"}},{"description":"Defines whether the report metrics, such as cumulative or average, \nare calculated per asset or per geofence.\n\nThe parameter can have a value 'geofence' only with reports created for a dwelling rule.\n\nTo get a report on how many times on average assets were in detention during each time interval,\ncreate a request specifying the following:\n* `reportId`: ID of a report created for a detention rule\n* `groupBy`: 'asset'\n* `method`: 'average'\n* `measure`: 'occurrence'\n\nTo get a report on how long all assets dwelled inside each geofence during the report period,\ncreate a request specifying the following:\n* `reportId`: ID of a report created for a dwelling rule\n* `groupBy`: 'geofence'\n* `measure`: 'duration'\n\nTo get a report on how long each asset dwelled (inside any geofence) during the report period, \ncreate a request specifying the following:\n* `reportId`: ID of a report created for a dwelling rule\n* `groupBy`: 'asset'\n* `measure`: 'duration'\n","in":"query","name":"groupBy","required":false,"schema":{"enum":["asset","geofence"],"type":"string"}},{"description":"Defines the calculation method. \nThe parameter `method` can only be provided along with `interval`.\n\nThe parameter value can be `percentage` only when `measure` is 'asset'.\n\nFor example, to get a report on percentage of all assets that were in use during each week,\ncreate a request specifying the following:\n* `reportId`: ID of a report created for a utilization rule\n* `interval`: 'week'\n* `method`: 'percentage'\n* `measure`: 'asset'\n\nWhen `method` is set to 'cumulative' or 'average' and `measure` is set to 'duration' or 'occurrence',\nthe `groupBy` parameter needs to be provided also. \nFor example, to get a report on how long all assets dwelled in total in the specified geofence during\neach week, create a request specifying the following:\n* `reportId`: ID of a report created for a dwelling rule\n* `geofenceId`: ID of a geofence\n* `interval`: 'week'\n* `method`: 'cumulative'\n* `measure`: 'duration'\n* `groupBy`: 'asset'\n\nWhen `method` is set to 'cumulative' or 'average' and `measure` is set to 'day',\nthe `groupBy` parameter is automatically set to 'asset'. \nFor example, to get a report on how many days on average assets were in use during each month, \ncreate a request specifying the following:\n* `reportId`: ID of a report created for a utilization rule\n* `interval`: 'month'\n* `method`: 'average'\n* `measure`: 'day'\n* `groupBy`: 'asset'\n","in":"query","name":"method","required":false,"schema":{"enum":["average","cumulative","percentage"],"type":"string"}},{"description":"Defines how the items are sorted.\n* If `interval` is provided, the default is `sort`=`timestamp:asc`\n* If `interval` is not provided, the default is `sort`=`value:desc`\n","example":"timestamp:asc","in":"query","name":"sort","required":false,"schema":{"pattern":"^(timestamp|value|trackingId|geofenceId):(asc|desc)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":5,"items":[{"timestamp":"2025-08-15T13:52:57.427Z","value":13},{"timestamp":"2025-08-15T13:52:57.427Z","value":11},{"timestamp":"2025-08-15T13:52:57.427Z","value":17},{"timestamp":"2025-08-15T13:52:57.427Z","value":0},{"timestamp":"2025-08-15T13:52:57.427Z","value":30}],"limit":5,"nextPageToken":"024ggjjea253d79fc","status":"completed"},"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"oneOf":[{"properties":{"timestamp":{"description":"Timestamp of the beginning of the interval\n","format":"date-time","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["timestamp","value"],"title":"timestamp-value","type":"object"},{"properties":{"trackingId":{"description":"Tracking ID on which the `value` is calculated\n","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["trackingId","value"],"title":"trackingId-value","type":"object"},{"properties":{"geofenceId":{"description":"Geofence ID on which the `value` is calculated\n","format":"uuid","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["geofenceId","value"],"title":"geofenceId-value","type":"object"},{"properties":{"timestamp":{"description":"Timestamp of the beginning of the event\n","format":"date-time","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`.","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"Duration of the event in seconds","type":"number"}},"required":["trackingId","timestamp","value"],"title":"event periods","type":"object"}]},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"status":{"description":"Status of the report creation. \nWhen the status is `pending` or `started`, re-check the status later again. \nThe actual reports can be queried only when the report creation status is 'completed'.\n","enum":["pending","started","completed","failed"],"type":"string"}},"required":["status","limit","count","items"],"type":"object"}}},"description":"Response body.\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 reports","tags":["Reports"]},"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"}},{"in":"path","name":"reportId","required":true,"schema":{"description":"Report ID","maxLength":50,"minLength":1,"pattern":"^REP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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"}}]},"/rules/v4":{"delete":{"description":"Deletes all rules of the project.\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 rule definitions 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"}},"security":[{"Bearer":[]}],"summary":"Deletes all rules","tags":["Rules"]},"get":{"description":"Gets all rules definitions.","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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":1,"items":[{"rule":{"threshold":{"durationS":3600},"type":"dwelling"},"ruleId":"f4c26630-5d26-4cd1-a57e-g7834e72cb99"}],"limit":100,"nextPageToken":"024ggjjea253d79fc"},"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"properties":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Response body contains an array of rule objects, `count` indicates the number of returned rules,\nand `pageToken` is the next page token if available.\n\nIf no rules are found, an object with an empty data array is returned.\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 rules","tags":["Rules"]},"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"}},{"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"}}],"post":{"description":"Creates a rule of the specified rule `type` and with the defined `threshold`.\nAfter the rule has been created, it needs to be associated to a device to get activated.\n\nDetention rule\n---\nFor a rule of the `detention` type the threshold is defined as a duration in seconds.\nA `DETENTION_STARTED` event gets triggered when the device has remained\nstationary for longer than the threshold duration.\nA `DETENTION_ENDED` event will be generated when the device starts moving again.\n\nUtilization rule\n---\nFor a rule of the `utilization` type the threshold is defined as a duration in seconds.\nAn `UNUTILIZED` event will\nbe generated when the device has been stationary for longer than the threshold duration, \nand `UTILIZED` event gets triggered when the device starts moving again after having been stationary.\n\nDwelling rule\n---\nFor a rule of the `dwelling` type the threshold is defined as a duration in seconds.\nA `DWELLING_STARTED` event gets triggered when a dwelling time of the device\ninside any device-associated geofence exceeds the threshold duration.\nWhen the device exits the geofence, a `DWELLING_ENDED` event will be generated.\n\nOnline rule\n---\nFor a rule of the `online` type there is no threshold defined.\nA `TRUE_TO_FALSE` event gets triggered when the\ndevice is late for the planned ingestion schedule by more than 5 minutes.\nA `FALSE_TO_TRUE` event is generated when the device starts ingesting again after having been offline.\nThe planned ingestion schedule needs to be configured in the device `desired shadow`\n(the `desired.system.rate.sendMs` property).\n\nStock rule\n---\nFor a rule of the `stock` type the threshold is defined as `minVolume` and/or `maxVolume` values.\nWhen creating a stock rule, also a geofence ID needs to be specified.\nWhen the number of devices inside the specified geofence exceeds `maxVolume`, an `OVERSTOCK`\nevent will be generated. Similarly, when the number of devices inside the specified geofence\ngets below `minVolume`, an `UNDERSTOCK` event will be generated. When the number of\ndevices inside the specified geofence is between `minVolume` and `maxVolume`, a `NORMAL_VOLUME`\nevent will be generated. Note that the stock rule only gets triggered for devices that are associated\nto the specified geofence.\n\nShipment schedule rule\n---\nFor a rule of the `shipmentSchedule` type there are `before` and `after` deviation time thresholds \nfrom the planned shipment ETD/ETA.\nA `SHIPMENT_EARLY` event gets triggered when the shipment is ahead\nof schedule by the number of `before` seconds.\nA `SHIPMENT_DELAYED` event gets triggered when the shipment is behind\nschedule by the number of `after` seconds.\nA `SHIPMENT_ON_TIME` event gets triggered when the shipment is on time.\n\nWhen a rule has been successfully created, the response body will contain the created rule ID.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId"],"type":"object"}}},"description":"Created\n\nThe rule was successfully created.\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":"Creates a rule","tags":["Rules"]}},"/rules/v4/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":["Rules"]}},"/rules/v4/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":["Rules"]}},"/rules/v4/{ruleId}":{"delete":{"description":"Deletes a rule identified by the `ruleId`.\n","responses":{"204":{"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","message":"No rules with the provided ruleId were 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":"No rules with the provided ruleId were found"},"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":"Deletes a rule","tags":["Rules"]},"get":{"description":"Gets details of a single rule identified by the `ruleId`.\n","responses":{"200":{"content":{"application/json":{"example":{"rule":{"threshold":{"durationS":3600},"type":"dwelling"},"ruleId":"f4c26630-5d26-4cd1-a57e-g7834e72cb99"},"schema":{"properties":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"}}},"description":"Response body contains a single rule object.\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","message":"No rules with the provided ruleId were 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":"No rules with the provided ruleId were found"}},"security":[{"Bearer":[]}],"summary":"Gets a single rule","tags":["Rules"]},"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":"ID of the rule","in":"path","name":"ruleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}}],"put":{"description":"Updates the name, description and threshold of the rule `ruleId`. \nThe rule type cannot be updated.\nIf some of the these properties are not provided in the request body, their values\nwill be set to null.\n\nIf the rule has been updated successfully, the response will contain the updated rule details.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"}}},"description":"Successful\n\nThe rule was updated.\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","message":"No rules with the provided ruleId were 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":"No rules with the provided ruleId were found"}},"security":[{"Bearer":[]}],"summary":"Updates a single rule","tags":["Rules"]}},"/sensors/v3":{"delete":{"description":"Deletes all sensor rules of a project.\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 sensor rules 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"}},"security":[{"Bearer":[]}],"summary":"Deletes all sensor rules","tags":["Sensors"]},"get":{"description":"Gets all sensor rules definitions.","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"}}],"responses":{"200":{"content":{"application/json":{"example":{"count":2,"data":[{"id":"f4c26630-5d26-4cd1-a57e-g7834e72cb99","range":{"begin":-20,"end":30},"type":"temperature"},{"id":"j7c24430-5f26-4kd1-c58e-g7126e72ab33","range":{"begin":30,"end":80},"type":"pressure"}],"pageToken":"024ggjjea253d79fc"},"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":{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of sensor rule objects, `count` indicates the number of returned sensor rules,\nand `pageToken` is the next page token if available.\n\nIf no sensor rules are found, an object with an empty data array is returned.\n","type":"object"}}},"description":"Response body contains an array of sensor rule objects, `count` indicates the number of returned sensor rules,\nand `pageToken` is the next page token if available.\n\nIf no sensor rules are found, an object with an empty data array is returned.\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 sensor rules","tags":["Sensors"]},"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"}},{"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"}}],"post":{"description":"Creates a sensor rule of the specified rule type.\nAfter the sensor rule has been created, it needs to be associated to a device to get activated.\n\nFor a sensor rule of the battery, humidity, pressure and temperature type, a `range` parameter needs \nto be specified, defining both upper and lower thresholds for the sensor readings. \nWhen the device ingests data, the reported sensor reading is compared to the defined range \nand in case in or out of range transition has taken place, an event gets triggered.\n\nFor a sensor rule of the acceleration type, a `threshold` parameter needs \nto be specified, defining the acceleration threshold value.\nEvery time the device reports its accelerometer sensor reading being above the threshold, \nan event gets triggered.\n\nFor a sensor rule of the attach and tamper types, no additional parameters\nneed to be specified.\nThe attach sensor detects whether the device is attached to some object (for example to an \nasset).\nThe tamper sensor detects whether the device cover is open or closed. When the cover is open,\nthe device is considered to be tampered with.\nEvery time the device reports getting attached, detached, tampered with or left with the \ncover closed (that is, not tampered with), an event gets triggered.\n\nWhen a sensor rule has been successfully created, the response body will contain the created rule ID.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum battery sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":0,"type":"number"},"end":{"description":"A maximum battery sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":0,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["battery"],"type":"string"}},"required":["type","range"],"title":"Battery","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum humidity sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":0,"type":"number"},"end":{"description":"A maximum humidity sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":0,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["humidity"],"type":"string"}},"required":["type","range"],"title":"Humidity","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum pressure sensor alarm threshold value. Must be less than end.","maximum":1500,"minimum":300,"type":"number"},"end":{"description":"A maximum pressure sensor alarm threshold value. Must be greater than begin.","maximum":1500,"minimum":300,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["pressure"],"type":"string"}},"required":["type","range"],"title":"Pressure","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum temperature sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":-70,"type":"number"},"end":{"description":"A maximum temperature sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":-70,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["temperature"],"type":"string"}},"required":["type","range"],"title":"Temperature","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"type":{"description":"The sensor type.","enum":["attach","tamper"],"type":"string"}},"required":["type"],"title":"Boolean","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"value":{"description":"An acceleration sensor alarm threshold value.","maximum":100,"minimum":2,"type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["acceleration"],"type":"string"}},"required":["type","threshold"],"title":"Acceleration","type":"object"}]}}}},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"message":{"description":"Set to `created` if the sensor rule creation was successful.","type":"string"}},"required":["id"],"type":"object"}}},"description":"Created\n\nThe sensor rule was successfully created.\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":"Creates a sensor rule","tags":["Sensors"]}},"/sensors/v3/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":["Sensors"]}},"/sensors/v3/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":["Sensors"]}},"/sensors/v3/{sensorRuleId}":{"delete":{"description":"Deletes a sensor rule identified by the `sensorRuleId`.\n","responses":{"204":{"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","message":"The sensor rule ID 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":"The sensor rule ID was not found"},"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":"Deletes a sensor rule","tags":["Sensors"]},"get":{"description":"Gets details of a single sensor rule identified by the `sensorRuleId`.\n","responses":{"200":{"content":{"application/json":{"example":{"id":"f4c26630-5d26-4cd1-a57e-g7834e72cb99","range":{"begin":-20,"end":30},"type":"temperature"},"schema":{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"}}},"description":"Response body contains a single sensor rule object.\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","message":"The sensor rule ID 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":"The sensor rule ID was not found"}},"security":[{"Bearer":[]}],"summary":"Gets a single sensor rule","tags":["Sensors"]},"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":"ID of the sensor rule","in":"path","name":"sensorRuleId","required":true,"schema":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}}],"put":{"description":"Updates the sensor rule `sensorRuleId` name, description and range or threshold.\nThe sensor rule type cannot be updated.\nIf some of the these properties are not provided in the request body, their values\nwill be set to null.\nIf the sensor rule has been updated successfully, the response will contain the updated rule details.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum battery sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":0,"type":"number"},"end":{"description":"A maximum battery sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":0,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["battery"],"type":"string"}},"required":["type","range"],"title":"Battery","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum humidity sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":0,"type":"number"},"end":{"description":"A maximum humidity sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":0,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["humidity"],"type":"string"}},"required":["type","range"],"title":"Humidity","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum pressure sensor alarm threshold value. Must be less than end.","maximum":1500,"minimum":300,"type":"number"},"end":{"description":"A maximum pressure sensor alarm threshold value. Must be greater than begin.","maximum":1500,"minimum":300,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["pressure"],"type":"string"}},"required":["type","range"],"title":"Pressure","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum temperature sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":-70,"type":"number"},"end":{"description":"A maximum temperature sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":-70,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["temperature"],"type":"string"}},"required":["type","range"],"title":"Temperature","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"type":{"description":"The sensor type.","enum":["attach","tamper"],"type":"string"}},"required":["type"],"title":"Boolean","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"value":{"description":"An acceleration sensor alarm threshold value.","maximum":100,"minimum":2,"type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["acceleration"],"type":"string"}},"required":["type","threshold"],"title":"Acceleration","type":"object"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"message":{"description":"The message text is \"updated\" if the sensor rule update was successful.","type":"string"}},"type":"object"},{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"}]}}},"description":"Successful\n\nThe sensor rule was updated.\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","message":"The sensor rule ID 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":"The sensor rule ID was not found"}},"security":[{"Bearer":[]}],"summary":"Updates a single sensor rule","tags":["Sensors"]}},"/shadows/v2/batch":{"post":{"description":"Gets device shadows for multiple devices. One can get shadows for a\nmaximum of 100 devices per request.\n\nIn case `after` parameter is provided, only the device\nshadows that were modified on or after the specified timestamp\nwill be retrieved.\n","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":"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"}},{"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"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"An array of trackingIds of devices","example":["HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6","HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"],"items":{"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`.","maxLength":50,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"example":[{"body":{"desired":{},"reported":{"position":{"accuracy":30,"lat":40,"lng":30.2},"system":{"phoneNumber":"+4917012345"}}},"statusCode":200,"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},{"statusCode":404,"trackingId":"HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"}],"items":{"properties":{"appId":{"description":"Virtual device application ID, only present when the device is virtual","minLength":8,"type":"string"},"body":{"description":"The data that Shadows persists for each device.\n","properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}},"type":"object"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"statusCode":{"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"type":"array"}}},"description":"Successful\n\nThe response body contains a list of device shadows accompanied by statusCode and\ntrackingId of the associated device. The returned shadow objects are in same\norder as the trackingIds provided in the request.\n\nIn case of an error, each trackingId has a separate status code:\n\n* 403 - Forbidden\n* 404 - Device not found\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 a batch of device shadows","tags":["Shadows"]}},"/shadows/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":["Shadows"]}},"/shadows/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":["Shadows"]}},"/shadows/v2/{trackingId}":{"delete":{"description":"Deletes the device shadow of the `trackingId` device.\n\nBy default, all the values of the `desired` and `reported` shadow objects will be cleared, leaving them empty.\n\nIf either `desired` or `reported` query parameter is set to `false`, that part of the shadow remains as it is.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},{"description":"If `true`, all the values of the `desired` shadow will be cleared","in":"query","name":"desired","required":false,"schema":{"default":true,"type":"boolean"}},{"description":"If `true`, all the values of the `reported` shadow will be cleared","in":"query","name":"reported","required":false,"schema":{"default":true,"type":"boolean"}}],"responses":{"204":{"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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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. No shadow exists for the requested trackingId."}},"security":[{"Bearer":[]}],"summary":"Clears a device shadow","tags":["Shadows"]},"get":{"description":"Gets the `trackingId` device shadow that contains both `reported` and `desired` shadows.\n\nIf a `shipmentId` is used instead of a `trackingId`, it will return a\nshadow of the device that was most recently active for the shipment. If the shipment\nis still pending or it has been cancelled or completed, an empty shadow will be returned.\n","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"}}],"responses":{"200":{"content":{"application/json":{"example":{"desired":{"payload":{"color":"red","velocity":100}},"reported":{"payload":{"color":"blue","velocity":100},"position":{"alt":97,"lat":52.5,"lng":13.4}},"timestamp":1461065261010},"schema":{"description":"The data that Shadows persists for each device.\n","properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}},"type":"object"}}},"description":"Successful\n\nThe device shadow 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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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. No shadow exists for the requested trackingId."}},"security":[{"Bearer":[]}],"summary":"Gets a device shadow","tags":["Shadows"]},"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":"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":"Updates the `trackingId` device desired shadow.\n\nThe device shadow consists of `reported` and `desired` shadows. \nOnly the `desired` shadow can be updated via this endpoint.\nThe `reported` shadow is updated automatically when the device sends telemetry to the ingestion endpoint.\n","parameters":[{"description":"The size of the shadow in bytes. The size is validated against the\nmaximum limit of 1000 bytes.\n","in":"header","name":"content-length","required":true,"schema":{"maximum":1000,"minimum":0,"type":"number"}},{"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`.","maxLength":50,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"desired":{"additionalProperties":false,"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"additionalProperties":false,"description":"Contains values for the device configuration. HERE Tracking uses these values\nfor various application flows.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"type":"object"}},"type":"object"}},"required":["desired"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"example":{"desired":{"payload":{"color":"red"},"system":{"lastModifiedGeofenceTimestamp":0,"rate":{"distanceM":0,"sampleMs":300000,"sendMs":300000},"stateVersion":2},"timestamp":1461065261010}},"schema":{"description":"The data that Shadows persists for each device.\n","properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}},"type":"object"}}},"description":"Success\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":{"description":"Not found. Shadow doesn't exist."},"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"},"413":{"content":{"application/json":{"example":{"code":413,"details":{"hereErrorCode":413306},"error":"Payload Too Large","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request size exceeds the maximum size limit for payloads."},"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":"Payload Too Large\n\nThe request size exceeds the maximum size limit for payloads.\n"}},"security":[{"Bearer":[]}],"summary":"Updates a device shadow","tags":["Shadows"]}},"/shadows/v2/{trackingId}/{state}":{"get":{"description":"Gets the `reported` or `desired` state object of the device `trackingId`, that is the `reported` or `desired` device shadow.\n","responses":{"200":{"content":{"application/json":{"example":{"position":{"accuracy":"18","alt":"105","altaccuracy":"15","lat":"52.5308544","lng":"13.38480101"}},"schema":{"anyOf":[{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"title":"desired","type":"object"},{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"title":"reported","type":"object"}]}}},"description":"Successful\n\nThe requested device desired or reported state object\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":{"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. Shadow doesn't exist"}},"security":[{"Bearer":[]}],"summary":"Gets reported or desired state object of a device","tags":["Shadows"]},"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"}},{"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":"Application identifier. Used together with an external ID to identify a virtual device.","in":"query","name":"appId","required":false,"schema":{"minLength":8,"type":"string"}},{"description":"Desired or reported state object of a device to query.","in":"path","name":"state","required":true,"schema":{"enum":["desired","reported"],"type":"string"}}]},"/shadows/v2/{trackingId}/{state}/{selector}":{"get":{"description":"Gets a value of a single property of either `desired` or `reported` state objects of a device.\nOne can use JSON selectors to specify the target property or reference it by name.\nIn case the property contains an object, the entire object will be returned in the response.\n\nThe JSON selector can be nested like this: `payload/time/minutes`\n","responses":{"200":{"content":{"application/json":{"example":{"accuracy":"18","alt":"105","altaccuracy":"15","lat":"52.5308544","lng":"13.38480101"},"schema":{"oneOf":[{"type":"object"},{"items":{},"type":"array"}]}},"text/plain":{"example":"red","schema":{"type":"string"}}},"description":"Successful\n\nThe content type is defined as \"text/plain\" or \"application/json\"\ndepending on the type of the property.\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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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. Shadow doesn't exist"},"422":{"content":{"application/json":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"The specified property doesn't exist in the shadow for the device."}},"security":[{"Bearer":[]}],"summary":"Gets a value of a shadow property","tags":["Shadows"]},"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"}},{"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":"Application identifier. Used together with an external ID to identify a virtual device.","in":"query","name":"appId","required":false,"schema":{"minLength":8,"type":"string"}},{"description":"Desired or reported state object of a device to query.","in":"path","name":"state","required":true,"schema":{"enum":["desired","reported"],"type":"string"}},{"description":"A JSON selector that specifies the property.","in":"path","name":"selector","required":true,"schema":{"type":"string"}}]},"/shadows/v4":{"get":{"description":"Gets all device shadows of a project.\n","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"}},{"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":"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":"limit","required":false,"schema":{"default":100,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"If provided returns the shadows for which `reported.timestamp` is greater than given `after` parameter.","in":"query","name":"after","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Defines how the items are sorted.\nThe default sort is `sort=trackingId:asc`\n","example":"reported.timestamp:desc","in":"query","name":"sort","required":false,"schema":{"pattern":"^(trackingId|reported.timestamp|desired.timestamp):(asc|desc)$","type":"string"}},{"description":"Limit search to shadows, whose position intersects the given bounding box.\nThe `bbox` array consist of latitude and longitude of Northwest and Southeast corners.\n","example":"61.494750,23.775189,61.494611,23.774758","in":"query","name":"bbox","schema":{"items":{"description":"Latitude and longitude of Northwest and Southeast corners.","maximum":180,"minimum":-180,"type":"number"},"maxItems":4,"minItems":4,"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":1000,"minimum":0,"type":"integer"},"items":{"items":{"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"},"shadow":{"properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Begin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","format":"date-time","type":"string"},"end":{"description":"End time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","format":"date-time","type":"string"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"The time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","format":"date-time","type":"string"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"The time of the last update to the desired shadow.\n","format":"date-time","type":"string"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","format":"date-time","type":"string"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","format":"date-time","type":"string"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Timestamp for the corrected position","format":"date-time","type":"string"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"This describes when the reported measurements were taken.\n","format":"date-time","type":"string"}},"type":"object"}},"required":["desired","reported"],"type":"object"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["shadow"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":1000,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"}}},"description":"Response body contains an array of shadows along with tracking ID, count indicating the number of returned items,\nand next page token if available. For virtual devices, a combination of app ID and external ID is provided instead of tracking ID.\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 shadows","tags":["Shadows"]}},"/shipment-reports/v4":{"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"}},{"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"}}],"post":{"description":"This endpoint starts the shipment report generation. One can specify which shipments to include\nin the shipments report by using the filters in the request body. The response contains the generated\nshipment report ID `shipmentReportId`.\n\nAfter the shipment report generation has been requested, the status of the shipment report generation\ncan be checked by using the `/shipment-reports/v4/{shipmentReportId}/status` endpoint.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"endedAfter":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich ended after the provided date.\n","format":"date-time","type":"string"},"endedBefore":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich ended before the provided date.\n","format":"date-time","type":"string"},"shipmentPlanIds":{"description":"Provide array of shipment plan ids to include into the shipment report. If just a single shipment plan id is\ngiven, then the shipment report will include only metrics and shipments for the given shipment plan. If none\nis given, then the shipment report will include all shipment plans.\n","items":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"maxItems":100,"minItems":1,"type":"array"},"startedAfter":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich started after the provided date.\n","format":"date-time","type":"string"},"startedBefore":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich started before the provided date.\n","format":"date-time","type":"string"}},"type":"object"}}}},"responses":{"202":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"shipmentReportId":{"description":"Shipment report ID","pattern":"^SHPR-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentReportId"],"type":"object"}}},"description":"Accepted\n\nThe shipment reports generation started successfully. Use the `shipmentReportId` for checking\nthe status of the generation, and once it's generated, it can be used for fetching the metrics.\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Starts shipment report generation","tags":["Shipment Reports"]}},"/shipment-reports/v4/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":["Shipment Reports"]}},"/shipment-reports/v4/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":["Shipment Reports"]}},"/shipment-reports/v4/{shipmentReportId}/status":{"get":{"description":"Use the `shipmentReportId` as a path parameter for fetching the status of the generation of the\nshipment report.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"error":{"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"},"status":{"enum":["completed","failed","ongoing","pending"],"type":"string"}},"required":["status"],"type":"object"}}},"description":"Success\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets status of generation of the shipment report","tags":["Shipment Reports"]},"parameters":[{"in":"path","name":"shipmentReportId","required":true,"schema":{"description":"Shipment report ID","pattern":"^SHPR-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}]},"/shipment-reports/v4/{shipmentReportId}/summary":{"get":{"description":"After the shipment report generation is completed, use the\n`shipmentReportId` as a path parameter for fetching\nthe summary of the shipment report.\n\nThe summary contains general information about the locations, shipments, shipment plans,\nsegments, and segment plans which were used in the generation of the shipment report. It also includes the time\nwhen the shipment report generation started, and when it ended.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"completedAt":{"description":"When generation of the shipment report was completed.\n","format":"date-time","type":"string"},"createdAt":{"description":"When generation of the shipment report was started.\n","format":"date-time","type":"string"},"totalLocationCount":{"description":"Count of locations over all segment plans in the shipment report.\n","type":"integer"},"totalSegmentPlanCount":{"description":"Count of segment plans in the shipments report.\n","type":"integer"},"totalSegmentsCount":{"description":"Count of segments over all segment plans in the shipment report.\n","type":"integer"},"totalShipmentPlanCount":{"description":"Count of shipment plans in the shipments report.\n","type":"integer"},"totalShipmentsCount":{"description":"Count of shipments over all shipment plans in the shipment report.\n","type":"integer"}},"required":["totalShipmentPlanCount","totalSegmentPlanCount","totalShipmentsCount","totalSegmentsCount","totalLocationCount","createdAt","completedAt"],"type":"object"}}},"description":"Success\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets summary of the shipment report","tags":["Shipment Reports"]},"parameters":[{"in":"path","name":"shipmentReportId","required":true,"schema":{"description":"Shipment report ID","pattern":"^SHPR-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}]},"/shipment-reports/v4/{shipmentReportId}/{metric}":{"get":{"description":"Get the shipment report metric by using the `shipmentReportId` and a `metric` parameters.\n\nShipment report metrics can be requested only after the shipment\nreport generation has been completed.\n","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"properties":{"ids":{"additionalProperties":false,"description":"Combination of shipmentId, shipmentPlanId, segmentId, segmentPlanId or locationId based on\nthe given metric.\n","properties":{"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"},"statistics":{"additionalProperties":false,"description":"Calculated statistics of the given metric.\n","properties":{"avg":{"description":"Average value taken over metric values.\n","type":"number"},"val":{"description":"Value of a metric.\n","type":"number"}},"type":"object"},"statisticsCount":{"description":"How many inputs were used to calculate the given metric.\n","type":"integer"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total number of items","minimum":0,"type":"integer"}},"type":"object"}}},"description":"Success\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"},"429":{"content":{"application/json":{"example":{"code":429,"error":"Too Many Requests","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"Too Many Requests"},"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":"Too Many Requests\n\nUser has sent too many requests in a given amount of time.\n"}},"security":[{"Bearer":[]}],"summary":"Gets metrics of the shipment report","tags":["Shipment Reports"]},"parameters":[{"description":"Metric for which results to include in the response.\n","in":"path","name":"metric","required":true,"schema":{"enum":["shipmentPlanPunctualityAtOrigin","shipmentPlanPunctualityAtDestination","segmentPlanPunctualityAtOrigin","segmentPlanPunctualityAtDestination","shipmentPunctualityAtOrigin","shipmentPunctualityAtDestination","segmentPunctualityAtOrigin","segmentPunctualityAtDestination","locationDwelling"],"type":"string"}},{"in":"path","name":"shipmentReportId","required":true,"schema":{"description":"Shipment report ID","pattern":"^SHPR-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},{"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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"The response items can be sorted to ascending or descending order by their statistics properties. E.g for\n`shipmentPlanPunctualityAtOrigin` it could be `avg:desc`.\nDefault is ascending sort order.\n","in":"query","name":"sort","required":false,"schema":{"pattern":"^(avg|val):(asc|desc)$","type":"string"}}]},"/shipments/v4":{"delete":{"description":"Deletes all the shipments of the project.\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 shipments 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"}},"security":[{"Bearer":[]}],"summary":"Deletes all shipments","tags":["Shipments"]},"get":{"description":"Gets all shipments of the project.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Filter the results by shipment status","in":"query","name":"status","required":false,"schema":{"enum":["pending","ongoing","completed","cancelled"],"type":"string"}},{"description":"Return only shipments that started before the specified timestamp","in":"query","name":"startedBefore","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Return only shipments that started after the specified timestamp","in":"query","name":"startedAfter","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Return only shipments that ended before the specified timestamp","in":"query","name":"endedBefore","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Return only shipments that ended after the specified timestamp","in":"query","name":"endedAfter","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Filter shipments by name. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*portugal*","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Return only shipments that have been instantiated from the specified `shipmentPlanId`","in":"query","name":"shipmentPlanId","required":false,"schema":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},{"description":"Filter shipments by `shipmentId`\nMatching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","in":"query","name":"shipmentId","required":false,"schema":{"type":"string"}},{"description":"Returns only shipments marked as subShipments","in":"query","name":"isSubShipment","required":false,"schema":{"type":"boolean"}},{"description":"Return only shipments that have been created before specified timestamp","in":"query","name":"createdBefore","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Return only shipments that have been created after specified timestamp","in":"query","name":"createdAfter","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"A paramater to specify field to sort by and order.\nThe following format can be used:\n'name:asc' sort by name in ascending order,\n'shipmentId:desc' sort by shipmentId in descending order.\nAllowed fields to sort by:\nshipmentId, name, status, startedAt, createdAt, endedAt, providedEtd,\nprovidedEta, calculatedEtd.\n","example":"name:asc","in":"query","name":"sort","required":false,"schema":{"oneOf":[{"pattern":"^(shipmentId|name|status|startedAt|createdAt|endedAt|providedEtd|providedEta|calculatedEtd):(asc|desc)$","type":"string"},{"items":{"pattern":"^(shipmentId|name|status|startedAt|createdAt|endedAt|providedEtd|providedEta|calculatedEtd):(asc|desc)$","type":"string"},"type":"array"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"count":1,"items":[{"autoStart":true,"description":"A shipment consisting of one segment","name":"From Portugal to Panama","segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.432Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.432Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001","status":"pending","subShipment":false}],"limit":100},"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"description":"Shipment details","example":{"autoStart":true,"description":"A shipment consisting of one segment","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.432Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.432Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001","shipmentPlanId":"SHPP-de2bd93d-a371-4e22-801a-528238d1a33a","status":"pending","subShipment":false},"properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"calculatedEta":{"description":"Calculated  ETA for the shipment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the shipment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when the shipment has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"endedAt":{"description":"Timestamp indicating when the shipment ended","format":"date-time","type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"User provided ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array containing the segment details","items":{"additionalProperties":false,"description":"Segment details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.432Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.432Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"type":"array"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"A shipment plan's id that the shipment was generated from.","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when the shipment started","format":"date-time","type":"string"},"status":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentId","autoStart","status","segments"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total number of shipments for query","type":"integer"}},"required":["limit","count","items"],"type":"object"}}},"description":"Response body contains an array of shipment objects, `count` indicates the number of\nreturned items, `limit` indicates the requested maximum amount of records to be returned\nand `pageToken` is the next page token if available.\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 shipments","tags":["Shipments"]},"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"}},{"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"}}],"post":{"description":"Creates a new shipment. A shipment consists of segments each representing a part of the\nlogistics journey. A segment spans from a location to another and each segment may be\nassigned a different tracking device.\n\nThe segments of the shipment must form a continuous chain of locations, that is the origin of a\nsegment must match the destination of a previous segment.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"description":"Body for creating a shipment","example":{"autoStart":true,"description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["segments"],"title":"From new","type":"object"},{"additionalProperties":false,"description":"Create shipment from an existing shipment plan","example":{"shipmentDeparture":"2025-08-15T13:52:57.432Z","shipmentPlanId":"SHPP-cfd35027-720f-4196-849b-6e97028b66bd"},"properties":{"shipmentDeparture":{"description":"ETD of the shipment instance. Used to calculate the ETDs and ETAs of all the segments based on the segment durations defined in the plan.","format":"date-time","type":"string"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentPlanId"],"title":"From existing","type":"object"}],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001"},"properties":{"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentId"],"type":"object"}}},"description":"Created.\n\nThe shipment has been successfully created.\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":"Creates a shipment","tags":["Shipments"]}},"/shipments/v4/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":["Shipments"]}},"/shipments/v4/plans":{"delete":{"description":"Deletes all shipment plans of the project. Any shipments instantiated from the plans will\npersist, but the references to the parent plans will be removed.\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 shipment plans 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"}},"security":[{"Bearer":[]}],"summary":"Deletes all shipment plans","tags":["Shipments"]},"get":{"description":"Gets all shipment plans of the project.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Filter shipments by name. Matching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","example":"*portugal*","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Return only shipment plans that have been instantiated from the specified `shipmentPlanId`\nMatching is case-insensitive.\nThe following wildcards can be used:\n'*' matches any number of any characters,\n'?' matches any single character.\n","in":"query","name":"shipmentPlanId","required":false,"schema":{"type":"string"}},{"description":"Return only shipments that have been instantiated from the specified `locationId`\n","in":"query","name":"locationId","required":false,"schema":{"type":"string"}},{"description":"Return only shipments that have been created before specified timestamp","in":"query","name":"createdBefore","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Return only shipments that have been created after specified timestamp","in":"query","name":"createdAfter","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Returns only shipments marked as subShipments","in":"query","name":"isSubShipment","required":false,"schema":{"type":"boolean"}},{"description":"A paramater to specify field to sort by and order.\nAllowed fields to sort by: shipmentPlanId, name, createdAt\n","example":"name:asc","in":"query","name":"sort","required":false,"schema":{"oneOf":[{"pattern":"^(shipmentPlanId|name|createdAt):(asc|desc)$","type":"string"},{"items":{"pattern":"^(shipmentPlanId|name|createdAt):(asc|desc)$","type":"string"},"type":"array"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"example":{"autoStart":true,"createdAt":"2025-08-15T13:52:57.433Z","description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["49716c18-9858-40bb-842a-15bf2ed02c64","ccc540b3-b2c8-4914-b00f-de518cb56e75"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"e19cec4f-445e-41d0-9f0e-d1304ea707d1","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","segmentPlanId":"6c668d6b-1eeb-46c2-ba12-31265c346c04","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","segmentPlanId":"b331cc64-0c83-4347-8a08-bf984675832f","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentPlanId":"SHPP-730b08fe-ec44-4e6f-b2b0-1d3cc264981c","subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"createdAt":{"description":"Timestamp indicating when the shipment plan has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"Segment plan details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"SEGP-3253bff4-97ba-4dfa-866c-fa8703902fcf","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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`.","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentPlanId","segments"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total count of matching results","minimum":0,"type":"integer"}},"required":["limit","count","items","total"],"type":"object"}}},"description":"Response body contains an array of shipment plan objects, `count` indicates the number of\nreturned items, `limit` indicates the requested maximum amount of records to be returned\nand `pageToken` is the next page token if available.\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":"Lists all shipment plans","tags":["Shipments"]},"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"}},{"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"}}],"post":{"description":"Creates a new shipment plan. A shipment plan is a structure that holds information about a\nrecurring shipment. Like a shipment, a shipment plan also consists of segments each\nrepresenting a part of the logistics journey. A segment spans from a location to another and\neach segment may be assigned a different tracking device. The segments of the shipment must form a\ncontinuous chain of locations, that is the origin of a segment must match the destination of a\nprevious segment.\n\nIn addition to shipments, a predefined duration can be assigned to each segment in the plan.\nThis information will be used to calculate the Estimated Time of Departure (ETD) and\nEstimated Time of Arrival (ETA) when instantiating a shipment from a shipment plan.\n","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"additionalProperties":false,"example":{"autoStart":true,"description":"A shipment consisting of four segments","name":"From Portugal to Panama","segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["segments"],"title":"From new","type":"object"},{"additionalProperties":false,"example":{"options":{"calculateDurationsFrom":"actuals","copyTrackingIds":true},"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001"},"properties":{"options":{"description":"Optional parameters for plan creation","properties":{"calculateDurationsFrom":{"description":"If defined, the durations of the segments in the plan will be based on the durations of the segments of the provided shipment","enum":["actuals","providedEstimate","calculatedEstimate"],"type":"string"},"copyTrackingIds":{"default":false,"description":"If set to `true`, trackingIds in the segments of the provided shipment are copied to the plan","type":"boolean"}},"type":"object"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentId"],"title":"From existing","type":"object"}],"type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"shipmentPlanId":"SHPP-de2bd93d-a371-4e22-801a-528238d1a33a"},"properties":{"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentPlanId"],"type":"object"}}},"description":"Created.\n\nThe shipment plan has been successfully created.\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":"Creates a shipment plan","tags":["Shipments"]}},"/shipments/v4/plans/{shipmentPlanId}":{"delete":{"description":"Deletes a shipment plan identified by the `shipmentPlanId`.\n\nAny shipment instantiated from the plan will persist, but the\nreference to the parent plan will be removed.\n","responses":{"204":{"description":"Successful (no content).\n\nThe shipment plan was 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 a shipment plan","tags":["Shipments"]},"get":{"description":"Gets details of a shipment plan identified by the `shipmentPlanId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"example":{"autoStart":true,"createdAt":"2025-08-15T13:52:57.433Z","description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["49716c18-9858-40bb-842a-15bf2ed02c64","ccc540b3-b2c8-4914-b00f-de518cb56e75"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"e19cec4f-445e-41d0-9f0e-d1304ea707d1","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","segmentPlanId":"6c668d6b-1eeb-46c2-ba12-31265c346c04","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","segmentPlanId":"b331cc64-0c83-4347-8a08-bf984675832f","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentPlanId":"SHPP-730b08fe-ec44-4e6f-b2b0-1d3cc264981c","subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"createdAt":{"description":"Timestamp indicating when the shipment plan has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"Segment plan details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"SEGP-3253bff4-97ba-4dfa-866c-fa8703902fcf","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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`.","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentPlanId","segments"],"type":"object"}}},"description":"Success.\n\nThe shipment plan information was returned\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 a shipment plan details","tags":["Shipments"]},"parameters":[{"in":"path","name":"shipmentPlanId","required":true,"schema":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"patch":{"description":"Updates details of a shipment plan identified by the `shipmentPlanId`.\nThis is a partial update, meaning that only the provided\nfields will be updated. If `ruleIds` field is specified, it will replace\nthe existing rules currently associated with the shipment plan.\n\n***Note***:\n`segments` cannot be edited through this API. Changing the order of the segments in a plan\nwould cause shipments created from earlier versions of the plan diverge from a shipment\ninstantiated from the new plan with different segment structure. Individual segments can\nstill be updated via the `shipments/v4/plans/{shipmentPlanId}/{segmentPlanId}` endpoint.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Body for updating a shipment plan","properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"type":"object"}}}},"responses":{"204":{"description":"Successful (no content)\n\nThe shipment plan information was updated\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":"Updates a shipment plan details","tags":["Shipments"]}},"/shipments/v4/plans/{shipmentPlanId}/{segmentPlanId}":{"get":{"description":"Gets details of a segment plan identified by the `segmentPlanId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Segment plan details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"SEGP-3253bff4-97ba-4dfa-866c-fa8703902fcf","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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`.","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"}}},"description":"Success.\n\nThe segment plan information was returned\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 a segment plan details","tags":["Shipments"]},"parameters":[{"in":"path","name":"shipmentPlanId","required":true,"schema":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},{"in":"path","name":"segmentPlanId","required":true,"schema":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"patch":{"description":"Updates details of a segment plan identified by the `segmentPlanId`.\n\nThis is a partial update, meaning that only the provided\nfields will be updated.\n\n***Note***: Updating `origin` and `destination` is prohibited to prevent breaking the chain\nof locations.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"A segment of a shipment plan.","example":{"description":"From factory to port","durationS":3600,"name":"Truck transport","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"}}}},"responses":{"204":{"description":"Successful (no content)\n\nThe segment plan information was updated\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":"Updates a segment plan details","tags":["Shipments"]}},"/shipments/v4/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":["Shipments"]}},"/shipments/v4/{shipmentId}":{"delete":{"description":"Deletes a shipment identified by the `shipmentId`.\nAll the data related to the shipment (such as events, associations) will be removed.\n","responses":{"204":{"description":"Successful (no content).\n\nThe shipment was 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 a shipment","tags":["Shipments"]},"get":{"description":"Gets details of a specific shipment identified by the `shipmentId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Shipment details","example":{"autoStart":true,"description":"A shipment consisting of one segment","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.434Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.434Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001","shipmentPlanId":"SHPP-de2bd93d-a371-4e22-801a-528238d1a33a","status":"pending","subShipment":false},"properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"calculatedEta":{"description":"Calculated  ETA for the shipment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the shipment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when the shipment has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"endedAt":{"description":"Timestamp indicating when the shipment ended","format":"date-time","type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"User provided ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array containing the segment details","items":{"additionalProperties":false,"description":"Segment details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.434Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.434Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"type":"array"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"A shipment plan's id that the shipment was generated from.","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when the shipment started","format":"date-time","type":"string"},"status":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentId","autoStart","status","segments"],"type":"object"}}},"description":"Success.\n\nThe shipment information was returned\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 a shipment details","tags":["Shipments"]},"parameters":[{"in":"path","name":"shipmentId","required":true,"schema":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"patch":{"description":"Updates details of a shipment identified by the `shipmentId`.\nThis is a partial update, meaning that only the provided fields will be updated,\nexcept when updating segments, the whole segments will be replaced fully.\n\nChanging the status of the shipment affects the statuses of the segments. The following\nstatus changes are allowed:\n* `pending` → `ongoing`\n  * changes the status of the first segment to `ongoing`\n* `pending` → `cancelled`\n  * changes the status of all segments to `cancelled`\n* `ongoing` → `cancelled`\n  * cancels the current `ongoing` segment and all the succeeding segments\n* `ongoing` → `completed`\n  * completes the current `ongoing` segment and cancels all the succeeding segments\n\n***Note***:\n`segments` and `autoStart` can be updated via this API call only if the shipment is in\n`pending` state.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Body for updating a shipment","properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"status":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"type":"object"}}}},"responses":{"204":{"description":"Successful (no content)\n\nThe shipment information was updated\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":"Updates a shipment details","tags":["Shipments"]}},"/shipments/v4/{shipmentId}/{segmentId}":{"get":{"description":"Gets details of a segment identified by the `segmentId`.\n","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Segment details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.434Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.434Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"}}},"description":"Success.\n\nThe segment information was returned\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 a segment details","tags":["Shipments"]},"parameters":[{"in":"path","name":"shipmentId","required":true,"schema":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},{"in":"path","name":"segmentId","required":true,"schema":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}}],"patch":{"description":"Updates details of a segment identified by the `segmentId`.\n\nThis is a partial update, meaning that only the provided fields\nwill be updated.\n\nChanging the status of a segment affects the statuses of other segments in the shipment. The\nfollowing status changes are allowed:\n* `pending` → `ongoing`\n  * changes previous `pending` segments to `cancelled`\n  * changes previous `ongoing` segment to `completed` (only for the immediate predecessor of\n    this segment)\n  * changes previous `ongoing` segment to `cancelled` (for segments that are not immediate\n    predecessors of this segment)\n  * previous segments in `cancelled` or `completed` states are not affected\n* `pending` || `ongoing` → `cancelled`\n  * no changes for other segments\n* `ongoing` → `completed`\n  * next segment with status `pending` is changed to `ongoing`\n\n***Note***:\n`trackingId` can be updated through this API call only if the segment is in `pending` state.\n","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","name":"Truck transport","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for the segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"}}}},"responses":{"204":{"description":"Successful (no content)\n\nThe segment information was updated\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":"Updates a segment details","tags":["Shipments"]}},"/shipments/v4/{trackingId}/segments":{"get":{"description":"Gets all segments that are assigned to the device with `trackingId` or `shipmentId`.\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":"limit","required":false,"schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Filter the results by segment status","in":"query","name":"status","required":false,"schema":{"enum":["pending","ongoing","completed","cancelled"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"description":"Segment details with shipmentId","properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"type":"object"}}},"description":"Success.\n\nThe segment information was returned\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 segments assigned to a device","tags":["Shipments"]},"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"}}]},"/traces/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":["Traces"]}},"/traces/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":["Traces"]}},"/traces/v2/{trackingId}":{"delete":{"description":"Deletes all the device `trackingId` traces.\n\nThis will also trigger deletion of the entire event history of the device.\n","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`.","maxLength":50,"minLength":1,"type":"string"}}],"responses":{"204":{"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"}},"security":[{"Bearer":[]}],"summary":"Deletes all the device traces and events","tags":["Traces"]},"get":{"description":"Gets all traces of the device `trackingId` that were recorded within the specified time range. \nThe range is defined with `before` and `after` parameters.\nThe returned traces are sorted in descending order based on their timestamps.\n\nNOTE:\nBy default, the `after` parameter value is 0, and the `before` parameter is set to the current\nsystem time.\nAlways make sure to specify `before` and `after` parameters explicitly, as otherwise it may take \na very long time for the API call to complete.\n\nIf the `trackingId` is substituted with a valid `shipmentId`, the response\ncontains a composition of traces of each shipment segment. \nTraces are only fetched for those segments that are either in `ongoing` or `completed` state.\n\nThe `outliers` parameter can be used to select only traces that have\nbeen marked as outliers (if the parameter value is `true`), or only traces\nthat have not been marked as outliers (if the parameter value is `false`).\nIf the `outliers` parameter is not present, all the traces will be returned.\n\nThe `count` and `pageToken` parameters are used for pagination.\n","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":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\nThe accepted range is from 1 to the current time.\n","in":"query","name":"before","required":false,"schema":{"minimum":1,"type":"number"}},{"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"}},{"description":"Flag specifying if only outliers (`true`) or only nonoutliers (`false`)\nare to be returned. If the parameter is not present both nonoutlier\nand outlier traces are returned.\n","in":"query","name":"outliers","required":false,"schema":{"type":"boolean"}},{"description":"Tracker mode.\n","in":"query","name":"mode","required":false,"schema":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"}},{"description":"Flag telling if smoothed traces (true) or non-smoothed (false)\ntraces should get returned. By default the traces are not smoothed.\n\nThe smoothing will have an effect on to the stationary trace points only.\n","in":"query","name":"smooth","required":false,"schema":{"type":"boolean"}},{"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 records per page.","in":"query","name":"count","required":false,"schema":{"default":1000,"maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{},"type":"object"},{"properties":{"data":{"items":{"description":"A trace sample reported by the device.","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"serverTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThis describes when the measurements were processed by the backend.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nSpecifies the time the device telemetry measurements were taken.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"trackingDisabled":{"description":"Array containing the properties that were removed from the original device data as per disableTracking property in the device shadow. `position` refers to all positioning data and `sensors` to all reported sensor data.\n","items":{"enum":["position","sensors","bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps","accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"}],"description":"The response body contains an array of traces, `count` is the number of\nreturned items and `pageToken` is the next page token if available.\n\nIf no traces are found, an object with an empty data array is returned.\n\nTraces are sorted in descending order based on their timestamps.\n","example":{"count":2,"data":[{"payload":{},"position":{"accuracy":"25","alt":"86","altaccuracy":"96","lat":"52.4988217","lng":"13.35170005"},"serverTimestamp":1451425709682,"system":{"client":{"firmware":"10.1.1","hasAttachSensor":true,"hasHumiditySensor":true,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"manufacturer":"CONCOX","model":"AT4H","name":"MT2503","platform":"MT6261","version":"10.0.16"},"reportedSensorData":{"batteryLevel":100,"deviceIsAttached":true,"deviceIsStationary":true,"deviceIsTampered":false,"pressureHpa":994.342,"relativeHumidity":31.39,"temperatureC":24.48}},"timestamp":1451425708571},{"payload":{"refAppData":{"batteryState":{"charging":false,"level":61,"temperature":26.9},"nwpos":true}},"position":{"accuracy":"25","alt":"86","altaccuracy":"96","lat":"52.4988217","lng":"13.35170005"},"serverTimestamp":1451425710434,"system":{"reportedSensorData":{"batteryLevel":100,"deviceIsAttached":true,"deviceIsStationary":true,"deviceIsTampered":false,"pressureHpa":994.416,"relativeHumidity":31.37,"temperatureC":24.46}},"timestamp":1451425708216}],"pageToken":"1490376144514"}}}},"description":"Successful.\n\nThe response body contains an array of traces within the\ngiven time range (`after` <= timestamp <= `before`).\n\nTraces are sorted in descending order based on their timestamps.\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 traces within a specified time range","tags":["Traces"]},"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":"Application identifier. Used together with an external ID to identify a virtual device.","in":"query","name":"appId","required":false,"schema":{"minLength":8,"type":"string"}}]},"/transitions/v2/devices/{trackingId}":{"get":{"deprecated":true,"description":"Gets all transitions that were recorded within a specific time range.\nDefine the range with `before` and `after` parameters.\nThe returned transitions are listed in descending order based on their timestamps.\n\nNote:\n---\nBy default, the `after` parameter value is 0, and the `before` parameter is set to the current\nsystem time. \nAlways make sure to specify `before` and `after` parameters explicitly, as otherwise it may \ntake a very long time for an API call to complete.\n\nThe `count` and `pageToken` parameters are used for pagination.\n","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"}},{"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`.","maxLength":50,"minLength":1,"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"}},{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\nThe accepted range is from 1 to the current time.\n","in":"query","name":"before","required":false,"schema":{"minimum":1,"type":"number"}},{"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"}},{"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"}}],"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":{"additionalProperties":false,"description":"| Transition Type          | Meaning                                  |\n| ------------------------ | ---------------------------------------- |\n| PING_OUTSIDE_FENCE       | The device has transitioned outside the geofence. |\n| PING_IN_FENCE            | The device has transitioned inside the geofence. |\n","example":{"geofence":"{ \"name\": \"Berlin Office\", \"type\": \"circle\", \"definition\": { \"center\": { \"lat\": 52.5308398, \"lng\": 13.38490035}, \"radius\": 100 }, \"description\": \"An area in berlin\" }","geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_IN_FENCE","notificationStatus":"NOT_SENT","timestamp":1499258057036,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"},"properties":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type"],"title":"POI","type":"object"}]},"geofenceId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"inOut":{"enum":["PING_OUTSIDE_FENCE","PING_IN_FENCE"],"type":"string"},"notificationStatus":{"enum":["SENT","NOT_SENT"],"type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["inOut","geofenceId","trackingId","timestamp","notificationStatus"],"type":"object"},"type":"array"}},"type":"object"}],"description":"The response body contains an array of transitions, `count` is the number of\nreturned items and `pageToken` is the next page token if available.\n\nIf no transitions are found, an object with an empty data array is\nreturned.\n\nTransitions are sorted in descending order based on their timestamps.\n","example":{"count":2,"data":[{"geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_OUTSIDE_FENCE","notificationStatus":"SENT","timestamp":1499258184142,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"},{"geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_IN_FENCE","notificationStatus":"NOT_SENT","timestamp":1499258057035,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"}],"pageToken":"1234abcd"}}}},"description":"Successful\n\nThe response body contains an array of transitions, `count` is the number of\nreturned items and `pageToken` is the next page token if available.\n\nIf no transitions are found, an object with an empty data array is\nreturned.\n\nTransitions are sorted in descending order based on their timestamps.\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","message":"The trackingId 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":"TrackingId not found."}},"security":[{"Bearer":[]}],"summary":"Gets transitions for a device","tags":["Transitions"]}},"/transitions/v2/health":{"get":{"deprecated":true,"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":["Transitions"]}},"/transitions/v2/version":{"get":{"deprecated":true,"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":["Transitions"]}},"/users/v2/devices":{"get":{"description":"Gets all devices claimed by a project.","parameters":[{"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":"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"}}],"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":{"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"},"shadow":{"description":"The data that Shadows persists for each device.\n","properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}},"type":"object"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}]}}},"description":"Success\n\nThe search was performed and the results were returned.\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 devices claimed by a project","tags":["Users"]},"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"}}]},"/users/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":["Users"]}},"/users/v2/login":{"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"}}],"post":{"description":"Authenticates a user with an email and a password and gets a user access token upon the successful authentication.\nThe user email must be registered with a valid [HERE Account](https://account.here.com).\nOptionally user can provide requested realm ID.\n","requestBody":{"content":{"application/json":{"schema":{"description":"An object containing user's email address, password and (optionally) requested realm ID.","properties":{"email":{"description":"The email address of the user","minLength":1,"type":"string"},"password":{"description":"The password of the user","minLength":1,"type":"string"},"realm":{"description":"A case-insensitive requested realm ID","minLength":1,"type":"string"}},"required":["email","password"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","expiresIn":86400,"realm":"here","refreshToken":"5qlkthf8mgl5lsrn8br5vdisco","userId":"HERE-12345678-9abc-4def-0123-456789abcdef"},"properties":{"accessToken":{"type":"string"},"expiresIn":{"description":"The lifetime in seconds of the access token.\nFor example 86400 means the token will expire in 24 hours from the time the response was generated.\n","type":"integer"},"realm":{"description":"Current realm ID","type":"string"},"refreshToken":{"type":"string"},"tokenType":{"description":"The token type is bearer","type":"string"},"userId":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"}}},"description":"Success\n\nThe authentication was successful and a valid access token was returned.\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"}},"summary":"Gets a user access token","tags":["Users"]}},"/users/v2/refresh":{"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"}}],"post":{"description":"Gets a new valid user access token for a given previous access token and a refresh token.","requestBody":{"content":{"application/json":{"schema":{"description":"An object containing an accessToken and a refreshToken","properties":{"accessToken":{"description":"The access token obtained in a previous login","minLength":1,"type":"string"},"refreshToken":{"description":"The refresh token obtained in a previous login","minLength":1,"type":"string"}},"required":["accessToken","refreshToken"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","expiresIn":86400,"realm":"here","refreshToken":"5qlkthf8mgl5lsrn8br5vdisco","userId":"HERE-12345678-9abc-4def-0123-456789abcdef"},"properties":{"accessToken":{"type":"string"},"expiresIn":{"description":"The lifetime in seconds of the access token.\nFor example 86400 means the token will expire in 24 hours from the time the response was generated.\n","type":"integer"},"realm":{"description":"Current realm ID","type":"string"},"refreshToken":{"type":"string"},"tokenType":{"description":"The token type is bearer","type":"string"},"userId":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"}}},"description":"Success\n\nThe authentication was successful and a valid access token was returned.\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"}},"summary":"Gets a renewed user access token","tags":["Users"]}},"/users/v2/tokenExchange":{"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"}}],"post":{"description":"Takes user access token, requested scope and returns project-scoped user access token.\n","requestBody":{"content":{"application/json":{"schema":{"description":"An object containing user access token and requested scope of the access token.","example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","scope":"hrn:here:authorization::myrealm:project/my-project-0000"},"properties":{"accessToken":{"description":"HERE Account user access token, obtained from login endpoint.","minLength":1,"type":"string"},"scope":{"description":"Requested scope of the access token. Must be an HRN identifying a project that the identified user has access to.","minLength":1,"type":"string"}},"required":["accessToken","scope"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","expiresIn":86400,"issuedTokenType":"urn:ietf:params:oauth:token-type:access_token","scope":"hrn:here:authorization::myrealm:project/my-project-0000","tokenType":"Bearer"},"properties":{"accessToken":{"description":"Project-scoped access token.","type":"string"},"expiresIn":{"description":"The lifetime in seconds of the access token.\nFor example 86400 means the token will expire in 24 hours from the time the response was generated.\n","type":"integer"},"issuedTokenType":{"description":"The type of token issued when grantType is \"urn:ietf:params:oauth:grant-type:token-exchange\".","type":"string"},"scope":{"description":"Requested scope of the access token. Must be an HRN identifying a project that the identified user has access to.","type":"string"},"tokenType":{"description":"The token type is 'Bearer'.","type":"string"}},"type":"object"}}},"description":"Success\n\nThe exchange was successful and a valid scoped access token was returned.\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"}},"summary":"Gets a project-scoped user access token","tags":["Users"]}},"/users/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":["Users"]}},"/v2/":{"post":{"description":"Devices can use this end point to ingest data into HERE Tracking,\nin the same way as via the `/v3` endpoint.\n\nA device uses its access token obtained via the the `/v2/token` endpoint\nto send telemetry – GPS position, sensor readings, WLAN or Bluetooth scans - to HERE Tracking.\n\nBy default the request is synchronous and the response will be\nthe device `desired` shadow. If the request is set\nto be asynchronous, the response will be empty.\n\nThe device position gets resolved based on the `position` and `scan` objects\nprovided in the request body (see the objects definitions for details).\nIf only `position` is provided, it will be used as the device position.\nIf only `scan` is provided, the position will be resolved asynchronously\nvia the HERE Positioning API after returning a response.\nIf both are provided, `scan` is resolved to a position via the HERE Positioning API,\nand the better of the two positions (provided vs. resolved) will be selected.\nIf neither `position` nor `scan` is provided, or if the HERE Positioning API is not able to\nresolve the position, the device position will be left empty.\n\nThe `reported` shadow will be updated with the device latest position information,\nsensor readings and settings ingested by the device.\nThe reported shadow may also contain additional properties generated by HERE\nTracking based on the device-ingested telemetry.\nSuch properties are stored in the `system.computed` property of the shadow.\nThe device shadow can be queried via the `shadows/v2/{trackingId}` endpoint.\n\nThe data ingested by the device will be available as a device trace via the `traces/v2/{trackingId}` endpoint.\n","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"}},{"example":"Bearer h1.yxPIksZ0ViLq77f1Nh-9cg.NVgGBZVlCU8G7kjV_...","in":"header","name":"authorization","required":true,"schema":{"type":"string"}},{"description":"If set to `true`, ingests the device data and responds immediately with an empty response body.","in":"query","name":"async","required":false,"schema":{"default":false,"type":"boolean"}}],"requestBody":{"content":{"application/json":{"example":[{"scan":{"gsm":[{"cid":16504,"lac":5126,"mcc":262,"mnc":1,"nmr":[{"bcch":82,"bsic":6},{"bcch":85,"bsic":7},{"bcch":93,"bsic":12},{"bcch":88,"bsic":13},{"bcch":88,"bsic":19}]}]},"timestamp":1515169948976}],"schema":{"items":{"properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"scan":{"description":"Radio measurements used for positioning or radio map contribution.\n","properties":{"bt":{"description":"Bluetooth access points","items":{"description":"Bluetooth measurement. In addition to rss, one of mac, eddystoneId, or iBeaconId is required.","properties":{"eddystoneId":{"description":"Full Identifier as Base64 string. A combination of 10-byte Namespace component and a 6-byte Instance component","maxLength":24,"minLength":24,"type":"string"},"iBeaconId":{"description":"Full Identifier as Base64 string. A combination of 16-byte UUID + 2-byte major + 2-byte minor","maxLength":28,"minLength":28,"type":"string"},"mac":{"description":"The MAC address of the Bluetooth access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. For privacy reasons positioning based on a single Bluetooth AP is not possible. There must be at least one other matching WLAN or Bluetooth access point. Either MAC, EddystoneId, or iBeaconId is required.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"rss":{"description":"Received signal strength (dBm) at the terminal","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the measurement (UTC)","format":"date-time","type":"string"}},"required":["rss"],"type":"object"},"maxItems":128,"type":"array"},"cdma":{"description":"CDMA cells","items":{"description":"CDMA measurement","properties":{"baselat":{"description":"Base station latitude (Optional)","maximum":90,"minimum":-90,"type":"number"},"baselng":{"description":"Base station longitude (Optional)","maximum":180,"minimum":-180,"type":"number"},"bsid":{"description":"Base Station ID, BID","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency (Optional, you must specify a value for this item when you specify a value for pnoffset)","maximum":2047,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"nmr":{"description":"CDMA Network measurements (Optional)","items":{"description":"CDMA Network measurement","properties":{"bsid":{"description":"Base Station ID (Optional)","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency","maximum":2047,"minimum":0,"type":"integer"},"frequency":{"description":"Deprecated. Use 'channel' instead.","maximum":2047,"minimum":0,"type":"integer"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset","maximum":511,"minimum":0,"type":"integer"}},"required":["pnoffset","channel"],"type":"object"},"maxItems":32,"type":"array"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset (Optional, you must specify a value for this item when you specify a value for channel)","maximum":511,"minimum":0,"type":"integer"},"rz":{"description":"Registration zone (Optional)","maximum":4095,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["sid","nid","bsid"],"type":"object"},"maxItems":16,"type":"array"},"country":{"description":"Indicates in which country the WLAN APs are located (in case cell data is not present in radio_observations)","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"}},"required":["mcc"],"type":"object"},"gps":{"description":"Optionally supply this to improve HERE Tracking's positioning service by\ncontributing the scan data along with a GPS position.\n","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"gsm":{"description":"GSM cells (GERAN)","items":{"description":"GSM measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel) (Optional, you must specify a value for this item when you specify a value for bsic).","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code) (Optional, you must specify a value for this item when you specify a value for bcch).","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier, 16 bits. Mcc+mnc+lac+cid uniquely identifies the GSM cell.","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"GSM Network measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel)","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code)","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (Optional)","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"}},"required":["bsic","bcch"],"type":"object"},"maxItems":16,"type":"array"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"},"ta":{"description":"Timing advance (Optional). Expressed in the units of GSM bits equaling to 48/13 μs ~ 1107 meters.","maximum":63,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","lac","cid"],"type":"object"},"maxItems":16,"type":"array"},"lte":{"description":"LTE cells (E-UTRA, 4G)","items":{"description":"LTE measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier, 28 bits (20 bits eNodeB and 8 bits Cell id). Mcc+mnc+cid uniquely identifies the LTE cell, tac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel (Optional, you must specify a value for this item when you specify a value for pci)","maximum":65535,"minimum":0,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"LTE Network measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel","maximum":65535,"minimum":0,"type":"integer"},"pci":{"description":"Physical Cell Identity","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"}},"required":["pci","earfcn"],"type":"object"},"maxItems":16,"type":"array"},"pci":{"description":"Physical Cell Identity (Optional, you must specify a value for this item when you specify a value for earfcn)","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"},"ta":{"description":"Timing Advance (Optional). Expressed in the units of 16*Ts (16 Basic time units) = 16/(15000*2048) seconds ~ 156meters. For reference see TS 36.213 and 36.211.","maximum":1282,"minimum":0,"type":"integer"},"tac":{"description":"Tracking Area Code (Optional)","maximum":65535,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"tdscdma":{"description":"TD-SCDMA cell (UTRA-TDD, 3G UMTS TDD)","items":{"description":"TD-SCDMA measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID) (Optional, you must specify a value for this item when you specify a value for uarfcn).","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the TDSCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"TD-SCDMA Network measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID)","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcn","cellparams"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"ta":{"description":"Timing advance (Optional). Round-Trip distance presented in the units of 4*c/7.68e6 ~156 meters. That is, the scaling factor is 4 times the chip length at chip rate of 7.68 Mchips/s. Note that at chip rates 1.28 Mchips/s and 3.84 Mchips/s you need to scale according to chip length of 7.68 Mchips/s, that is, multiply by 6 or 2 if needed.","maximum":1530,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell (Optional, you must specify a value for this item when you specify a value for cellparams).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wcdma":{"description":"WCDMA cells (UTRA-FDD, 3G UMTS)","items":{"description":"WCDMA measurement","properties":{"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the WCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"WCDMA Network measurement","properties":{"cid":{"description":"UTRAN Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel)","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcndl","psc"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel) (Optional, you must specify a value for this item when you specify a value for uarfcndl).","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell (Optional, you must specify a value for this item when you specify a value for psc).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wlan":{"description":"WLAN access points","items":{"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac"],"type":"object"},"maxItems":128,"type":"array"}},"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nSpecifies the time the device telemetry measurements were taken.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["timestamp"],"type":"object"},"type":"array"}}},"description":"A device telemetry data.\n\nThe timestamp specifies the time in milliseconds at which the device telemetry measurements were taken.\nThis must be within 10 seconds of the timestamp returned by the `/v2/timestamp` endpoint.\n\nExample of a GSM telemetry\n---\n\n```\n[{\n    \"scan\": {\n        \"gsm\": [{\n            \"mcc\": 262,\n            \"mnc\": 1,\n            \"lac\": 5126,\n            \"cid\": 16504,\n            \"nmr\": [\n                { \"bsic\": 6, \"bcch\": 82 },\n                { \"bsic\": 7, \"bcch\": 85 },\n                { \"bsic\": 12, \"bcch\": 93 },\n                { \"bsic\": 13, \"bcch\": 88 },\n                { \"bsic\": 19, \"bcch\": 88 }\n            ]\n        }]\n    },\n    \"payload\": {\n        \"sensor\": \"data\"\n    },\n    \"timestamp\": 1515169948976\n}]\n```\n\nExample of a WLAN telemetry\n---\n\n```\n[{\n    \"scan\": {\n        \"wlan\": [\n            { \"mac\": \"1c:1d:86:07:01:0f\", \"powrx\": -45 },\n            { \"mac\": \"e4:f4:c6:d9:85:59\", \"powrx\": -39 },\n            { \"mac\": \"1c:1d:86:07:01:0d\", \"powrx\": -43 },\n            { \"mac\": \"1c:1d:86:07:01:0b\", \"powrx\": -44 },\n            { \"mac\": \"1c:1d:86:07:01:04\", \"powrx\": -58 },\n            { \"mac\": \"1c:1d:86:07:01:03\", \"powrx\": -59 }\n        ]\n    },\n    \"payload\": {\n        \"sensor\": \"data\"\n    },\n    \"timestamp\": 1515169948976\n}]\n```\n"},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}}},"description":"Successful\n\nThe device data was ingested and processed successfully and the `desired` shadow\nwas returned.\n\nThis response is returned if the `async` query parameter was not set to `true`.\n"},"204":{"description":"Successful (no content).\n\nThe device data was ingested successfully and the response is empty.\nThis response is returned if the `async` query parameter was set to `true`.\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"},"413":{"content":{"application/json":{"example":{"code":413,"details":{"hereErrorCode":413306},"error":"Payload Too Large","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request size exceeds the maximum size limit for payloads."},"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":"Payload Too Large\n\nThe request size exceeds the maximum size limit for payloads.\n"},"429":{"content":{"application/json":{"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":"Rate limited.\n\nWhen a device exceeds the number of requests allowed in plan configured for the `appId`, it will receive \"Too Many Requests\" 429 error code along with following headers:\n\n| header                    | description                               |\n| ------------------------  | ----------------------------------------- |\n| X-RateLimit-Remaining     | The remaining number of requests          |\n| X-RateLimit-Limit         | The allowed number of requests for the `appId` plan |\n| Retry-After               | The number of seconds the device needs to wait before retrying the data ingestion |\n"}},"security":[{"Bearer":[]}],"summary":"Ingests data and receives a shadow","tags":["Ingestion"]}},"/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":["Ingestion"]}},"/v2/timestamp":{"get":{"description":"Returns the current server time in seconds since the UNIX epoch.\nThe server time is used to check the validity of the OAuth 1.0 header of a device data ingestion request.\nDevices must synchronise with the server time to avoid a clock skew.\n\n> Note that in the data ingestion request the timestamp is specified in milliseconds.\n","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"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"timestamp":{"description":"Seconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400,"minimum":2,"type":"integer"}},"type":"object"}}},"description":"OK\n\nThe server timestamp was successfully returned\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"}},"summary":"Gets the current timestamp","tags":["Ingestion"]}},"/v2/token":{"post":{"description":"Authenticates a device to HERE Tracking and requests a device access token.\n\nA device must provide a valid device access token when it sends telemetry to HERE Tracking.\nTokens can be obtained upon a successful device authentication.\n\nThe device token requests must be signed. The signature method uses the OAuth 1.0 standard.\nFor more information on this standard, see the [OAuth Core 1.0](https://oauth.net/core/1.0/) specification.\n\nTokens can be requested only by claimed devices.\nA claimed device license, that is ```deviceId``` and ```deviceSecret``` credential pair, is used for creating a signed token request.\n\n> See the Authentication section for details on how to generate a signed token request.\n> A new signature must be created for each device access token request.\n> Signatures can only be used once.\n","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":"Signed OAuth 1.0 header","example":"OAuth oauth_consumer_key='{deviceId}',oauth_signature_method='HMAC_SHA256',oauth_timestamp='{nowS}',oauth_nonce='{nonce}',oauth_signature='{signature}'","in":"header","name":"authorization","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"example":{"accessToken":"h1.ySDEpBjW2fXM0Nk1IyBohA.6YOv1MfQUd1K7MCg9elZrrVTT5fKfqYECYUrD7Y77d-p9KqIZrVfjpIrkMqVC9MmfUILOm7xk7VuhCH59o0oLJCl6M8Q8cGHTKVrPcpqiEzUQKs7pSZXxVbIui0O5caUgJ3GHrS1X4aZQuB1KSsngvWMcIz0M0a4g4x8bICUHNRbISbQOWNTc7CcxRIJegIlj24dUawrhtnuQh50JUUY2pHYpSh_t8R0AVkm8JO-WEtWW3SZiLa30IR0gz2121vlRjdNolnJYsuJzHoaEKEkrMj9ffybtcBVWo9dkY1qmDQ-DRg_loVenJK45kjHJijkQ902r_vhH8jtoXTrZ1RBFHuZtwLW8xXBw70BCWPu4OYGgthjaq61mpE8iP1s7MG7gbAiW_S249aaoWMUxQN6djw8cNoTP6YPM-ivSieRMxwPl56mhRQ5GRjQa8AYkuOvoCFg-LCMIxTYhrDZM4HFWQ.duHFPjvWUQbdArCL5CU7bTowK5fD07ro83r6CRWjuB_1TK2VyO1lvfNFZIZePWLyTlN0y9uqD7Uro6t87h_a0zfpeU8_529KrB9vgpcBARF5LGBo8Rh7y2islYxCGJ2pAxHADtxkfiZ8TCoEatg0F3jkeggOl8YUFkeaI2g7WtnhZwrXBwW9QizQH3EM_Djnu66-kv_aM-uddpzZJJ7CmrJiwhucaEJeYRDSpuzzZWT6_NwBg6_xLjyseCv5AGs8EmsuStCFP0Ey7UDIqo9V2RA9uDP64Q0mvEw3EUTHmJGHF_8E2s4iIpjKJCvUGsGYAy8XrjeW10EBAMkfrn6cwA","expiresIn":86399},"properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"integer"}},"type":"object"}}},"description":"Successful"},"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":{"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"*Timestamp wrong*\n\nWhen the request timestamp is skewed by more than 10 second from the\nserver time, the `x-here-timestamp` header with the current server\ntimestamp is added to the response.\n\n*Incorrect Signature*\n\nIf the OAuth signature is incorrect, the response code will be 401,\nand *no* `x-here-timestamp` header will be added.\n","headers":{}},"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":{"examples":{"response":{"value":{"code":404,"error":"No license found for the given deviceId.","id":"e69ce7d3-82f2-43cd-95b4-4402f98c9a61"}}},"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"Invalid license"},"412":{"content":{"application/json":{"examples":{"response":{"value":{"code":412,"error":"Device has not been claimed.","id":"e69ce7d3-82f2-43cd-95b4-4402f98c9a61"}}},"schema":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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":"Unclaimed Device\n\nIf the device ID is valid but the device has not yet been claimed by an owner, an error response will be returned.\n"}},"security":[{"signedRequest":[]}],"summary":"Requests a token for a registered device","tags":["Ingestion"]}},"/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":["Ingestion"]}},"/v3/":{"post":{"description":"Devices can use this end point to ingest data into HERE Tracking.\n\nA device uses its access token obtained via the the `/v2/token` endpoint\nto send telemetry – GPS position, sensor readings, WLAN or Bluetooth scans - to HERE Tracking.\n\nAlso device owners use this end point to ingest data on behalf of a device.\n\nThe device can be either a real or a virtual device.\nA real device is identified by a `trackingId` assigned to it when the device was claimed.\nA virtual device is identified by an external device ID and the owner's project `appId`.\n\nIn case the ingestion is done by a device owner, the owner should first authenticate himself with\nHERE Tracking and obtain a user access token via the `/users/v2/login` endpoint.\nThe user access token will then be used in this API call.\n\nBy default the request is synchronous and the response will be\nthe device `desired` shadow. If the request is set\nto be asynchronous, the response will be empty.\n\nThe device position gets resolved based on the `position` and `scan` objects\nprovided in the request body (see the objects definitions for details).\nIf only `position` is provided, it will be used as the device position.\nIf only `scan` is provided, the position will be resolved asynchronously\nvia the HERE Positioning API after returning a response.\nIf both are provided, `scan` is resolved to a position via the HERE Positioning API,\nand the better of the two positions (provided vs. resolved) will be selected.\nIf neither `position` nor `scan` is provided, or if the HERE Positioning API is not able to\nresolve the position, the device position will be left empty.\n\nThe `reported` shadow will be updated with the device latest position information,\nsensor readings and settings ingested by the device.\nThe reported shadow may also contain additional properties generated by HERE\nTracking based on the device-ingested telemetry.\nSuch properties are stored in the `system.computed` property of the shadow.\nThe device shadow can be queried via the `shadows/v2/{trackingId}` endpoint.\n\nThe data ingested by the device will be available as a device trace via the `traces/v2/{trackingId}` endpoint.\n","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"}},{"example":"Bearer h1.yxPIksZ0ViLq77f1Nh-9cg.NVgGBZVlCU8G7kjV_...","in":"header","name":"authorization","required":true,"schema":{"type":"string"}},{"description":"If set to `true`, ingests the device data and responds immediately with an empty response body.","in":"query","name":"async","required":false,"schema":{"default":false,"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"appId":"MyAppId123","data":[{"scan":{"gsm":[{"cid":16504,"lac":5126,"mcc":262,"mnc":1,"nmr":[{"bcch":82,"bsic":6},{"bcch":85,"bsic":7},{"bcch":93,"bsic":12},{"bcch":88,"bsic":13},{"bcch":88,"bsic":19}]}]},"timestamp":1515169948976}],"id":"MyDevice1"},"properties":{"appId":{"description":"The user's project appId. Used together with an external ID to identify the virtual device.","type":"string"},"data":{"items":{"properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"scan":{"description":"Radio measurements used for positioning or radio map contribution.\n","properties":{"bt":{"description":"Bluetooth access points","items":{"description":"Bluetooth measurement. In addition to rss, one of mac, eddystoneId, or iBeaconId is required.","properties":{"eddystoneId":{"description":"Full Identifier as Base64 string. A combination of 10-byte Namespace component and a 6-byte Instance component","maxLength":24,"minLength":24,"type":"string"},"iBeaconId":{"description":"Full Identifier as Base64 string. A combination of 16-byte UUID + 2-byte major + 2-byte minor","maxLength":28,"minLength":28,"type":"string"},"mac":{"description":"The MAC address of the Bluetooth access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. For privacy reasons positioning based on a single Bluetooth AP is not possible. There must be at least one other matching WLAN or Bluetooth access point. Either MAC, EddystoneId, or iBeaconId is required.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"rss":{"description":"Received signal strength (dBm) at the terminal","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the measurement (UTC)","format":"date-time","type":"string"}},"required":["rss"],"type":"object"},"maxItems":128,"type":"array"},"cdma":{"description":"CDMA cells","items":{"description":"CDMA measurement","properties":{"baselat":{"description":"Base station latitude (Optional)","maximum":90,"minimum":-90,"type":"number"},"baselng":{"description":"Base station longitude (Optional)","maximum":180,"minimum":-180,"type":"number"},"bsid":{"description":"Base Station ID, BID","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency (Optional, you must specify a value for this item when you specify a value for pnoffset)","maximum":2047,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"nmr":{"description":"CDMA Network measurements (Optional)","items":{"description":"CDMA Network measurement","properties":{"bsid":{"description":"Base Station ID (Optional)","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency","maximum":2047,"minimum":0,"type":"integer"},"frequency":{"description":"Deprecated. Use 'channel' instead.","maximum":2047,"minimum":0,"type":"integer"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset","maximum":511,"minimum":0,"type":"integer"}},"required":["pnoffset","channel"],"type":"object"},"maxItems":32,"type":"array"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset (Optional, you must specify a value for this item when you specify a value for channel)","maximum":511,"minimum":0,"type":"integer"},"rz":{"description":"Registration zone (Optional)","maximum":4095,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["sid","nid","bsid"],"type":"object"},"maxItems":16,"type":"array"},"country":{"description":"Indicates in which country the WLAN APs are located (in case cell data is not present in radio_observations)","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"}},"required":["mcc"],"type":"object"},"gps":{"description":"Optionally supply this to improve HERE Tracking's positioning service by\ncontributing the scan data along with a GPS position.\n","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"gsm":{"description":"GSM cells (GERAN)","items":{"description":"GSM measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel) (Optional, you must specify a value for this item when you specify a value for bsic).","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code) (Optional, you must specify a value for this item when you specify a value for bcch).","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier, 16 bits. Mcc+mnc+lac+cid uniquely identifies the GSM cell.","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"GSM Network measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel)","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code)","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (Optional)","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"}},"required":["bsic","bcch"],"type":"object"},"maxItems":16,"type":"array"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"},"ta":{"description":"Timing advance (Optional). Expressed in the units of GSM bits equaling to 48/13 μs ~ 1107 meters.","maximum":63,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","lac","cid"],"type":"object"},"maxItems":16,"type":"array"},"lte":{"description":"LTE cells (E-UTRA, 4G)","items":{"description":"LTE measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier, 28 bits (20 bits eNodeB and 8 bits Cell id). Mcc+mnc+cid uniquely identifies the LTE cell, tac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel (Optional, you must specify a value for this item when you specify a value for pci)","maximum":65535,"minimum":0,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"LTE Network measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel","maximum":65535,"minimum":0,"type":"integer"},"pci":{"description":"Physical Cell Identity","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"}},"required":["pci","earfcn"],"type":"object"},"maxItems":16,"type":"array"},"pci":{"description":"Physical Cell Identity (Optional, you must specify a value for this item when you specify a value for earfcn)","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"},"ta":{"description":"Timing Advance (Optional). Expressed in the units of 16*Ts (16 Basic time units) = 16/(15000*2048) seconds ~ 156meters. For reference see TS 36.213 and 36.211.","maximum":1282,"minimum":0,"type":"integer"},"tac":{"description":"Tracking Area Code (Optional)","maximum":65535,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"tdscdma":{"description":"TD-SCDMA cell (UTRA-TDD, 3G UMTS TDD)","items":{"description":"TD-SCDMA measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID) (Optional, you must specify a value for this item when you specify a value for uarfcn).","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the TDSCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"TD-SCDMA Network measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID)","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcn","cellparams"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"ta":{"description":"Timing advance (Optional). Round-Trip distance presented in the units of 4*c/7.68e6 ~156 meters. That is, the scaling factor is 4 times the chip length at chip rate of 7.68 Mchips/s. Note that at chip rates 1.28 Mchips/s and 3.84 Mchips/s you need to scale according to chip length of 7.68 Mchips/s, that is, multiply by 6 or 2 if needed.","maximum":1530,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell (Optional, you must specify a value for this item when you specify a value for cellparams).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wcdma":{"description":"WCDMA cells (UTRA-FDD, 3G UMTS)","items":{"description":"WCDMA measurement","properties":{"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the WCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"WCDMA Network measurement","properties":{"cid":{"description":"UTRAN Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel)","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcndl","psc"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel) (Optional, you must specify a value for this item when you specify a value for uarfcndl).","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell (Optional, you must specify a value for this item when you specify a value for psc).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wlan":{"description":"WLAN access points","items":{"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac"],"type":"object"},"maxItems":128,"type":"array"}},"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nSpecifies the time the device telemetry measurements were taken.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["timestamp"],"type":"object"},"type":"array"},"id":{"description":"Tracking ID or application specific external ID, needed only if ingesting on behalf of another device.","maxLength":50,"minLength":1,"type":"string"}},"required":["data"],"type":"object"}}},"description":"A device telemetry data.\n\nThe timestamp specifies the time in milliseconds at which the device telemetry measurements were taken.\nThis must be within 10 seconds of the timestamp returned by the `/v2/timestamp` endpoint.\n\nExample of a GSM telemetry\n---\n\n```\n[{\n    \"scan\": {\n        \"gsm\": [{\n            \"mcc\": 262,\n            \"mnc\": 1,\n            \"lac\": 5126,\n            \"cid\": 16504,\n            \"nmr\": [\n                { \"bsic\": 6, \"bcch\": 82 },\n                { \"bsic\": 7, \"bcch\": 85 },\n                { \"bsic\": 12, \"bcch\": 93 },\n                { \"bsic\": 13, \"bcch\": 88 },\n                { \"bsic\": 19, \"bcch\": 88 }\n            ]\n        }]\n    },\n    \"payload\": {\n        \"sensor\": \"data\"\n    },\n    \"timestamp\": 1515169948976\n}]\n```\n\nExample of a WLAN telemetry\n---\n\n```\n[{\n    \"scan\": {\n        \"wlan\": [\n            { \"mac\": \"1c:1d:86:07:01:0f\", \"powrx\": -45 },\n            { \"mac\": \"e4:f4:c6:d9:85:59\", \"powrx\": -39 },\n            { \"mac\": \"1c:1d:86:07:01:0d\", \"powrx\": -43 },\n            { \"mac\": \"1c:1d:86:07:01:0b\", \"powrx\": -44 },\n            { \"mac\": \"1c:1d:86:07:01:04\", \"powrx\": -58 },\n            { \"mac\": \"1c:1d:86:07:01:03\", \"powrx\": -59 }\n        ]\n    },\n    \"payload\": {\n        \"sensor\": \"data\"\n    },\n    \"timestamp\": 1515169948976\n}]\n```\n"},"responses":{"200":{"content":{"application/json":{"schema":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}}},"description":"Successful\n\nThe device data was ingested and processed successfully and the `desired` shadow\nwas returned.\n\nThis response is returned if the `async` query parameter was not set to `true`.\n"},"204":{"description":"Successful (no content).\n\nThe device data was ingested successfully and the response is empty.\nThis response is returned if the `async` query parameter was set to `true`.\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"},"413":{"content":{"application/json":{"example":{"code":413,"details":{"hereErrorCode":413306},"error":"Payload Too Large","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request size exceeds the maximum size limit for payloads."},"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":"Payload Too Large\n\nThe request size exceeds the maximum size limit for payloads.\n"},"429":{"content":{"application/json":{"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":"Rate limited.\n\nWhen a device exceeds the number of requests allowed in plan configured for the `appId`, it will receive \"Too Many Requests\" 429 error code along with following headers:\n\n| header                    | description                               |\n| ------------------------  | ----------------------------------------- |\n| X-RateLimit-Remaining     | The remaining number of requests          |\n| X-RateLimit-Limit         | The allowed number of requests for the `appId` plan |\n| Retry-After               | The number of seconds the device needs to wait before retrying the data ingestion |\n"}},"security":[{"Bearer":[]}],"summary":"Ingests data for a device and receives a shadow","tags":["Ingestion"]}},"/v3/batch":{"post":{"description":"Device owner use this endpoint to ingest data to HERE Tracking on behalf of multiple devices.\n\nA single request can contain data for multiple devices.\nThe devices can be either real or virtual.\nA real device is identified by a `trackingId` assigned to it when the device was claimed.\nA virtual device is identified by an external device ID and the owner's project `appId`.\n\nPrior to making the request, the device owner should first authenticate himself with\nHERE Tracking and obtain a user access token.\nThe user access token will then be used in this API call.\n\nFor more information on the device position resolution, and the device shadow and trace updates,\nsee the `/v3` endpoint description.\n","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"}},{"example":"Bearer h1.yxPIksZ0ViLq77f1Nh-9cg.NVgGBZVlCU8G7kjV_...","in":"header","name":"authorization","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"example":{"appId":"MyAppId123","data":[{"id":"MyDevice1","scan":{"gsm":[{"cid":16504,"lac":5126,"mcc":262,"mnc":1,"nmr":[{"bcch":82,"bsic":6},{"bcch":85,"bsic":7},{"bcch":93,"bsic":12},{"bcch":88,"bsic":13},{"bcch":88,"bsic":19}]}]},"timestamp":1515169948976},{"id":"MyDevice2","payload":{"sensor":"data"},"scan":{"wlan":[{"mac":"1c:1d:86:07:01:0f","powrx":-45},{"mac":"e4:f4:c6:d9:85:59","powrx":-39},{"mac":"1c:1d:86:07:01:0d","powrx":-43},{"mac":"1c:1d:86:07:01:0b","powrx":-44},{"mac":"1c:1d:86:07:01:04","powrx":-58},{"mac":"1c:1d:86:07:01:03","powrx":-59}]},"timestamp":1515169948976}]},"properties":{"appId":{"description":"The user's project appId. Used together with an external ID to identify the virtual devices.","type":"string"},"data":{"items":{"allOf":[{"properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"scan":{"description":"Radio measurements used for positioning or radio map contribution.\n","properties":{"bt":{"description":"Bluetooth access points","items":{"description":"Bluetooth measurement. In addition to rss, one of mac, eddystoneId, or iBeaconId is required.","properties":{"eddystoneId":{"description":"Full Identifier as Base64 string. A combination of 10-byte Namespace component and a 6-byte Instance component","maxLength":24,"minLength":24,"type":"string"},"iBeaconId":{"description":"Full Identifier as Base64 string. A combination of 16-byte UUID + 2-byte major + 2-byte minor","maxLength":28,"minLength":28,"type":"string"},"mac":{"description":"The MAC address of the Bluetooth access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. For privacy reasons positioning based on a single Bluetooth AP is not possible. There must be at least one other matching WLAN or Bluetooth access point. Either MAC, EddystoneId, or iBeaconId is required.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"rss":{"description":"Received signal strength (dBm) at the terminal","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the measurement (UTC)","format":"date-time","type":"string"}},"required":["rss"],"type":"object"},"maxItems":128,"type":"array"},"cdma":{"description":"CDMA cells","items":{"description":"CDMA measurement","properties":{"baselat":{"description":"Base station latitude (Optional)","maximum":90,"minimum":-90,"type":"number"},"baselng":{"description":"Base station longitude (Optional)","maximum":180,"minimum":-180,"type":"number"},"bsid":{"description":"Base Station ID, BID","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency (Optional, you must specify a value for this item when you specify a value for pnoffset)","maximum":2047,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"nmr":{"description":"CDMA Network measurements (Optional)","items":{"description":"CDMA Network measurement","properties":{"bsid":{"description":"Base Station ID (Optional)","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency","maximum":2047,"minimum":0,"type":"integer"},"frequency":{"description":"Deprecated. Use 'channel' instead.","maximum":2047,"minimum":0,"type":"integer"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset","maximum":511,"minimum":0,"type":"integer"}},"required":["pnoffset","channel"],"type":"object"},"maxItems":32,"type":"array"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset (Optional, you must specify a value for this item when you specify a value for channel)","maximum":511,"minimum":0,"type":"integer"},"rz":{"description":"Registration zone (Optional)","maximum":4095,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["sid","nid","bsid"],"type":"object"},"maxItems":16,"type":"array"},"country":{"description":"Indicates in which country the WLAN APs are located (in case cell data is not present in radio_observations)","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"}},"required":["mcc"],"type":"object"},"gps":{"description":"Optionally supply this to improve HERE Tracking's positioning service by\ncontributing the scan data along with a GPS position.\n","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"gsm":{"description":"GSM cells (GERAN)","items":{"description":"GSM measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel) (Optional, you must specify a value for this item when you specify a value for bsic).","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code) (Optional, you must specify a value for this item when you specify a value for bcch).","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier, 16 bits. Mcc+mnc+lac+cid uniquely identifies the GSM cell.","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"GSM Network measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel)","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code)","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (Optional)","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"}},"required":["bsic","bcch"],"type":"object"},"maxItems":16,"type":"array"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"},"ta":{"description":"Timing advance (Optional). Expressed in the units of GSM bits equaling to 48/13 μs ~ 1107 meters.","maximum":63,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","lac","cid"],"type":"object"},"maxItems":16,"type":"array"},"lte":{"description":"LTE cells (E-UTRA, 4G)","items":{"description":"LTE measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier, 28 bits (20 bits eNodeB and 8 bits Cell id). Mcc+mnc+cid uniquely identifies the LTE cell, tac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel (Optional, you must specify a value for this item when you specify a value for pci)","maximum":65535,"minimum":0,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"LTE Network measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel","maximum":65535,"minimum":0,"type":"integer"},"pci":{"description":"Physical Cell Identity","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"}},"required":["pci","earfcn"],"type":"object"},"maxItems":16,"type":"array"},"pci":{"description":"Physical Cell Identity (Optional, you must specify a value for this item when you specify a value for earfcn)","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"},"ta":{"description":"Timing Advance (Optional). Expressed in the units of 16*Ts (16 Basic time units) = 16/(15000*2048) seconds ~ 156meters. For reference see TS 36.213 and 36.211.","maximum":1282,"minimum":0,"type":"integer"},"tac":{"description":"Tracking Area Code (Optional)","maximum":65535,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"tdscdma":{"description":"TD-SCDMA cell (UTRA-TDD, 3G UMTS TDD)","items":{"description":"TD-SCDMA measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID) (Optional, you must specify a value for this item when you specify a value for uarfcn).","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the TDSCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"TD-SCDMA Network measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID)","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcn","cellparams"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"ta":{"description":"Timing advance (Optional). Round-Trip distance presented in the units of 4*c/7.68e6 ~156 meters. That is, the scaling factor is 4 times the chip length at chip rate of 7.68 Mchips/s. Note that at chip rates 1.28 Mchips/s and 3.84 Mchips/s you need to scale according to chip length of 7.68 Mchips/s, that is, multiply by 6 or 2 if needed.","maximum":1530,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell (Optional, you must specify a value for this item when you specify a value for cellparams).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wcdma":{"description":"WCDMA cells (UTRA-FDD, 3G UMTS)","items":{"description":"WCDMA measurement","properties":{"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the WCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"WCDMA Network measurement","properties":{"cid":{"description":"UTRAN Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel)","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcndl","psc"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel) (Optional, you must specify a value for this item when you specify a value for uarfcndl).","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell (Optional, you must specify a value for this item when you specify a value for psc).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wlan":{"description":"WLAN access points","items":{"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac"],"type":"object"},"maxItems":128,"type":"array"}},"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nSpecifies the time the device telemetry measurements were taken.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["timestamp"],"type":"object"},{"properties":{"id":{"description":"Tracking ID or application specific external ID.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"}]},"type":"array"}},"required":["data"],"type":"object"}}},"description":"See GSM and WLAN telemetry examples in the `/v3` endpoint description."},"responses":{"204":{"description":"Successful (no content)\n\nThe device data was ingested successfully.\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"},"413":{"content":{"application/json":{"example":{"code":413,"details":{"hereErrorCode":413306},"error":"Payload Too Large","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee-lds2","message":"The request size exceeds the maximum size limit for payloads."},"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":"Payload Too Large\n\nThe request size exceeds the maximum size limit for payloads.\n"},"429":{"content":{"application/json":{"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":"Rate limited.\n\nWhen a device exceeds the number of requests allowed in plan configured for the `appId`, it will receive \"Too Many Requests\" 429 error code along with following headers:\n\n| header                    | description                               |\n| ------------------------  | ----------------------------------------- |\n| X-RateLimit-Remaining     | The remaining number of requests          |\n| X-RateLimit-Limit         | The allowed number of requests for the `appId` plan |\n| Retry-After               | The number of seconds the device needs to wait before retrying the data ingestion |\n"}},"security":[{"Bearer":[]}],"summary":"Ingests data for multiple devices","tags":["Ingestion"]}},"/v3/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":["Ingestion"]}},"/v3/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":["Ingestion"]}}},"components":{"schemas":{"abortFlag":{"default":false,"description":"Flag telling if the data upload should be aborted","type":"boolean"},"addConnectorExternalDevices":{"items":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"}},"required":["externalDeviceId"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"},"addDevicesRequestBody":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name"],"title":"Unprovisioned device","type":"object"},{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","deviceId"],"title":"Provisioned device","type":"object"},{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","externalId"],"title":"Virtual device","type":"object"},{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","externalDeviceId","connectorId"],"title":"External cloud device","type":"object"}]},"title":"Add devices","type":"array"},"addDevicesRequestBodyExternalCloudVariant":{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","externalDeviceId","connectorId"],"title":"External cloud device","type":"object"},"addDevicesRequestBodyExternalDeviceVariant":{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","externalId"],"title":"Virtual device","type":"object"},"addDevicesRequestBodyProvisionedVariant":{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name","deviceId"],"title":"Provisioned device","type":"object"},"addDevicesRequestBodyUnprovisionedVariant":{"additionalProperties":false,"properties":{"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"name":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"tags":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"type":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"}},"required":["name"],"title":"Unprovisioned device","type":"object"},"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"areaBased":{"default":false,"description":"True if device should be configured to be in area based mode.\nArea based mode can be set to true only if device has maximum of 3 associated geofences.\n","type":"boolean"},"associationConfig":{"additionalProperties":false,"properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"availableDriversInfo":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"example":{"autoProvisionCallbackDevices":true,"driverId":"my-driver-1-id","driverSyncMethod":"pull","driverType":"internal","externalCloudInfoSchema":[{}],"provider":"External Cloud 1","strategy":{"managerId":"my-manager-1-id","name":"my-manager-1"},"version":0},"properties":{"autoProvisionCallbackDevices":{"description":"If true, it indicates that this one is a self-provisioning callback driver.","type":"boolean"},"driverId":{"description":"Identifier of the driver.","maxLength":50,"minLength":1,"type":"string"},"driverSyncMethod":{"description":"Driver synchronization method","enum":["push","pull","none"],"type":"string"},"driverType":{"description":"Driver type.","enum":["tracker-device","transporter","internal"],"type":"string"},"externalCloudInfoSchema":{"items":{"properties":{"hidden":{"description":"Indicates whether cloud info parameter is hidden.","type":"boolean"},"key":{"description":"Key of external cloud info parameter.","maxLength":100,"type":"string"},"label":{"description":"Label of external cloud info parameter.","type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"provider":{"description":"Name/description of the external cloud that the driver represents.\n","type":"string"},"strategy":{"properties":{"managerId":{"description":"Identifier of the manager.","maxLength":50,"minLength":1,"type":"string"},"name":{"description":"A strategy name","type":"string"}},"type":"object"},"version":{"description":"Version number of the driver.","type":"integer"}},"required":["driverId","provider","driverType","driverSyncMethod","externalCloudInfoSchema","version","strategy"],"title":"driverInfo","type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"batchCreateBody":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to associate with the shipment or device.","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"batchDeleteBody":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to disassociate from the shipment or device.","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"batchProvisionedAndClaimedDevice":{"additionalProperties":false,"description":"A JSON object containing the newly created device credentials","example":{"deviceId":"4cdafa38-fdf9-474c-8eb3-72ea276a163a","deviceSecret":"AGIhZGmU1jJS-H1ZfAZuh5U9cswyqquWVrbOKGwKN9s","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"deviceId":{"description":"A newly created device ID. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"externalId":{"description":"Virtual device external ID, only present when provisioning virtual devices.","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["deviceId"],"type":"object"},"batchUpdateDeviceAssociationsBody":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to disassociate\n(oldRules) from and associate (newRules) to the devices identified\nin trackingIds array.\n","properties":{"newRules":{"additionalProperties":false,"description":"Rules to be associated to the devices","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"oldRules":{"additionalProperties":false,"description":"Rules to be disassociated from the devices","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"trackingIds":{"description":"Array of tracking IDs (external IDs are also permitted here)","items":{"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`.","maxLength":50,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"}},"required":["trackingIds","oldRules","newRules"],"type":"object"},"batchUpdateShipmentAssociationsBody":{"additionalProperties":false,"description":"Body containing arrays of ruleIds and geofenceIds to disassociate\n(oldRules) from and associate (newRules) to the shipments identified\nin shipmentIds array.\n","properties":{"newRules":{"additionalProperties":false,"description":"Rules to be associated to the shipments","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"oldRules":{"additionalProperties":false,"description":"Rules to be disassociated from the shipments","properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"shipmentIds":{"description":"Array of shipment IDs","items":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"type":"array"}},"required":["shipmentIds","oldRules","newRules"],"type":"object"},"booleanCount":{"allOf":[{"properties":{"FALSE_TO_TRUE":{"description":"Number of devices currently in this event state.\n","type":"number"},"TRUE_TO_FALSE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["attach","tamper","online"],"type":"string"}},"required":["eventSource","TRUE_TO_FALSE","FALSE_TO_TRUE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"attach, tamper, online"},"channelType":{"description":"The type of notification channel.","enum":["webhook","email","browserPull"],"type":"string"},"circle":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"claimedDevice":{"additionalProperties":false,"example":{"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"commonDeviceCounts":{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]},"completeConnectorInfo":{"allOf":[{"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"projectId":{"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"}},"type":"object"},{"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"},{"properties":{"lastExecTs":{"description":"Timestamp of the last connection execution.","maxLength":50,"type":"string"}},"type":"object"},{"properties":{"totalAddedDevices":{"description":"Number of external devices added to the connector.","minimum":0,"type":"integer"}},"required":["totalAddedDevices"],"type":"object"},{"properties":{"createdAt":{"description":"Timestamp of the connector creation.","format":"date-time","type":"string"}},"required":["createdAt"],"type":"object"}]},"connectorExecStats":{"properties":{"isRunning":{"description":"The result of checking if connector is currently running.","type":"boolean"},"lastExecTs":{"description":"Timestamp of the last connector execution time.","format":"date-time","type":"string"}},"required":["isRunning"],"type":"object"},"connectorExternalDevices":{"items":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"},"info":{"description":"Extra information regarding the device's provisioning status at HERE Tracking Cloud.\nIt also contains an error object if the device failed provisioning.\n","type":"object"},"localDeviceId":{"description":"Device id in TC. Either trackingId or shipmentId.","maxLength":50,"minLength":1,"type":"string"},"provisioning":{"description":"Current device status from HERE Tracking Cloud's perspective.\n\"provisioning\": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.\n\"provisioned\": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.\n\"failed\": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.\n","enum":["provisioning","provisioned","failed"],"type":"string"}},"required":["externalDeviceId","provisioning","enabled"],"type":"object"},"type":"array"},"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"connectorInfo":{"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"},"connectorLastExecTs":{"properties":{"lastExecTs":{"description":"Timestamp of the last connection execution.","maxLength":50,"type":"string"}},"type":"object"},"country":{"description":"Indicates in which country the WLAN APs are located (in case cell data is not present in radio_observations)","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"}},"required":["mcc"],"type":"object"},"createLocationBody":{"additionalProperties":false,"anyOf":[{"required":["location"]},{"required":["geofenceId"]}],"description":"Body for creating a location.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofence ID associated with the location. A geofence with the specified ID must exist.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"type":"object"},"createResponse":{"additionalProperties":false,"properties":{"jobId":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["jobId"],"type":"object"},"createSegmentBody":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"createSegmentPlanBody":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"createShipmentBody":{"oneOf":[{"additionalProperties":false,"description":"Body for creating a shipment","example":{"autoStart":true,"description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["segments"],"title":"From new","type":"object"},{"additionalProperties":false,"description":"Create shipment from an existing shipment plan","example":{"shipmentDeparture":"2025-08-15T13:52:57.446Z","shipmentPlanId":"SHPP-cfd35027-720f-4196-849b-6e97028b66bd"},"properties":{"shipmentDeparture":{"description":"ETD of the shipment instance. Used to calculate the ETDs and ETAs of all the segments based on the segment durations defined in the plan.","format":"date-time","type":"string"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentPlanId"],"title":"From existing","type":"object"}],"type":"object"},"createShipmentPlanBody":{"oneOf":[{"additionalProperties":false,"example":{"autoStart":true,"description":"A shipment consisting of four segments","name":"From Portugal to Panama","segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["segments"],"title":"From new","type":"object"},{"additionalProperties":false,"example":{"options":{"calculateDurationsFrom":"actuals","copyTrackingIds":true},"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001"},"properties":{"options":{"description":"Optional parameters for plan creation","properties":{"calculateDurationsFrom":{"description":"If defined, the durations of the segments in the plan will be based on the durations of the segments of the provided shipment","enum":["actuals","providedEstimate","calculatedEstimate"],"type":"string"},"copyTrackingIds":{"default":false,"description":"If set to `true`, trackingIds in the segments of the provided shipment are copied to the plan","type":"boolean"}},"type":"object"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentId"],"title":"From existing","type":"object"}],"type":"object"},"createShipmentReportBody":{"additionalProperties":false,"properties":{"endedAfter":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich ended after the provided date.\n","format":"date-time","type":"string"},"endedBefore":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich ended before the provided date.\n","format":"date-time","type":"string"},"shipmentPlanIds":{"description":"Provide array of shipment plan ids to include into the shipment report. If just a single shipment plan id is\ngiven, then the shipment report will include only metrics and shipments for the given shipment plan. If none\nis given, then the shipment report will include all shipment plans.\n","items":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"maxItems":100,"minItems":1,"type":"array"},"startedAfter":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich started after the provided date.\n","format":"date-time","type":"string"},"startedBefore":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich started before the provided date.\n","format":"date-time","type":"string"}},"type":"object"},"createShipmentReportResponse":{"additionalProperties":false,"properties":{"shipmentReportId":{"description":"Shipment report ID","pattern":"^SHPR-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentReportId"],"type":"object"},"createUploadRequest":{"description":"Data upload creation request","example":{"description":"Description for my large data","name":"My large data"},"properties":{"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"createUploadResponse":{"description":"Response to data upload creation request","example":{"dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991"},"properties":{"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["dataId"],"type":"object"},"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"dataCount":{"description":"Number of bytes of the data to download","maximum":10485760,"minimum":1,"type":"integer"},"dataDescription":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"dataName":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"},"dataOffset":{"description":"Byte offset to the data to be downloaded (inclusive, starts at zero)","minimum":0,"type":"integer"},"dataSize":{"description":"Total size of the data in bytes","minimum":0,"type":"integer"},"dataUploadStatus":{"description":"State of the data upload","enum":["preparing","pending","ongoing","completed","failed"],"type":"string"},"dateV4":{"format":"date-time","type":"string"},"deleteDevicesRequestBody":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"trackingId":{"description":"This is a unique ID associated with the device data in HERE Tracking.","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["trackingId"],"title":"Physical devices","type":"object"},{"additionalProperties":false,"properties":{"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["externalId"],"title":"Virtual devices","type":"object"},{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"removeFromConnectorOnly":{"default":false,"description":"If set to true, external device is only removed from the connector but the virtual device\nwill remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c\ndevice, i.e. when `externalDeviceId` and `connectorId` are provided.\n","type":"boolean"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["connectorId","externalDeviceId"],"title":"C2C devices","type":"object"}]},"title":"Delete devices","type":"array"},"deleteDevicesRequestBodyConnectorIdVariant":{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"removeFromConnectorOnly":{"default":false,"description":"If set to true, external device is only removed from the connector but the virtual device\nwill remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c\ndevice, i.e. when `externalDeviceId` and `connectorId` are provided.\n","type":"boolean"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["connectorId","externalDeviceId"],"title":"C2C devices","type":"object"},"deleteDevicesRequestBodyExternalIdVariant":{"additionalProperties":false,"properties":{"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["externalId"],"title":"Virtual devices","type":"object"},"deleteDevicesRequestBodyTrackingIdVariant":{"additionalProperties":false,"properties":{"trackingId":{"description":"This is a unique ID associated with the device data in HERE Tracking.","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"}},"required":["trackingId"],"title":"Physical devices","type":"object"},"description":{"maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"detentionCount":{"allOf":[{"properties":{"DETENTION_ENDED":{"description":"Number of devices currently in this event state.\n","type":"number"},"DETENTION_STARTED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["detention"],"type":"string"}},"required":["eventSource","DETENTION_STARTED","DETENTION_ENDED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"detention"},"device":{"description":"Response body contains a single device object.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"deviceCountsResponseJson":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{"oneOf":[{"allOf":[{"properties":{"FALSE_TO_TRUE":{"description":"Number of devices currently in this event state.\n","type":"number"},"TRUE_TO_FALSE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["attach","tamper","online"],"type":"string"}},"required":["eventSource","TRUE_TO_FALSE","FALSE_TO_TRUE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"attach, tamper, online"},{"allOf":[{"properties":{"ABOVE_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"BELOW_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"IN_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["battery","humidity","pressure","temperature"],"type":"string"}},"required":["eventSource","BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"battery, humidity, pressure, temperature"},{"allOf":[{"properties":{"EVENT":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["acceleration"],"type":"string"}},"required":["eventSource","EVENT"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"acceleration"},{"allOf":[{"properties":{"INSIDE_GEOFENCE":{"description":"Number of devices currently in this event state.\n","type":"number"},"OUTSIDE_GEOFENCE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["geofence"],"type":"string"}},"required":["eventSource","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"geofence"},{"allOf":[{"properties":{"DWELLING_ENDED":{"description":"Number of devices currently in this event state.\n","type":"number"},"DWELLING_STARTED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["dwelling"],"type":"string"}},"required":["eventSource","DWELLING_STARTED","DWELLING_ENDED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"dwelling"},{"allOf":[{"properties":{"DETENTION_ENDED":{"description":"Number of devices currently in this event state.\n","type":"number"},"DETENTION_STARTED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["detention"],"type":"string"}},"required":["eventSource","DETENTION_STARTED","DETENTION_ENDED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"detention"},{"allOf":[{"properties":{"UNUTILIZED":{"description":"Number of devices currently in this event state.\n","type":"number"},"UTILIZED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["utilization"],"type":"string"}},"required":["eventSource","UTILIZED","UNUTILIZED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"utilization"},{"allOf":[{"properties":{"SHIPMENT_DELAYED":{"description":"Number of devices currently in this event state.\n","type":"number"},"SHIPMENT_EARLY":{"description":"Number of devices currently in this event state.\n","type":"number"},"SHIPMENT_ON_TIME":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["shipmentSchedule"],"type":"string"}},"required":["eventSource","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"shipmentSchedule"}]},"type":"array"}},"type":"object"}]},"deviceEnabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"deviceName":{"description":"The name of the device. Must be unique within a project.","maxLength":50,"minLength":1,"type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"driverId":{"description":"Identifier of the driver.","maxLength":50,"minLength":1,"type":"string"},"driverInfo":{"additionalProperties":false,"example":{"autoProvisionCallbackDevices":true,"driverId":"my-driver-1-id","driverSyncMethod":"pull","driverType":"internal","externalCloudInfoSchema":[{}],"provider":"External Cloud 1","strategy":{"managerId":"my-manager-1-id","name":"my-manager-1"},"version":0},"properties":{"autoProvisionCallbackDevices":{"description":"If true, it indicates that this one is a self-provisioning callback driver.","type":"boolean"},"driverId":{"description":"Identifier of the driver.","maxLength":50,"minLength":1,"type":"string"},"driverSyncMethod":{"description":"Driver synchronization method","enum":["push","pull","none"],"type":"string"},"driverType":{"description":"Driver type.","enum":["tracker-device","transporter","internal"],"type":"string"},"externalCloudInfoSchema":{"items":{"properties":{"hidden":{"description":"Indicates whether cloud info parameter is hidden.","type":"boolean"},"key":{"description":"Key of external cloud info parameter.","maxLength":100,"type":"string"},"label":{"description":"Label of external cloud info parameter.","type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"provider":{"description":"Name/description of the external cloud that the driver represents.\n","type":"string"},"strategy":{"properties":{"managerId":{"description":"Identifier of the manager.","maxLength":50,"minLength":1,"type":"string"},"name":{"description":"A strategy name","type":"string"}},"type":"object"},"version":{"description":"Version number of the driver.","type":"integer"}},"required":["driverId","provider","driverType","driverSyncMethod","externalCloudInfoSchema","version","strategy"],"title":"driverInfo","type":"object"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"dwellingCount":{"allOf":[{"properties":{"DWELLING_ENDED":{"description":"Number of devices currently in this event state.\n","type":"number"},"DWELLING_STARTED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["dwelling"],"type":"string"}},"required":["eventSource","DWELLING_STARTED","DWELLING_ENDED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"dwelling"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"endIndex":{"default":100,"description":"End of returned block from a list. Default 100.","minimum":0,"type":"integer"},"endedAfter":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich ended after the provided date.\n","format":"date-time","type":"string"},"endedBefore":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich ended before the provided date.\n","format":"date-time","type":"string"},"epoSlice":{"description":"When getting 3-30 days prediction orbit data, it is sliced to 10 separate files, 3 days for\neach file:\n\n* epoSlice 1 for days 1-3,\n* epoSlice 2 for days 4-6,\n* ...\n* epoSlice 10 for days 28-30.\n","maximum":10,"minimum":1,"type":"integer"},"epoTypeEpo":{"description":"3-30 days prediction orbit (ephemeris)","enum":["epo"],"type":"string"},"epoTypeQepo":{"description":"6-hour prediction orbit (ephemeris)","enum":["qepo"],"type":"string"},"eventSourceWithoutStock":{"description":"Source of the event.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventTypeDeviceCount":{"description":"Number of devices currently in this event state.\n","type":"number"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"externalCloudInfoSchema":{"items":{"properties":{"hidden":{"description":"Indicates whether cloud info parameter is hidden.","type":"boolean"},"key":{"description":"Key of external cloud info parameter.","maxLength":100,"type":"string"},"label":{"description":"Label of external cloud info parameter.","type":"string"}},"required":["key","label"],"type":"object"},"type":"array"},"externalCloudInfoSchemaItem":{"properties":{"hidden":{"description":"Indicates whether cloud info parameter is hidden.","type":"boolean"},"key":{"description":"Key of external cloud info parameter.","maxLength":100,"type":"string"},"label":{"description":"Label of external cloud info parameter.","type":"string"}},"required":["key","label"],"type":"object"},"externalDevice":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"}},"required":["externalDeviceId"],"type":"object"},"externalDeviceDetails":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"},"info":{"description":"Extra information regarding the device's provisioning status at HERE Tracking Cloud.\nIt also contains an error object if the device failed provisioning.\n","type":"object"},"localDeviceId":{"description":"Device id in TC. Either trackingId or shipmentId.","maxLength":50,"minLength":1,"type":"string"},"provisioning":{"description":"Current device status from HERE Tracking Cloud's perspective.\n\"provisioning\": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.\n\"provisioned\": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.\n\"failed\": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.\n","enum":["provisioning","provisioned","failed"],"type":"string"}},"required":["externalDeviceId","provisioning","enabled"],"type":"object"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"failed":{"description":"The number of devices for which all planned upload operations failed.","type":"integer"},"fileName":{"description":"The name of the upload file.","maxLength":50,"minLength":1,"type":"string"},"geofenceCount":{"allOf":[{"properties":{"INSIDE_GEOFENCE":{"description":"Number of devices currently in this event state.\n","type":"number"},"OUTSIDE_GEOFENCE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["geofence"],"type":"string"}},"required":["eventSource","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"geofence"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"geofenceIdValue":{"properties":{"geofenceId":{"description":"Geofence ID on which the `value` is calculated\n","format":"uuid","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["geofenceId","value"],"title":"geofenceId-value","type":"object"},"geofences":{"description":"Geofence IDs to be associated with the device","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"getConnectorExternalDevicesResponse":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"enabled":{"description":"Indicates if C2C should pull data for this device from external cloud at connector execution time.","type":"boolean"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalDeviceInfo":{"description":"Other extra information related to the external device or shipment ID.","type":"object"},"info":{"description":"Extra information regarding the device's provisioning status at HERE Tracking Cloud.\nIt also contains an error object if the device failed provisioning.\n","type":"object"},"localDeviceId":{"description":"Device id in TC. Either trackingId or shipmentId.","maxLength":50,"minLength":1,"type":"string"},"provisioning":{"description":"Current device status from HERE Tracking Cloud's perspective.\n\"provisioning\": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.\n\"provisioned\": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.\n\"failed\": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.\n","enum":["provisioning","provisioned","failed"],"type":"string"}},"required":["externalDeviceId","provisioning","enabled"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"getConnectorForExternalDeviceResponse":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"}},"required":["connectorId"],"type":"object"},"type":"array"}},"required":["items"],"type":"object"},"getMetadataResponse":{"description":"Metadata for a large data object","example":{"completedAt":"2025-08-15T13:52:57.447Z","createdAt":"2025-08-15T13:52:57.447Z","dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991","description":"Description for my large data","name":"My large data","numberOfParts":5,"size":10000,"status":"completed","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d"},"properties":{"completedAt":{"description":"Time when data upload was completed","format":"date-time","type":"string"},"createdAt":{"description":"Time when data upload was created","format":"date-time","type":"string"},"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"},"numberOfParts":{"description":"Number of parts","maxLength":10000,"minLength":1,"type":"integer"},"size":{"description":"Total size of the data in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data upload","enum":["preparing","pending","ongoing","completed","failed"],"type":"string"},"trackingId":{"description":"ID of the device that produced this data","maxLength":50,"minLength":1,"type":"string"}},"required":["dataId","trackingId","numberOfParts","status","createdAt"],"type":"object"},"getResultsResponse":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Error code","type":"integer"},"details":{"description":"Error details","type":"string"},"message":{"description":"Error description","type":"string"}},"type":"object"},"type":"array"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"name":{"description":"The name of the device. Must be unique within a project.","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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},"required":["status","limit","count","items"],"type":"object"},"getShipmentReportResultForMetricResponse":{"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"properties":{"ids":{"additionalProperties":false,"description":"Combination of shipmentId, shipmentPlanId, segmentId, segmentPlanId or locationId based on\nthe given metric.\n","properties":{"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"},"statistics":{"additionalProperties":false,"description":"Calculated statistics of the given metric.\n","properties":{"avg":{"description":"Average value taken over metric values.\n","type":"number"},"val":{"description":"Value of a metric.\n","type":"number"}},"type":"object"},"statisticsCount":{"description":"How many inputs were used to calculate the given metric.\n","type":"integer"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total number of items","minimum":0,"type":"integer"}},"type":"object"},"getShipmentReportStatusResponse":{"additionalProperties":false,"properties":{"error":{"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"},"status":{"enum":["completed","failed","ongoing","pending"],"type":"string"}},"required":["status"],"type":"object"},"getShipmentReportSummaryResponse":{"additionalProperties":false,"properties":{"completedAt":{"description":"When generation of the shipment report was completed.\n","format":"date-time","type":"string"},"createdAt":{"description":"When generation of the shipment report was started.\n","format":"date-time","type":"string"},"totalLocationCount":{"description":"Count of locations over all segment plans in the shipment report.\n","type":"integer"},"totalSegmentPlanCount":{"description":"Count of segment plans in the shipments report.\n","type":"integer"},"totalSegmentsCount":{"description":"Count of segments over all segment plans in the shipment report.\n","type":"integer"},"totalShipmentPlanCount":{"description":"Count of shipment plans in the shipments report.\n","type":"integer"},"totalShipmentsCount":{"description":"Count of shipments over all shipment plans in the shipment report.\n","type":"integer"}},"required":["totalShipmentPlanCount","totalSegmentPlanCount","totalShipmentsCount","totalSegmentsCount","totalLocationCount","createdAt","completedAt"],"type":"object"},"getStatusResponse":{"additionalProperties":false,"properties":{"failed":{"description":"The number of devices for which all planned upload operations failed.","type":"integer"},"fileName":{"description":"The name of the upload file.","maxLength":50,"minLength":1,"type":"string"},"partiallySucceeded":{"description":"The number of devices for which some upload operations succeeded.","type":"integer"},"pending":{"description":"The number of devices that are still waiting upload operations to be done.","type":"integer"},"progress":{"description":"The percentage of the job that was completed at the time of the request.","maximum":100,"minimum":0,"type":"number"},"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"succeeded":{"description":"The number of devices for which all planned upload operations succeeded.","type":"integer"},"total":{"description":"The total number of devices to be uploaded in this job.","type":"integer"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},"required":["status","progress","total","succeeded","failed","partiallySucceeded","pending"],"type":"object"},"gnssType":{"description":"GNSS type. `gps` for GPS data only, `gpsAndGlonass` for both GPS and GLONASS assistance data.\n","enum":["gps","gpsAndGlonass"],"type":"string"},"ids":{"additionalProperties":false,"properties":{"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"},"ingestSegmentBody":{"additionalProperties":false,"description":"Last known segments for a shipment","properties":{"calculatedEta":{"description":"Estimated time of arrival for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Estimated time of departure for the segment","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when the segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"startedAt":{"description":"Timestamp indicating when the segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["name","transportMode","status","origin","destination"],"type":"object"},"ingestShipmentBody":{"additionalProperties":false,"description":"Last known shipment data","properties":{"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"Last known segments for a shipment","properties":{"calculatedEta":{"description":"Estimated time of arrival for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Estimated time of departure for the segment","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when the segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"startedAt":{"description":"Timestamp indicating when the segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["name","transportMode","status","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"}},"type":"object"},"jobId":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"licenseInfoResult":{"properties":{"end":{"default":100,"description":"End of returned block from a list. Default 100.","minimum":0,"type":"integer"},"licenses":{"description":"Developer plan licenses for HERE Tracking","items":{"properties":{"appId":{"description":"A project application id.","minLength":8,"type":"string"},"expired":{"description":"True if a license has expired.","type":"boolean"},"expiryDate":{"description":"A license expiration date.","type":"string"},"features":{"description":"Features supported by the license plan.","items":{"type":"string"},"type":"array"},"projectDescription":{"description":"Project description","maxLength":250,"minLength":1,"type":"string"},"projectHrn":{"description":"Project HRN","pattern":"^hrn:here.*$","type":"string"},"projectId":{"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"},"projectName":{"description":"Project name","maxLength":50,"minLength":1,"type":"string"},"quota":{"properties":{"provisioning":{"description":"The number of devices that can still be provisioned.","type":"number"}},"type":"object"},"realm":{"description":"Platform application realm.","type":"string"},"type":{"description":"A license type.","enum":["evaluation","commercial","platformApp","platform"],"type":"string"}},"type":"object"},"type":"array"},"start":{"default":0,"description":"Start of returned block from a list. Default 0.","minimum":0,"type":"integer"},"total":{"default":0,"description":"Total number of elements that can be received with current query.","minimum":0,"type":"integer"}},"required":["licenses","start","end","total"],"type":"object"},"listMetadatasResponse":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"description":"Metadata for a large data object","example":{"completedAt":"2025-08-15T13:52:57.447Z","createdAt":"2025-08-15T13:52:57.447Z","dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991","description":"Description for my large data","name":"My large data","numberOfParts":5,"size":10000,"status":"completed","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d"},"properties":{"completedAt":{"description":"Time when data upload was completed","format":"date-time","type":"string"},"createdAt":{"description":"Time when data upload was created","format":"date-time","type":"string"},"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"},"numberOfParts":{"description":"Number of parts","maxLength":10000,"minLength":1,"type":"integer"},"size":{"description":"Total size of the data in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data upload","enum":["preparing","pending","ongoing","completed","failed"],"type":"string"},"trackingId":{"description":"ID of the device that produced this data","maxLength":50,"minLength":1,"type":"string"}},"required":["dataId","trackingId","numberOfParts","status","createdAt"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"listOfPeriods":{"properties":{"timestamp":{"description":"Timestamp of the beginning of the event\n","format":"date-time","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`.","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"Duration of the event in seconds","type":"number"}},"required":["trackingId","timestamp","value"],"title":"event periods","type":"object"},"listPartsResponse":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"description":"Information about uploaded part","example":{"md5":"b026324c6904b2a9cb4b88d6d61c81d1","partNumber":1,"size":1,"status":"completed"},"properties":{"md5":{"description":"MD5 digest of the data (hexadecimal representation)","maxLength":32,"minLength":32,"type":"string"},"partNumber":{"description":"Part number for a large data object","maximum":10000,"minimum":1,"type":"integer"},"size":{"description":"Part size in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data part upload","enum":["pending","ongoing","completed","failed"],"type":"string"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"listProjectsJobsResponse":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"jobId":{"description":"Bulk upload job ID","pattern":"^BULK-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"}},"required":["jobId","status"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"localDeviceId":{"description":"Device id in TC. Either trackingId or shipmentId.","maxLength":50,"minLength":1,"type":"string"},"managerId":{"description":"Identifier of the manager.","maxLength":50,"minLength":1,"type":"string"},"md5Digest":{"description":"MD5 digest of the data (hexadecimal representation)","maxLength":32,"minLength":32,"type":"string"},"mediatekEpoConfig":{"properties":{"epoSlice":{"description":"When getting 3-30 days prediction orbit data, it is sliced to 10 separate files, 3 days for\neach file:\n\n* epoSlice 1 for days 1-3,\n* epoSlice 2 for days 4-6,\n* ...\n* epoSlice 10 for days 28-30.\n","maximum":10,"minimum":1,"type":"integer"},"epoType":{"description":"3-30 days prediction orbit (ephemeris)","enum":["epo"],"type":"string"},"gnssType":{"description":"GNSS type. `gps` for GPS data only, `gpsAndGlonass` for both GPS and GLONASS assistance data.\n","enum":["gps","gpsAndGlonass"],"type":"string"},"provider":{"description":"Assistance data provider MediaTek","enum":["mediatek"],"type":"string"}},"required":["provider","epoType","epoSlice","gnssType"],"title":"MediaTek 3-30 days prediction orbit","type":"object"},"mediatekQepoConfig":{"properties":{"epoType":{"description":"6-hour prediction orbit (ephemeris)","enum":["qepo"],"type":"string"},"gnssType":{"description":"GNSS type. `gps` for GPS data only, `gpsAndGlonass` for both GPS and GLONASS assistance data.\n","enum":["gps","gpsAndGlonass"],"type":"string"},"provider":{"description":"Assistance data provider MediaTek","enum":["mediatek"],"type":"string"}},"required":["provider","epoType","gnssType"],"title":"MediaTek 6-hour prediction orbit","type":"object"},"metadataItem":{"description":"Metadata for a large data object","example":{"completedAt":"2025-08-15T13:52:57.447Z","createdAt":"2025-08-15T13:52:57.447Z","dataId":"DATA-08343421-e2d6-4abe-8e9a-adeb5361e991","description":"Description for my large data","name":"My large data","numberOfParts":5,"size":10000,"status":"completed","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d"},"properties":{"completedAt":{"description":"Time when data upload was completed","format":"date-time","type":"string"},"createdAt":{"description":"Time when data upload was created","format":"date-time","type":"string"},"dataId":{"description":"Large data object identifier","pattern":"^DATA-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"description":{"description":"Large data object description","maxLength":1000,"minLength":1,"type":"string"},"name":{"description":"Large data object name","maxLength":50,"minLength":1,"type":"string"},"numberOfParts":{"description":"Number of parts","maxLength":10000,"minLength":1,"type":"integer"},"size":{"description":"Total size of the data in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data upload","enum":["preparing","pending","ongoing","completed","failed"],"type":"string"},"trackingId":{"description":"ID of the device that produced this data","maxLength":50,"minLength":1,"type":"string"}},"required":["dataId","trackingId","numberOfParts","status","createdAt"],"type":"object"},"metric":{"enum":["shipmentPlanPunctualityAtOrigin","shipmentPlanPunctualityAtDestination","segmentPlanPunctualityAtOrigin","segmentPlanPunctualityAtDestination","shipmentPunctualityAtOrigin","shipmentPunctualityAtDestination","segmentPunctualityAtOrigin","segmentPunctualityAtDestination","locationDwelling"],"type":"string"},"metricStatistics":{"additionalProperties":false,"properties":{"avg":{"description":"Average value taken over metric values.\n","type":"number"},"val":{"description":"Value of a metric.\n","type":"number"}},"type":"object"},"name":{"maxLength":50,"type":"string"},"numberOfParts":{"description":"Number of parts","maxLength":10000,"minLength":1,"type":"integer"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"paginated1000ResponseCount":{"description":"Number of items returned in the response","maximum":1000,"minimum":0,"type":"integer"},"paginated1000ResponseLimit":{"description":"Maximum number of items as specified in request","maximum":1000,"minimum":1,"type":"integer"},"paginatedResponseTotal":{"description":"Total number of items","minimum":0,"type":"integer"},"partItem":{"description":"Information about uploaded part","example":{"md5":"b026324c6904b2a9cb4b88d6d61c81d1","partNumber":1,"size":1,"status":"completed"},"properties":{"md5":{"description":"MD5 digest of the data (hexadecimal representation)","maxLength":32,"minLength":32,"type":"string"},"partNumber":{"description":"Part number for a large data object","maximum":10000,"minimum":1,"type":"integer"},"size":{"description":"Part size in bytes","minimum":0,"type":"integer"},"status":{"description":"State of the data part upload","enum":["pending","ongoing","completed","failed"],"type":"string"}},"type":"object"},"partNumber":{"description":"Part number for a large data object","maximum":10000,"minimum":1,"type":"integer"},"partSize":{"description":"Part size in bytes","minimum":0,"type":"integer"},"partStatus":{"description":"State of the data part upload","enum":["pending","ongoing","completed","failed"],"type":"string"},"partiallySucceeded":{"description":"The number of devices for which some upload operations succeeded.","type":"integer"},"pending":{"description":"The number of devices that are still waiting upload operations to be done.","type":"integer"},"planFromBody":{"additionalProperties":false,"example":{"autoStart":true,"description":"A shipment consisting of four segments","name":"From Portugal to Panama","segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["segments"],"title":"From new","type":"object"},"planFromShipmentId":{"additionalProperties":false,"example":{"options":{"calculateDurationsFrom":"actuals","copyTrackingIds":true},"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001"},"properties":{"options":{"description":"Optional parameters for plan creation","properties":{"calculateDurationsFrom":{"description":"If defined, the durations of the segments in the plan will be based on the durations of the segments of the provided shipment","enum":["actuals","providedEstimate","calculatedEstimate"],"type":"string"},"copyTrackingIds":{"default":false,"description":"If set to `true`, trackingIds in the segments of the provided shipment are copied to the plan","type":"boolean"}},"type":"object"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentId"],"title":"From existing","type":"object"},"polygon":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"postRequestBody":{"properties":{"end":{"description":"End date of the report period. The end date should be greater than the start date.","format":"date-time","type":"string"},"ruleId":{"description":"Rule ID of a dwelling or detention rule.","format":"uuid","type":"string"},"start":{"description":"Start date and time of the report period. When getting reports per interval, this timestamp\ndefines the start of the interval day, week or month.\n\nFor example, to make the report week start on Monday midnight 1st March 2021 in timezone UTC+1:00,\nset the `start` parameter to be `2021-02-28T23:00:00.000Z` (GMT). Now when getting interval reports,\nthe first week would contain data between `2021-02-28T23:00:00.000Z` and `2021-03-07T23:00:00.000Z` (GMT).\n","format":"date-time","type":"string"}},"required":["ruleId","start","end"],"type":"object"},"postResponseBody":{"properties":{"reportId":{"description":"Report ID","maxLength":50,"minLength":1,"pattern":"^REP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["reportId"],"type":"object"},"progress":{"description":"The percentage of the job that was completed at the time of the request.","maximum":100,"minimum":0,"type":"number"},"projectIds":{"description":"Project id list","items":{"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"},"maxItems":20,"minItems":1,"type":"array","uniqueItems":true},"projectType":{"description":"Project type","enum":["indoor","tracking","trackingAzure","lastmile"],"type":"string"},"projectTypes":{"description":"Project types array","items":{"description":"Project type","enum":["indoor","tracking","trackingAzure","lastmile"],"type":"string"},"maxItems":4,"minItems":1,"type":"array","uniqueItems":true},"providerMediatek":{"description":"Assistance data provider MediaTek","enum":["mediatek"],"type":"string"},"provisionedAndClaimedDevice":{"additionalProperties":false,"description":"A JSON object containing the newly created device credentials","example":{"deviceId":"4cdafa38-fdf9-474c-8eb3-72ea276a163a","deviceSecret":"AGIhZGmU1jJS-H1ZfAZuh5U9cswyqquWVrbOKGwKN9s","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"deviceId":{"description":"A newly created device ID.","type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["deviceId"],"type":"object"},"provisionedDevice":{"additionalProperties":false,"description":"A JSON object containing the newly created device credentials","example":{"deviceId":"4cdafa38-fdf9-474c-8eb3-72ea276a163a","deviceSecret":"AGIhZGmU1jJS-H1ZfAZuh5U9cswyqquWVrbOKGwKN9s"},"properties":{"deviceId":{"description":"A newly created device ID. A physical device license is a pair of `deviceId` and `deviceSecret` credentials.","maxLength":50,"minLength":1,"type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"}},"required":["deviceId","deviceSecret"],"type":"object"},"provisionedDevicesResults":{"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":{"additionalProperties":false,"properties":{"appId":{"description":"Virtual device application ID, only present when the device is virtual","type":"string"},"deviceId":{"description":"The provisioned device ID","type":"string"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","type":"string"},"timestamp":{"description":"Provisioning time in milliseconds elapsed since 1 January 1970 00:00:00 UTC.","type":"integer"}},"required":["deviceId","timestamp"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}],"example":{"count":2,"data":[{"deviceId":"d34d8c7f-6bd5-496a-adef-7bf2395aa456","timestamp":1548143359339},{"appId":"jJHUjhytyGJHJFtftgHG","deviceId":"VRDE-40e87f34-59b9-4bd9-827f-f8ff5a8210e8","externalId":"my-device-1","timestamp":1548143359340}],"pageToken":"027ffffea253d79fc"}},"rangeCount":{"allOf":[{"properties":{"ABOVE_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"BELOW_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"IN_RANGE":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["battery","humidity","pressure","temperature"],"type":"string"}},"required":["eventSource","BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"battery, humidity, pressure, temperature"},"registerRequestBodyV3":{"properties":{"channelType":{"description":"The type of notification channel.","enum":["webhook","email","browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A webhook URL that will receive notifications POST requests.\n","type":"string"}},"required":["channelType"],"type":"object"},"registerResponseBodyV3":{"properties":{"registration":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]}},"type":"object"},"registrationInfo":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]},"removeExternalDeviceBatch":{"properties":{"externalDeviceIds":{"items":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"}},"type":"object"},"removeFromConnectorOnly":{"default":false,"description":"If set to true, external device is only removed from the connector but the virtual device\nwill remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c\ndevice, i.e. when `externalDeviceId` and `connectorId` are provided.\n","type":"boolean"},"reportId":{"description":"Report ID","maxLength":50,"minLength":1,"pattern":"^REP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"reportItems":{"oneOf":[{"properties":{"timestamp":{"description":"Timestamp of the beginning of the interval\n","format":"date-time","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["timestamp","value"],"title":"timestamp-value","type":"object"},{"properties":{"trackingId":{"description":"Tracking ID on which the `value` is calculated\n","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["trackingId","value"],"title":"trackingId-value","type":"object"},{"properties":{"geofenceId":{"description":"Geofence ID on which the `value` is calculated\n","format":"uuid","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["geofenceId","value"],"title":"geofenceId-value","type":"object"},{"properties":{"timestamp":{"description":"Timestamp of the beginning of the event\n","format":"date-time","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`.","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"Duration of the event in seconds","type":"number"}},"required":["trackingId","timestamp","value"],"title":"event periods","type":"object"}]},"requestBodyProjectFeatures":{"oneOf":[{"properties":{"data":{"description":"Object describing project features","type":"object"}},"type":"object"},{"properties":{"indoorPositioning":{"description":"Flag telling if indoor positioning is enabled. Can be updated only by a HITA user.","type":"boolean"}},"type":"object"}]},"requestBodyResources":{"additionalProperties":false,"properties":{"filters":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"key":{"enum":["onlyShipments","onlyShipmentPlans"]}},"required":["key"],"type":"object"},{"additionalProperties":false,"properties":{"key":{"description":"aliasType|labelKey","minLength":1,"type":"string"},"storage":{"enum":["aliases","labels"]},"value":{"description":"value with wildcards","minLength":1,"type":"string"}},"required":["key","value","storage"],"type":"object"}]},"maxItems":10,"minItems":1,"type":"array"}},"required":["filters"],"type":"object"},"requestLogin":{"description":"An object containing user's email address, password and (optionally) requested realm ID.","properties":{"email":{"description":"The email address of the user","minLength":1,"type":"string"},"password":{"description":"The password of the user","minLength":1,"type":"string"},"realm":{"description":"A case-insensitive requested realm ID","minLength":1,"type":"string"}},"required":["email","password"],"type":"object"},"requestRefresh":{"description":"An object containing an accessToken and a refreshToken","properties":{"accessToken":{"description":"The access token obtained in a previous login","minLength":1,"type":"string"},"refreshToken":{"description":"The refresh token obtained in a previous login","minLength":1,"type":"string"}},"required":["accessToken","refreshToken"],"type":"object"},"requestRetrieveBatch":{"description":"An array of trackingIds of devices","example":["HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6","HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"],"items":{"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`.","maxLength":50,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"},"requestTokenExchange":{"description":"An object containing user access token and requested scope of the access token.","example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","scope":"hrn:here:authorization::myrealm:project/my-project-0000"},"properties":{"accessToken":{"description":"HERE Account user access token, obtained from login endpoint.","minLength":1,"type":"string"},"scope":{"description":"Requested scope of the access token. Must be an HRN identifying a project that the identified user has access to.","minLength":1,"type":"string"}},"required":["accessToken","scope"],"type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"},"responseAliases":{"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"]}}},"responseAllAliases":{"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"}]}},"responseAllLocations":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"description":"Location object body.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"locationId":"LOC-61a3fba0-cb44-405f-816c-c2aec73a1add","name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofenceId associated with the location. Has to match an existing geofenceId.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"required":["locationId"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total number of locations for query","type":"integer"}},"required":["limit","count","items"],"type":"object"},"responseAllShadowsV4":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":1000,"minimum":0,"type":"integer"},"items":{"items":{"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"},"shadow":{"properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Begin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","format":"date-time","type":"string"},"end":{"description":"End time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","format":"date-time","type":"string"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"The time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","format":"date-time","type":"string"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"The time of the last update to the desired shadow.\n","format":"date-time","type":"string"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","format":"date-time","type":"string"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","format":"date-time","type":"string"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Timestamp for the corrected position","format":"date-time","type":"string"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"This describes when the reported measurements were taken.\n","format":"date-time","type":"string"}},"type":"object"}},"required":["desired","reported"],"type":"object"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["shadow"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":1000,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"responseAllShipmentPlans":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"example":{"autoStart":true,"createdAt":"2025-08-15T13:52:57.449Z","description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["49716c18-9858-40bb-842a-15bf2ed02c64","ccc540b3-b2c8-4914-b00f-de518cb56e75"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"e19cec4f-445e-41d0-9f0e-d1304ea707d1","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","segmentPlanId":"6c668d6b-1eeb-46c2-ba12-31265c346c04","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","segmentPlanId":"b331cc64-0c83-4347-8a08-bf984675832f","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentPlanId":"SHPP-730b08fe-ec44-4e6f-b2b0-1d3cc264981c","subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"createdAt":{"description":"Timestamp indicating when the shipment plan has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"Segment plan details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"SEGP-3253bff4-97ba-4dfa-866c-fa8703902fcf","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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`.","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentPlanId","segments"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total count of matching results","minimum":0,"type":"integer"}},"required":["limit","count","items","total"],"type":"object"},"responseAllShipments":{"additionalProperties":false,"example":{"count":1,"items":[{"autoStart":true,"description":"A shipment consisting of one segment","name":"From Portugal to Panama","segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.449Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.449Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001","status":"pending","subShipment":false}],"limit":100},"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"description":"Shipment details","example":{"autoStart":true,"description":"A shipment consisting of one segment","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.449Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.449Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001","shipmentPlanId":"SHPP-de2bd93d-a371-4e22-801a-528238d1a33a","status":"pending","subShipment":false},"properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"calculatedEta":{"description":"Calculated  ETA for the shipment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the shipment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when the shipment has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"endedAt":{"description":"Timestamp indicating when the shipment ended","format":"date-time","type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"User provided ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array containing the segment details","items":{"additionalProperties":false,"description":"Segment details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.449Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.449Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"type":"array"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"A shipment plan's id that the shipment was generated from.","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when the shipment started","format":"date-time","type":"string"},"status":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentId","autoStart","status","segments"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"total":{"description":"Total number of shipments for query","type":"integer"}},"required":["limit","count","items"],"type":"object"},"responseAssociationRule":{"properties":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"},"responseCount":{"additionalProperties":false,"example":{"count":1337,"updatedAt":"2025-08-15T13:52:57.449Z"},"properties":{"count":{"description":"The number of created device licenses for given `appId`","minimum":0,"type":"number"},"updatedAt":{"description":"Timestamp of the last `count` update","type":"string"}},"required":["count","updatedAt"],"type":"object"},"responseCreateDeviceLicenses":{"additionalProperties":false,"example":{"jobId":"344a17a4-1b19-4420-bb6f-8400b87071fd"},"properties":{"jobId":{"description":"The batch job ID, needed for subsequent requests. Valid for 24 hours.","format":"uuid","type":"string"}},"required":["jobId"],"type":"object"},"responseCreateGeofence":{"properties":{"id":{"description":"Geofence ID","format":"uuid","type":"string"},"message":{"type":"string"}},"required":["id"],"type":"object"},"responseCreateLocation":{"properties":{"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["locationId"],"type":"object"},"responseCreateRule":{"properties":{"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"message":{"description":"Set to `created` if the sensor rule creation was successful.","type":"string"}},"required":["id"],"type":"object"},"responseCreateShipment":{"additionalProperties":false,"example":{"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001"},"properties":{"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentId"],"type":"object"},"responseCreateShipmentPlan":{"additionalProperties":false,"example":{"shipmentPlanId":"SHPP-de2bd93d-a371-4e22-801a-528238d1a33a"},"properties":{"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentPlanId"],"type":"object"},"responseDevicesAssociatedWithRule":{"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":{"description":"Response body contains a single device object.\n","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["trackingId"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of device objects, `count` indicates the number of returned devices,\nand `pageToken` is the next page token if available. \nIf no devices are found, an object with an empty data array is returned.\n","type":"object"},"responseGetMetadataBatchDevices":{"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":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"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":["id","data"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}]},"responseGetMetadataBatchGeofences":{"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":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}]},"responseGetMetadataBatchSensorRules":{"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":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Sensor rule ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}],"example":{"count":2,"data":[{"data":{"blob":"SEVSRSBUcmFja2luZw=="},"id":"3b10404d-4e9e-456b-b262-5e98dd39d9c3"},{"data":{"externalId":"EXT-1234"},"id":"3b10404d-4e9e-456b-b262-5e98dd39d9c3"}],"pageToken":"018ffffea253d64ba"}},"responseGetMetadataDevices":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"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":["id","data"],"type":"object"},"responseGetMetadataGeofences":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Geofence ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"},"responseGetMetadataSensorRules":{"additionalProperties":false,"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"Sensor rule ID","format":"uuid","type":"string"}},"required":["id","data"],"type":"object"},"responseGetMetadataUser":{"properties":{"data":{"description":"Metadata JSON object\n","example":{"priority":"high"},"type":"object"},"id":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["id","data"],"type":"object"},"responseGetconnectors":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"allOf":[{"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"projectId":{"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"}},"type":"object"},{"example":{"driverId":"my-driver-1-id","enabled":true,"externalCloudInfo":{"extAppId":"ext-app-id","extUserId":"ext-user-id","extUserPassword":"ext-user-password"},"name":"driver-name","refreshIntervalS":3600},"properties":{"description":{"description":"Brief description of the connector.","maxLength":200,"type":"string"},"driverId":{"description":"Identifier of the driver to be used with this connector.","maxLength":50,"minLength":1,"type":"string"},"enabled":{"description":"Enabled state of the connector. If set to false then the connector\nwill not execute periodically.\n","type":"boolean"},"externalCloudInfo":{"description":"An external cloud-specific object that the driver will use to login to the\nexternal cloud. The structure of this object varies per driver\nimplementation.\nIt is recommended to have dedicated credentials for logging in to\nthe external cloud in order not to violate possible concurrent users\npolicies of the external cloud.\nIn case of the HERE Tracking loopback driver, the maximum\nallowed concurrent user account tokens is 3 per account,\ntherefore it is recommended to create a separate HERE account\nand grant it the required privilege to update the connector's\nproject, and use that account in externalCloudInfo.\n","type":"object"},"name":{"description":"Name of the connector.","maxLength":100,"minLength":1,"type":"string"},"refreshIntervalS":{"description":"This is the interval (in seconds) to execute the sync process\nbetween the connector's external cloud and HERE Tracking project.\nThe maximum and at the same time default value for callback-type connectors is 900 seconds.\nThe default value for other type of connectors is 3600 seconds and there is no maximum value set.\n","minimum":60,"type":"integer"}},"required":["name","externalCloudInfo","driverId","enabled"],"title":"connectorInfo","type":"object"},{"properties":{"lastExecTs":{"description":"Timestamp of the last connection execution.","maxLength":50,"type":"string"}},"type":"object"},{"properties":{"totalAddedDevices":{"description":"Number of external devices added to the connector.","minimum":0,"type":"integer"}},"required":["totalAddedDevices"],"type":"object"},{"properties":{"createdAt":{"description":"Timestamp of the connector creation.","format":"date-time","type":"string"}},"required":["createdAt"],"type":"object"}]},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"responseJobResults":{"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":{"additionalProperties":false,"description":"A JSON object containing the newly created device credentials","example":{"deviceId":"4cdafa38-fdf9-474c-8eb3-72ea276a163a","deviceSecret":"AGIhZGmU1jJS-H1ZfAZuh5U9cswyqquWVrbOKGwKN9s","trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},"properties":{"deviceId":{"description":"A newly created device ID. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"externalId":{"description":"Virtual device external ID, only present when provisioning virtual devices.","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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["deviceId"],"type":"object"},"type":"array"},"errors":{"items":{"properties":{"error":{"example":[{"code":401,"details":{"hereErrorCode":401306},"error":"Unauthorized","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee","message":"Invalid Authorization, the request lacks valid authentication credentials for the target resource."}],"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"},"id":{"description":"ID for the device to which error occurred","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}],"example":{"count":3,"data":[{"deviceId":"d34d8c7f-6bd5-496a-adef-7bf2395aa456","deviceSecret":"qerjpsdujnewppqnqefvli"},{"deviceId":"c6a22c91-c185-474c-9970-5eea445d92ac","deviceSecret":"xvbnm,do0e,md;ffgdsle,d"}],"errors":[{"error":{"code":500,"error":"Internal Server Error","id":"5771b3d4-95ae-4959-ac63-fbaa3d5d06ee"},"id":"my-device"}],"pageToken":"027ffffea253d79fc"}},"responseJobStatus":{"additionalProperties":false,"example":{"percent":10,"status":"started"},"properties":{"percent":{"description":"The percentage of the job that was completed at the time of the request.","maximum":100,"minimum":0,"type":"number"},"status":{"description":"The status of the batch job. When the job status is `complete`, use the `/registry/v2/{jobId}/results` endpoint to get the device licenses","enum":["started","complete"],"type":"string"}},"required":["status","percent"],"type":"object"},"responseLabelByJson":{"properties":{"labels":{"description":"An object containing label key-value pairs.","type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},"required":["resourceId"],"type":"object"},"responseLabelsByJson":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"properties":{"labels":{"description":"An object containing label key-value pairs.","type":"object"},"resourceId":{"description":"The resource ID, for example `trackingId`, `externalId`, `geofenceId`, etc.\n","maxLength":50,"minLength":1,"type":"string"},"resourceType":{"description":"The resource type, for example \"device\", \"geofence\".","enum":["device","geofence","location","rule","sensorRule","shipment"],"type":"string"}},"required":["resourceId"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"responseListDevices":{"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":{"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"},"shadow":{"description":"The data that Shadows persists for each device.\n","properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}},"type":"object"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"type":"array"}},"type":"object"}]},"responseLocationBody":{"additionalProperties":false,"description":"Location object body.","example":{"description":"Rostock Port Hafenbecken C","geofenceId":"57713e50-194e-4803-8ca6-1e794e916094","location":{"lat":54.155147,"lng":12.12204},"locationId":"LOC-61a3fba0-cb44-405f-816c-c2aec73a1add","name":"Rostock Port"},"properties":{"address":{"description":"Location address.","properties":{"city":{"description":"City","maxLength":100,"type":"string"},"country":{"description":"Country","maxLength":100,"type":"string"},"postalCode":{"description":"Postal code","maxLength":10,"type":"string"},"state":{"description":"State","maxLength":100,"type":"string"},"street":{"description":"Street address","maxLength":100,"type":"string"}},"type":"object"},"description":{"description":"Description of the location.","maxLength":1000,"type":"string"},"externalLocationId":{"description":"External location id in external cloud","maxLength":100,"minLength":1,"type":"string"},"geofenceId":{"description":"Optional geofenceId associated with the location. Has to match an existing geofenceId.","format":"uuid","type":"string"},"location":{"description":"Location coordinates.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"locationId":{"description":"Location ID","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the location.","maxLength":50,"type":"string"}},"required":["locationId"],"type":"object"},"responseLogin":{"example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","expiresIn":86400,"realm":"here","refreshToken":"5qlkthf8mgl5lsrn8br5vdisco","userId":"HERE-12345678-9abc-4def-0123-456789abcdef"},"properties":{"accessToken":{"type":"string"},"expiresIn":{"description":"The lifetime in seconds of the access token.\nFor example 86400 means the token will expire in 24 hours from the time the response was generated.\n","type":"integer"},"realm":{"description":"Current realm ID","type":"string"},"refreshToken":{"type":"string"},"tokenType":{"description":"The token type is bearer","type":"string"},"userId":{"description":"The HERE Account ID of a user.","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"},"responseProjectFeatures":{"additionalProperties":false,"properties":{"data":{"description":"Project specific data that can be set by a project admin","type":"object"},"indoorPositioning":{"description":"Flag telling if indoor positioning is enabled for the project.","type":"boolean"},"licenseStatus":{"description":"License status of the project","properties":{"expired":{"description":"True if a license has expired.","type":"boolean"},"expiryDate":{"description":"A license expiration date.","type":"string"}},"required":["expired"],"type":"object"},"licenseType":{"description":"License type of the project","type":"string"}},"required":["indoorPositioning","licenseStatus","licenseType"],"type":"object"},"responseRegistrations":{"example":{"count":1,"data":["webhook"]},"properties":{"count":{"type":"number"},"data":{"items":{"type":"string"},"type":"array"}},"type":"object"},"responseRegistrationsV3":{"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":{"oneOf":[{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["webhook"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"url":{"description":"A URL for webhook notifications capable of receiving POST requests.\n","type":"string"}},"required":["channelType","url","channelId"],"title":"webhook","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["email"],"type":"string"},"emailBounce":{"description":"emailBounce property is set `true` if emails to the user's email address bounce. For those\nemails the notifications can no longer be sent. Such channel cannot be re-activated but it needs\nto be deleted and created again after the email has been changed in HERE Account.\n","type":"boolean"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"email","type":"object"},{"properties":{"channelId":{"description":"channel ID\n","format":"uuid","type":"string"},"channelType":{"enum":["browserPull"],"type":"string"},"eventSource":{"description":"The event source rule type.\n","enum":["attach","battery","geofence","humidity","pressure","tamper","temperature","acceleration","dwelling","stock","detention","utilization","online","shipmentSchedule"],"type":"string"},"eventType":{"description":"Type of the event.\n\nAn event is created every time an associated rule or geofence is triggered by a device ingestion.\nThe event type depends on the data the device sends.\n\nSensors that report numerical data (such as battery, humidity, pressure and temperature sensors),\ngenerate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.\nThis produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.\n\nSensors that report boolean data (such as attach and tamper sensors), generate events when the device \ntransitions from one state to another, either from `false` to `true` or vice versa.\nThis produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.\nThe same event types are also generated by the online rule when the device state changes from `offline` \n(when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) \nor vice versa.\n\nThe acceleration sensor generates events whenever the reported sensor reading \ncrosses the acceleration threshold (for example, when the device was dropped).\nThis produces events of the type EVENT. \nSuch events are stateless.\n\nEvents of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits\na geofence associated with the device.\n\nEvents of DWELLING_STARTED type are generated when the device has\nstayed inside an associated geofence for longer than the threshold duration. \nDWELLING_ENDED type events are generated when dwelling of the device has ended.\n\nEvents of DETENTION_STARTED type are generated when the device has been\nstationary for longer than the threshold duration, regardless whether the device is inside \nor outside of any geofence. \nDETENTION_ENDED type events will be generated when the device starts moving again.\n\nEvents of UNUTILIZED type are generated when the device has been stationary for longer than the\nthreshold duration.\nUTILIZED type events are generated when the device starts moving again after having been stationary.\n\nEvents of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets\ninside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.\n\nEvents of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment\nis too early, on time or delayed.\n","enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE","FALSE_TO_TRUE","TRUE_TO_FALSE","EVENT","INSIDE_GEOFENCE","OUTSIDE_GEOFENCE","OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK","DWELLING_STARTED","DWELLING_ENDED","DETENTION_STARTED","DETENTION_ENDED","UTILIZED","UNUTILIZED","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"initialState":{"description":"Events with the `initialState` property set as `true` are generated when the rule is \nevaluated for the first time. It indicates the fact that this is the initial evaluation \nstate, which would serve as a starting point for the subsequent rule evaluations.\nThe rest of the rule events would represent a transition of a device or a shipment or \na geofence from one state to another and their `initialState` property will be set to `false`.\n","type":"boolean"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"userId":{"description":"User Id.\n","pattern":"^HERE-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["channelType","userId","channelId"],"title":"browser pull","type":"object"}]},"type":"array"}},"type":"object"}],"description":"Response body contains an array of notification registration objects, count indicating the number of registrations,\nand pageToken if available. If no registrations are found, an object with empty data array is returned.\n","example":{"count":3,"data":[{"channelId":"11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000","channelType":"webhook","url":"https://example.com/call/this/web/hook1"},{"channelId":"97870f23-36cb-440f-96ef-38992d0b4ctd","channelType":"webhook","eventSource":"battery","eventType":"BELOW_RANGE","initialState":"false","ruleId":"a3f652bc-a456-7f12-cd11-123ah761yt41","url":"https://example.com/call/this/web/hook2"},{"channelId":"b6b07cae-db4c-49c1-b353-93c8dfc09453","channelType":"email","emailBounce":"false","ruleId":"e0abbb7c-3bd7-4428-a576-7a9f347a82f3","userId":"HERE-f51801ff-61c9-45b7-8f04-ecc68b6a7959"}],"pageToken":"1490376144514"},"type":"object"},"responseRelevantShipments":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"currentSegmentCalculatedEta":{"format":"date-time","type":"string"},"currentSegmentCalculatedEtd":{"format":"date-time","type":"string"},"currentSegmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"currentSegmentProvidedEta":{"format":"date-time","type":"string"},"currentSegmentProvidedEtd":{"format":"date-time","type":"string"},"currentSegmentStartedAt":{"format":"date-time","type":"string"},"currentSegmentStatus":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"responseReportsByJson":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"oneOf":[{"properties":{"timestamp":{"description":"Timestamp of the beginning of the interval\n","format":"date-time","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["timestamp","value"],"title":"timestamp-value","type":"object"},{"properties":{"trackingId":{"description":"Tracking ID on which the `value` is calculated\n","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["trackingId","value"],"title":"trackingId-value","type":"object"},{"properties":{"geofenceId":{"description":"Geofence ID on which the `value` is calculated\n","format":"uuid","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["geofenceId","value"],"title":"geofenceId-value","type":"object"},{"properties":{"timestamp":{"description":"Timestamp of the beginning of the event\n","format":"date-time","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`.","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"Duration of the event in seconds","type":"number"}},"required":["trackingId","timestamp","value"],"title":"event periods","type":"object"}]},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"},"status":{"description":"Status of the report creation. \nWhen the status is `pending` or `started`, re-check the status later again. \nThe actual reports can be queried only when the report creation status is 'completed'.\n","enum":["pending","started","completed","failed"],"type":"string"}},"required":["status","limit","count","items"],"type":"object"},"responseResources":{"additionalProperties":false,"example":{"count":3,"items":[{"resourceId":"SHP-ee73df84-0ab1-40fd-aac1-c39deb943de9"},{"resourceId":"SHP-ee73df84-0ab1-40fd-aac1-c39deb943df0"},{"resourceId":"SHP-ee73df84-0ab1-40fd-aac1-c39deb943df1"}],"limit":3,"nextPageToken":"skjfgWOF7162712JHAIW8FYBCASK!/EUQHSDkuhedf","total":10},"properties":{"count":{"description":"number of items returned in the response","type":"integer"},"items":{"description":"Array of matching resource ids","items":{"description":"matching resource id","properties":{"resourceId":{"type":"string"}},"required":["resourceId"],"type":"object"},"type":"array"},"limit":{"description":"number of items as specified in request","type":"integer"},"nextPageToken":{"description":"token to fetch the next page","type":"string"},"total":{"description":"total number of items at the moment when the first page was requested","type":"integer"}},"required":["limit","count","items","total"],"type":"object"},"responseRetrieveBatch":{"example":[{"body":{"desired":{},"reported":{"position":{"accuracy":30,"lat":40,"lng":30.2},"system":{"phoneNumber":"+4917012345"}}},"statusCode":200,"trackingId":"HERE-6da0f871-b4eb-4800-90e6-4bae86a788d6"},{"statusCode":404,"trackingId":"HERE-b0146d7b-2e46-4cee-bc71-6da03ba2da85"}],"items":{"properties":{"appId":{"description":"Virtual device application ID, only present when the device is virtual","minLength":8,"type":"string"},"body":{"description":"The data that Shadows persists for each device.\n","properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"}},"type":"object"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"statusCode":{"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"type":"array"},"responseRuleByJson":{"properties":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"},"responseRulesByJson":{"additionalProperties":false,"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"properties":{"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"}},"required":["ruleId","rule"],"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"required":["limit","count","items"],"type":"object"},"responseSegmentBody":{"additionalProperties":false,"description":"Segment details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.451Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.451Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"responseSegmentPlanBody":{"additionalProperties":false,"description":"Segment plan details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"SEGP-3253bff4-97ba-4dfa-866c-fa8703902fcf","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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`.","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"responseSegmentsWithShipmentId":{"properties":{"count":{"description":"Number of items returned in the response","maximum":100,"minimum":0,"type":"integer"},"items":{"items":{"description":"Segment details with shipmentId","properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"type":"array"},"limit":{"description":"Maximum number of items as specified in request","maximum":100,"minimum":1,"type":"integer"},"nextPageToken":{"description":"Token to fetch the next page (if exists)","type":"string"}},"type":"object"},"responseSensorRuleByJson":{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"},"responseSensorRulesByJson":{"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":{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of sensor rule objects, `count` indicates the number of returned sensor rules,\nand `pageToken` is the next page token if available.\n\nIf no sensor rules are found, an object with an empty data array is returned.\n","type":"object"},"responseShipmentBody":{"additionalProperties":false,"description":"Shipment details","example":{"autoStart":true,"description":"A shipment consisting of one segment","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.451Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.451Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentId":"SHP-d306beb9-e110-450e-9f81-3db9de1ac001","shipmentPlanId":"SHPP-de2bd93d-a371-4e22-801a-528238d1a33a","status":"pending","subShipment":false},"properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"calculatedEta":{"description":"Calculated  ETA for the shipment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the shipment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when the shipment has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"endedAt":{"description":"Timestamp indicating when the shipment ended","format":"date-time","type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"User provided ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array containing the segment details","items":{"additionalProperties":false,"description":"Segment details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","endedAt":"2025-08-15T13:52:57.451Z","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentId":"SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137","startedAt":"2025-08-15T13:52:57.451Z","status":"pending","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"type":"array"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentPlanId":{"description":"A shipment plan's id that the shipment was generated from.","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when the shipment started","format":"date-time","type":"string"},"status":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentId","autoStart","status","segments"],"type":"object"},"responseShipmentPlan":{"additionalProperties":false,"example":{"autoStart":true,"createdAt":"2025-08-15T13:52:57.451Z","description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["49716c18-9858-40bb-842a-15bf2ed02c64","ccc540b3-b2c8-4914-b00f-de518cb56e75"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":10800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"e19cec4f-445e-41d0-9f0e-d1304ea707d1","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","durationS":129600,"name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","segmentPlanId":"6c668d6b-1eeb-46c2-ba12-31265c346c04","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","durationS":7200,"name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","segmentPlanId":"b331cc64-0c83-4347-8a08-bf984675832f","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"shipmentPlanId":"SHPP-730b08fe-ec44-4e6f-b2b0-1d3cc264981c","subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"createdAt":{"description":"Timestamp indicating when the shipment plan has been created","format":"date-time","type":"string"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"Segment plan details","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","durationS":28800,"name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","segmentPlanId":"SEGP-3253bff4-97ba-4dfa-866c-fa8703902fcf","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentPlanId":{"description":"Segment plan ID","pattern":"^SEGP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","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`.","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["shipmentPlanId","segments"],"type":"object"},"responseShipmentsAssociatedWithRule":{"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":"Array of shipment IDs","items":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"type":"array"}},"type":"object"}],"description":"Response body contains an array of shipment IDs, count indicating the number of returned devices,\nand pageToken if available. If no shipments are found, an object with empty data array is returned.\n","type":"object"},"responseTelemetry":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"responseToken":{"example":{"accessToken":"h1.ySDEpBjW2fXM0Nk1IyBohA.6YOv1MfQUd1K7MCg9elZrrVTT5fKfqYECYUrD7Y77d-p9KqIZrVfjpIrkMqVC9MmfUILOm7xk7VuhCH59o0oLJCl6M8Q8cGHTKVrPcpqiEzUQKs7pSZXxVbIui0O5caUgJ3GHrS1X4aZQuB1KSsngvWMcIz0M0a4g4x8bICUHNRbISbQOWNTc7CcxRIJegIlj24dUawrhtnuQh50JUUY2pHYpSh_t8R0AVkm8JO-WEtWW3SZiLa30IR0gz2121vlRjdNolnJYsuJzHoaEKEkrMj9ffybtcBVWo9dkY1qmDQ-DRg_loVenJK45kjHJijkQ902r_vhH8jtoXTrZ1RBFHuZtwLW8xXBw70BCWPu4OYGgthjaq61mpE8iP1s7MG7gbAiW_S249aaoWMUxQN6djw8cNoTP6YPM-ivSieRMxwPl56mhRQ5GRjQa8AYkuOvoCFg-LCMIxTYhrDZM4HFWQ.duHFPjvWUQbdArCL5CU7bTowK5fD07ro83r6CRWjuB_1TK2VyO1lvfNFZIZePWLyTlN0y9uqD7Uro6t87h_a0zfpeU8_529KrB9vgpcBARF5LGBo8Rh7y2islYxCGJ2pAxHADtxkfiZ8TCoEatg0F3jkeggOl8YUFkeaI2g7WtnhZwrXBwW9QizQH3EM_Djnu66-kv_aM-uddpzZJJ7CmrJiwhucaEJeYRDSpuzzZWT6_NwBg6_xLjyseCv5AGs8EmsuStCFP0Ey7UDIqo9V2RA9uDP64Q0mvEw3EUTHmJGHF_8E2s4iIpjKJCvUGsGYAy8XrjeW10EBAMkfrn6cwA","expiresIn":86399},"properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"integer"}},"type":"object"},"responseTokenExchange":{"example":{"accessToken":"h1.2...EyS_b6g3uDcKnpknGWQ","expiresIn":86400,"issuedTokenType":"urn:ietf:params:oauth:token-type:access_token","scope":"hrn:here:authorization::myrealm:project/my-project-0000","tokenType":"Bearer"},"properties":{"accessToken":{"description":"Project-scoped access token.","type":"string"},"expiresIn":{"description":"The lifetime in seconds of the access token.\nFor example 86400 means the token will expire in 24 hours from the time the response was generated.\n","type":"integer"},"issuedTokenType":{"description":"The type of token issued when grantType is \"urn:ietf:params:oauth:grant-type:token-exchange\".","type":"string"},"scope":{"description":"Requested scope of the access token. Must be an HRN identifying a project that the identified user has access to.","type":"string"},"tokenType":{"description":"The token type is 'Bearer'.","type":"string"}},"type":"object"},"responseTraces":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{},"type":"object"},{"properties":{"data":{"items":{"description":"A trace sample reported by the device.","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"serverTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThis describes when the measurements were processed by the backend.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nSpecifies the time the device telemetry measurements were taken.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"trackingDisabled":{"description":"Array containing the properties that were removed from the original device data as per disableTracking property in the device shadow. `position` refers to all positioning data and `sensors` to all reported sensor data.\n","items":{"enum":["position","sensors","bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps","accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"type":"array"}},"type":"object"},"type":"array"}},"type":"object"}],"description":"The response body contains an array of traces, `count` is the number of\nreturned items and `pageToken` is the next page token if available.\n\nIf no traces are found, an object with an empty data array is returned.\n\nTraces are sorted in descending order based on their timestamps.\n","example":{"count":2,"data":[{"payload":{},"position":{"accuracy":"25","alt":"86","altaccuracy":"96","lat":"52.4988217","lng":"13.35170005"},"serverTimestamp":1451425709682,"system":{"client":{"firmware":"10.1.1","hasAttachSensor":true,"hasHumiditySensor":true,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"manufacturer":"CONCOX","model":"AT4H","name":"MT2503","platform":"MT6261","version":"10.0.16"},"reportedSensorData":{"batteryLevel":100,"deviceIsAttached":true,"deviceIsStationary":true,"deviceIsTampered":false,"pressureHpa":994.342,"relativeHumidity":31.39,"temperatureC":24.48}},"timestamp":1451425708571},{"payload":{"refAppData":{"batteryState":{"charging":false,"level":61,"temperature":26.9},"nwpos":true}},"position":{"accuracy":"25","alt":"86","altaccuracy":"96","lat":"52.4988217","lng":"13.35170005"},"serverTimestamp":1451425710434,"system":{"reportedSensorData":{"batteryLevel":100,"deviceIsAttached":true,"deviceIsStationary":true,"deviceIsTampered":false,"pressureHpa":994.416,"relativeHumidity":31.37,"temperatureC":24.46}},"timestamp":1451425708216}],"pageToken":"1490376144514"}},"responseTrackingId":{"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"},"responseTransitions":{"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":{"additionalProperties":false,"description":"| Transition Type          | Meaning                                  |\n| ------------------------ | ---------------------------------------- |\n| PING_OUTSIDE_FENCE       | The device has transitioned outside the geofence. |\n| PING_IN_FENCE            | The device has transitioned inside the geofence. |\n","example":{"geofence":"{ \"name\": \"Berlin Office\", \"type\": \"circle\", \"definition\": { \"center\": { \"lat\": 52.5308398, \"lng\": 13.38490035}, \"radius\": 100 }, \"description\": \"An area in berlin\" }","geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_IN_FENCE","notificationStatus":"NOT_SENT","timestamp":1499258057036,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"},"properties":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type"],"title":"POI","type":"object"}]},"geofenceId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"inOut":{"enum":["PING_OUTSIDE_FENCE","PING_IN_FENCE"],"type":"string"},"notificationStatus":{"enum":["SENT","NOT_SENT"],"type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["inOut","geofenceId","trackingId","timestamp","notificationStatus"],"type":"object"},"type":"array"}},"type":"object"}],"description":"The response body contains an array of transitions, `count` is the number of\nreturned items and `pageToken` is the next page token if available.\n\nIf no transitions are found, an object with an empty data array is\nreturned.\n\nTransitions are sorted in descending order based on their timestamps.\n","example":{"count":2,"data":[{"geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_OUTSIDE_FENCE","notificationStatus":"SENT","timestamp":1499258184142,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"},{"geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_IN_FENCE","notificationStatus":"NOT_SENT","timestamp":1499258057035,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"}],"pageToken":"1234abcd"}},"responseUpdateRule":{"allOf":[{"properties":{"message":{"description":"The message text is \"updated\" if the sensor rule update was successful.","type":"string"}},"type":"object"},{"description":"Response body contains a single sensor rule object","properties":{"description":{"type":"string"},"id":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"name":{"type":"string"},"range":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"threshold":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"}},"required":["id","type"],"type":"object"}]},"resultObject":{"additionalProperties":false,"properties":{"connectorId":{"description":"Identifier of the connector.","maxLength":50,"minLength":1,"type":"string"},"deviceId":{"description":"Device ID of a provisioned device","maxLength":50,"minLength":1,"type":"string"},"deviceSecret":{"description":"A newly created device secret. A physical device license is a `deviceId` and `deviceSecret` credential pair.","type":"string"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Error code","type":"integer"},"details":{"description":"Error details","type":"string"},"message":{"description":"Error description","type":"string"}},"type":"object"},"type":"array"},"externalDeviceId":{"description":"Identifier of the device on the external cloud.","maxLength":50,"minLength":1,"type":"string"},"externalId":{"description":"Virtual device external ID, only present when the device is virtual","maxLength":50,"minLength":1,"type":"string"},"name":{"description":"The name of the device. Must be unique within a project.","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`.","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"rule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Utilization event is triggered when the asset starts moving\nindicating that the asset is utilized, and also when the asset stops\nmoving and has been stationary for longer than the threshold duration\nindicating that the asset is unutilized.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["utilization"],"type":"string"}},"required":["type","threshold"],"title":"Utilization","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Detention event is triggered when the asset has been continuously stationary for longer\nthan the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["detention"],"type":"string"}},"required":["type","threshold"],"title":"Detention","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"description":"Dwelling event is triggered when the asset has been continuously inside a geofence\nfor longer than the threshold duration.\n","properties":{"durationS":{"description":"Duration in seconds","maximum":2147483647,"minimum":0,"type":"integer"}},"required":["durationS"],"type":"object"},"type":{"description":"The rule type","enum":["dwelling"],"type":"string"}},"required":["type","threshold"],"title":"Dwelling","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"geofenceId":{"description":"Geofence ID","format":"uuid","type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"maxVolume":{"description":"A maximum volume of stock","minimum":0,"type":"integer"},"minVolume":{"description":"A minimum volume of stock","minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["stock"],"type":"string"}},"required":["type","geofenceId","threshold"],"title":"Stock","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"type":{"description":"The rule type","enum":["online"],"type":"string"}},"required":["type"],"title":"Online","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Rule description","maxLength":1000,"type":"string"},"name":{"description":"Rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"after":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is behind the schedule","maximum":2147483647,"minimum":0,"type":"integer"},"before":{"description":"Allowed time deviation in seconds from the planned ETD/ETA in case the shipment is ahead of schedule","maximum":2147483647,"minimum":0,"type":"integer"}},"type":"object"},"type":{"description":"The rule type","enum":["shipmentSchedule"],"type":"string"}},"required":["type","threshold"],"title":"Shipment Schedule","type":"object"}]},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"rules":{"description":"Rule or sensor rule IDs to be associated with the device","items":{"description":"An ID of a rule or a sensor rule","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"scan":{"description":"Radio measurements used for positioning or radio map contribution.\n","properties":{"bt":{"description":"Bluetooth access points","items":{"description":"Bluetooth measurement. In addition to rss, one of mac, eddystoneId, or iBeaconId is required.","properties":{"eddystoneId":{"description":"Full Identifier as Base64 string. A combination of 10-byte Namespace component and a 6-byte Instance component","maxLength":24,"minLength":24,"type":"string"},"iBeaconId":{"description":"Full Identifier as Base64 string. A combination of 16-byte UUID + 2-byte major + 2-byte minor","maxLength":28,"minLength":28,"type":"string"},"mac":{"description":"The MAC address of the Bluetooth access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. For privacy reasons positioning based on a single Bluetooth AP is not possible. There must be at least one other matching WLAN or Bluetooth access point. Either MAC, EddystoneId, or iBeaconId is required.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"rss":{"description":"Received signal strength (dBm) at the terminal","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the measurement (UTC)","format":"date-time","type":"string"}},"required":["rss"],"type":"object"},"maxItems":128,"type":"array"},"cdma":{"description":"CDMA cells","items":{"description":"CDMA measurement","properties":{"baselat":{"description":"Base station latitude (Optional)","maximum":90,"minimum":-90,"type":"number"},"baselng":{"description":"Base station longitude (Optional)","maximum":180,"minimum":-180,"type":"number"},"bsid":{"description":"Base Station ID, BID","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency (Optional, you must specify a value for this item when you specify a value for pnoffset)","maximum":2047,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"nmr":{"description":"CDMA Network measurements (Optional)","items":{"description":"CDMA Network measurement","properties":{"bsid":{"description":"Base Station ID (Optional)","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency","maximum":2047,"minimum":0,"type":"integer"},"frequency":{"description":"Deprecated. Use 'channel' instead.","maximum":2047,"minimum":0,"type":"integer"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset","maximum":511,"minimum":0,"type":"integer"}},"required":["pnoffset","channel"],"type":"object"},"maxItems":32,"type":"array"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset (Optional, you must specify a value for this item when you specify a value for channel)","maximum":511,"minimum":0,"type":"integer"},"rz":{"description":"Registration zone (Optional)","maximum":4095,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["sid","nid","bsid"],"type":"object"},"maxItems":16,"type":"array"},"country":{"description":"Indicates in which country the WLAN APs are located (in case cell data is not present in radio_observations)","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"}},"required":["mcc"],"type":"object"},"gps":{"description":"Optionally supply this to improve HERE Tracking's positioning service by\ncontributing the scan data along with a GPS position.\n","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"gsm":{"description":"GSM cells (GERAN)","items":{"description":"GSM measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel) (Optional, you must specify a value for this item when you specify a value for bsic).","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code) (Optional, you must specify a value for this item when you specify a value for bcch).","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier, 16 bits. Mcc+mnc+lac+cid uniquely identifies the GSM cell.","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"GSM Network measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel)","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code)","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (Optional)","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"}},"required":["bsic","bcch"],"type":"object"},"maxItems":16,"type":"array"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"},"ta":{"description":"Timing advance (Optional). Expressed in the units of GSM bits equaling to 48/13 μs ~ 1107 meters.","maximum":63,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","lac","cid"],"type":"object"},"maxItems":16,"type":"array"},"lte":{"description":"LTE cells (E-UTRA, 4G)","items":{"description":"LTE measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier, 28 bits (20 bits eNodeB and 8 bits Cell id). Mcc+mnc+cid uniquely identifies the LTE cell, tac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel (Optional, you must specify a value for this item when you specify a value for pci)","maximum":65535,"minimum":0,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"LTE Network measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel","maximum":65535,"minimum":0,"type":"integer"},"pci":{"description":"Physical Cell Identity","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"}},"required":["pci","earfcn"],"type":"object"},"maxItems":16,"type":"array"},"pci":{"description":"Physical Cell Identity (Optional, you must specify a value for this item when you specify a value for earfcn)","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"},"ta":{"description":"Timing Advance (Optional). Expressed in the units of 16*Ts (16 Basic time units) = 16/(15000*2048) seconds ~ 156meters. For reference see TS 36.213 and 36.211.","maximum":1282,"minimum":0,"type":"integer"},"tac":{"description":"Tracking Area Code (Optional)","maximum":65535,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"tdscdma":{"description":"TD-SCDMA cell (UTRA-TDD, 3G UMTS TDD)","items":{"description":"TD-SCDMA measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID) (Optional, you must specify a value for this item when you specify a value for uarfcn).","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the TDSCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"TD-SCDMA Network measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID)","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcn","cellparams"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"ta":{"description":"Timing advance (Optional). Round-Trip distance presented in the units of 4*c/7.68e6 ~156 meters. That is, the scaling factor is 4 times the chip length at chip rate of 7.68 Mchips/s. Note that at chip rates 1.28 Mchips/s and 3.84 Mchips/s you need to scale according to chip length of 7.68 Mchips/s, that is, multiply by 6 or 2 if needed.","maximum":1530,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell (Optional, you must specify a value for this item when you specify a value for cellparams).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wcdma":{"description":"WCDMA cells (UTRA-FDD, 3G UMTS)","items":{"description":"WCDMA measurement","properties":{"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the WCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"WCDMA Network measurement","properties":{"cid":{"description":"UTRAN Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel)","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcndl","psc"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel) (Optional, you must specify a value for this item when you specify a value for uarfcndl).","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell (Optional, you must specify a value for this item when you specify a value for psc).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wlan":{"description":"WLAN access points","items":{"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac"],"type":"object"},"maxItems":128,"type":"array"}},"type":"object"},"segmentDescription":{"description":"Description of the segment","maxLength":1000,"type":"string"},"segmentName":{"description":"Name of the segment","maxLength":50,"type":"string"},"segmentStatus":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"segmentsWithShipmentId":{"description":"Segment details with shipmentId","properties":{"calculatedEta":{"description":"Calculated  ETA for the segment","format":"date-time","type":"string"},"calculatedEtd":{"description":"Calculated ETD for the segment","format":"date-time","type":"string"},"createdAt":{"description":"Timestamp indicating when this segment created","format":"date-time","type":"string"},"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"endedAt":{"description":"Timestamp indicating when this segment ended","format":"date-time","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"User provided ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"User provided ETD for the segment","format":"date-time","type":"string"},"segmentId":{"description":"Segment ID","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"startedAt":{"description":"Timestamp indicating when this segment started","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"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"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"},"sensorRule":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum battery sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":0,"type":"number"},"end":{"description":"A maximum battery sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":0,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["battery"],"type":"string"}},"required":["type","range"],"title":"Battery","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum humidity sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":0,"type":"number"},"end":{"description":"A maximum humidity sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":0,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["humidity"],"type":"string"}},"required":["type","range"],"title":"Humidity","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum pressure sensor alarm threshold value. Must be less than end.","maximum":1500,"minimum":300,"type":"number"},"end":{"description":"A maximum pressure sensor alarm threshold value. Must be greater than begin.","maximum":1500,"minimum":300,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["pressure"],"type":"string"}},"required":["type","range"],"title":"Pressure","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"range":{"additionalProperties":false,"properties":{"begin":{"description":"A minimum temperature sensor alarm threshold value. Must be less than end.","maximum":100,"minimum":-70,"type":"number"},"end":{"description":"A maximum temperature sensor alarm threshold value. Must be greater than begin.","maximum":100,"minimum":-70,"type":"number"}},"required":["begin","end"],"type":"object"},"type":{"description":"The sensor type.","enum":["temperature"],"type":"string"}},"required":["type","range"],"title":"Temperature","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"type":{"description":"The sensor type.","enum":["attach","tamper"],"type":"string"}},"required":["type"],"title":"Boolean","type":"object"},{"additionalProperties":false,"properties":{"description":{"description":"Sensor rule description","maxLength":1000,"type":"string"},"name":{"description":"Sensor rule name","maxLength":50,"type":"string"},"threshold":{"additionalProperties":false,"properties":{"value":{"description":"An acceleration sensor alarm threshold value.","maximum":100,"minimum":2,"type":"number"}},"required":["value"],"type":"object"},"type":{"description":"The sensor type.","enum":["acceleration"],"type":"string"}},"required":["type","threshold"],"title":"Acceleration","type":"object"}]},"sensorRuleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"sensorThresholdRange":{"properties":{"begin":{"description":"The lower threshold value.","type":"number"},"end":{"description":"The upper threshold value.","type":"number"}},"required":["begin","end"],"type":"object"},"sensorThresholdValue":{"properties":{"value":{"description":"Threshold value","type":"number"}},"required":["value"],"type":"object"},"sensorType":{"description":"The sensor type.","enum":["attach","battery","humidity","pressure","tamper","temperature","acceleration"],"type":"string"},"shadowStateResponse":{"anyOf":[{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","maximum":4102448400000,"minimum":0,"type":"integer"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe time of the last update to the desired shadow.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"title":"desired","type":"object"},{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"integer"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nThe timestamp of the newest telemetry sent by the device. Note that this is not necessarily\nthe timestamp of all the reported values in the reported shadow since the shadow retains\nvalues from previous ingestions if the latest telemetry did not conatain them.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"title":"reported","type":"object"}]},"shadowV4":{"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"},"shadow":{"properties":{"desired":{"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"description":"Contains device configuration settings.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Begin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","format":"date-time","type":"string"},"end":{"description":"End time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","format":"date-time","type":"string"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"lastModifiedGeofenceTimestamp":{"description":"The time of the last update to geofences that device is associated\nwith. This value is zero when device hasn't yet been associated with\nany geofence. This is set by HERE Tracking when any geofences\nassociated with the device is modified or removed. Also adding and\nremoving geofence associations update this value.\n","format":"date-time","type":"string"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorAlarmConfig":{"description":"The device sensors alarm configuration.\n","properties":{"alertAccelerationGMax":{"description":"An upper threshold value for acceleration in g-forces.","type":"number"},"alertAccelerationGMin":{"description":"A lower threshold value for acceleration in g-forces.","type":"number"},"alertBatteryLevelPMax":{"description":"An upper threshold value for battery level percentage.","type":"number"},"alertBatteryLevelPMin":{"description":"A lower threshold value for battery level percentage.","type":"number"},"alertPressureHpaMax":{"description":"An upper threshold value for pressure in hectopascals.","type":"number"},"alertPressureHpaMin":{"description":"A lower threshold value for pressure in hectopascals.","type":"number"},"alertRelativeHumidityMax":{"description":"An upper threshold value for relative humidity percentage.","type":"number"},"alertRelativeHumidityMin":{"description":"A lower threshold value for relative humidity percentage.","type":"number"},"alertTemperatureCMax":{"description":"An upper threshold value for temperature in degrees Celsius.","type":"number"},"alertTemperatureCMin":{"description":"A lower threshold value for temperature in degrees Celsius.","type":"number"},"alertTiltDegreeMax":{"description":"An upper threshold value for tilt in degrees.","type":"number"},"alertTiltDegreeMin":{"description":"A lower threshold value for tilt in degrees.","type":"number"},"isAttachAlertEnabled":{"default":false,"description":"True if attach sensor alert in device is enabled.","type":"boolean"},"isTamperAlertEnabled":{"default":false,"description":"True if tamper sensor alert in device is enabled.","type":"boolean"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"required":["stateVersion","lastModifiedGeofenceTimestamp"],"type":"object"},"timestamp":{"description":"The time of the last update to the desired shadow.\n","format":"date-time","type":"string"}},"type":"object"},"reported":{"description":"The `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.\nSuch properties are stored in `system.computed` property of the shadow.\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","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","format":"date-time","type":"string"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"computed":{"description":"Values computed by HERE Tracking based on other data available.","properties":{"lastMovedTimestamp":{"description":"Timestamp referring to the trace point when the asset was last detected moving.\nAsset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","format":"date-time","type":"string"},"moving":{"description":"Asset is considered moving if the positions of two consecutive trace points differ more\nthan the combined positioning accuracy + 100 meters.\n","type":"boolean"},"online":{"description":"Online status of the device. Computed based on the device's reporting rate. If the device has not reported within the time frame of the reporting rate plus five minutes, the device is considered to be offline. If the reporting rate is not specified for the device, a default of 15 minutes is used.","type":"boolean"},"outlier":{"description":"Indicates that HERE Tracking detected position to be a possible outlier.\n","properties":{"correctedPosition":{"description":"HERE Tracking estimate of more correct position.","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"timestamp":{"description":"Timestamp for the corrected position","format":"date-time","type":"string"}},"required":["accuracy","lat","lng"],"type":"object"},"reason":{"description":"Reason why position was considered to be an outlier.","type":"string"}},"required":["reason"],"type":"object"}}},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"This describes when the reported measurements were taken.\n","format":"date-time","type":"string"}},"type":"object"}},"required":["desired","reported"],"type":"object"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["shadow"],"type":"object"},"shadowsUpdateBody":{"additionalProperties":false,"properties":{"desired":{"additionalProperties":false,"description":"The desired shadow of the device.\n","properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"system":{"additionalProperties":false,"description":"Contains values for the device configuration. HERE Tracking uses these values\nfor various application flows.\n","properties":{"detectOutliers":{"description":"A boolean value that sets outlier detection on or off","type":"boolean"},"disableTracking":{"description":"Tracking can be disabled and enabled by defining disableTracking object.\nIn order to disable tracking, one must at least provide the begin time of the disabling\nperiod and define either position or sensor properties one wants to disable. One can also\ndisable both position and sensors at the same time. By default tracking is enabled.\n","properties":{"periods":{"description":"Define begin and end of the disabling period. All trace points with timestamp that falls between begin and end times will be disabled according to the settings defined in the position and sensors properties.\n","items":{"properties":{"begin":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nBegin time of the tracking disabling period.\n\nBegin must be smaller than end. Begin must be greater or equal to current time.\nBegin can be set without end. If there exists already end time which is earlier\nthan given new begin time, the existing end time will be deleted.\n","maximum":4102448400000,"minimum":2,"type":"integer"},"end":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC\n\nEnd time of the tracking disabling period.\n\nEnd must be greater than begin. End must be greater or equal to current time.\nEnd can be set without begin if begin is already set.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"type":"object"},"maxItems":1,"minItems":0,"title":"Array of periods","type":"array"},"position":{"description":"Define position methods to be disabled","oneOf":[{"description":"All positioning data the device sends will be removed before further processing. No geofence and location events will be generated\n","enum":["all"],"title":"all positioning","type":"string"},{"items":{"description":"The items specified in the position array will be removed from the ingestion scan object before further processing. Position may be resolved by the remaining scan properties. Some geofence and location events may be generated.\n","enum":["bt","country","gsm","wcdma","tdscdma","lte","cdma","wlan","gps"],"type":"string"},"minItems":1,"title":"specified positioning methods","type":"array"},{"description":"By setting the position property empty string, all positioning data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]},"sensors":{"description":"Define sensors to be disabled","oneOf":[{"description":"All sensor data the device sends will be removed before further processing. No sensor events will be generated.\n","enum":["all"],"title":"all sensors","type":"string"},{"items":{"description":"The items specified in the sensors array will be removed from the ingestion system.reportedSensorData object before further processing. Sensor events will not be generated for the disabled sensors.\n","enum":["accelerationG","deviceIsAttached","deviceIsStationary","batteryIsCharging","batteryLevel","pressureHpa","relativeHumidity","deviceIsTampered","temperatureC","tiltDegree"],"type":"string"},"minItems":1,"title":"specified sensors","type":"array"},{"description":"By setting the sensors property empty string, all sensors data will be re-enabled during the disabling period.\n","enum":[""],"title":"re-enable","type":"string"}]}},"type":"object"},"rate":{"description":"This can be used to specify the rates at which the device performs certain tasks.","properties":{"distanceM":{"description":"Send an update if the device has moved farther than the specified distance in meters","minimum":0,"type":"number"},"sampleMs":{"description":"The rate at which to sample signals in milliseconds","minimum":0,"type":"number"},"sendMs":{"description":"The rate at which to send sample results in milliseconds","minimum":0,"type":"number"}},"type":"object"},"sensorLoggingConfigurations":{"description":"An array of objects that holds sensor logging configurations","items":{"additionalProperties":false,"properties":{"samplingFrequency":{"description":"Sampling frequrency of single sensor loggin configuration (in milliseconds)","minimum":1,"type":"number"},"type":{"description":"Type of single sensor logging configuration","enum":["acceleration","pressure","temperature","humidity","gnss"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":5,"minItems":0,"type":"array"},"sensorLoggingEnabled":{"description":"Flag that sets sensor logging on or off","type":"boolean"},"syncGeofences":{"description":"A boolean value that sets efficient geofencing on or off","type":"boolean"},"wlanConfigurations":{"description":"An array of objects that holds wlan configurations","items":{"additionalProperties":false,"properties":{"password":{"description":"WLAN password. Please note that the password is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity. Password is required if security mode is other then 'none'.","maxLength":63,"minLength":8,"type":"string"},"securityMode":{"description":"Selected security mode","enum":["none","wpa2psk"],"type":"string"},"ssid":{"description":"Name given to a WLAN that is used by the client to access a WLAN network. Please note that the SSID is stored to the device unencrypted. Do not use secure private networks, such as Intranet, for tracker WLAN connectivity.","maxLength":32,"minLength":1,"type":"string"},"ssidIsHidden":{"description":"Flag that informs if SSID is hidden","type":"boolean"}},"required":["securityMode","ssid"],"type":"object"},"maxItems":10,"minItems":0,"type":"array"},"wlanConnectivityEnabled":{"description":"A boolean value that sets wlan connectivity on or off","type":"boolean"}},"type":"object"}},"type":"object"}},"required":["desired"],"type":"object"},"shipment":{"description":"Response body contains a single shipment object.\n","properties":{"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentId"],"type":"object"},"shipmentDescription":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"shipmentFromBody":{"additionalProperties":false,"description":"Body for creating a shipment","example":{"autoStart":true,"description":"A shipment consisting of four segments","name":"From Portugal to Panama","ruleIds":["712dde2c-20e6-4903-82f1-0beb0dd9e4bd","6d1da24b-5187-42ab-9eb5-1e43c61b6bae"],"segments":[{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},{"description":"From port to another port","destination":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","name":"Marine transport","origin":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","trackingId":"VRTR-8b9fd950-ce19-4aaf-98d5-840a76652658","transportMode":"sea"},{"description":"From port to storage","destination":"LOC-733deb91-efa3-41b6-9003-92845866b511","name":"Truck transport","origin":"LOC-a2dc2c70-cc3e-4fa5-ac77-4c63558e7f97","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"}],"subShipment":false},"properties":{"autoStart":{"default":true,"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"subShipment":{"default":false,"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"required":["segments"],"title":"From new","type":"object"},"shipmentFromPlan":{"additionalProperties":false,"description":"Create shipment from an existing shipment plan","example":{"shipmentDeparture":"2025-08-15T13:52:57.456Z","shipmentPlanId":"SHPP-cfd35027-720f-4196-849b-6e97028b66bd"},"properties":{"shipmentDeparture":{"description":"ETD of the shipment instance. Used to calculate the ETDs and ETAs of all the segments based on the segment durations defined in the plan.","format":"date-time","type":"string"},"shipmentPlanId":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"}},"required":["shipmentPlanId"],"title":"From existing","type":"object"},"shipmentId":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentIds":{"description":"Array of shipment IDs","items":{"description":"Shipment ID","pattern":"^SHP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"type":"array"},"shipmentName":{"description":"Name of the shipment","maxLength":50,"type":"string"},"shipmentPlanIds":{"description":"Provide array of shipment plan ids to include into the shipment report. If just a single shipment plan id is\ngiven, then the shipment report will include only metrics and shipments for the given shipment plan. If none\nis given, then the shipment report will include all shipment plans.\n","items":{"description":"Shipment plan ID","pattern":"^SHPP-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"maxItems":100,"minItems":1,"type":"array"},"shipmentReportError":{"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"},"shipmentReportId":{"description":"Shipment report ID","pattern":"^SHPR-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"shipmentReportStatus":{"enum":["completed","failed","ongoing","pending"],"type":"string"},"shipmentRulesBody":{"additionalProperties":false,"properties":{"geofenceIds":{"description":"Array of geofence IDs","items":{"description":"Geofence ID","format":"uuid","type":"string"},"maxItems":15,"type":"array"},"ruleIds":{"description":"Array of rule IDs","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":15,"type":"array"}},"required":["ruleIds","geofenceIds"],"type":"object"},"shipmentScheduleCount":{"allOf":[{"properties":{"SHIPMENT_DELAYED":{"description":"Number of devices currently in this event state.\n","type":"number"},"SHIPMENT_EARLY":{"description":"Number of devices currently in this event state.\n","type":"number"},"SHIPMENT_ON_TIME":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["shipmentSchedule"],"type":"string"}},"required":["eventSource","SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"shipmentSchedule"},"shipmentStatus":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"startIndex":{"default":0,"description":"Start of returned block from a list. Default 0.","minimum":0,"type":"integer"},"startedAfter":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich started after the provided date.\n","format":"date-time","type":"string"},"startedBefore":{"description":"Include successfully completed shipments of each shipment plan into the shipment report generation\nwhich started before the provided date.\n","format":"date-time","type":"string"},"status":{"enum":["pending","ongoing","completed","cancelled"],"type":"string"},"statusResponseJson":{"allOf":[{"properties":{"count":{"default":1000,"description":"The number of items in the response.","maximum":1000,"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":{"oneOf":[{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["attach","tamper","online"],"type":"string"},"eventType":{"enum":["FALSE_TO_TRUE","TRUE_TO_FALSE"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"attach, tamper, online"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source rule type.\n","enum":["battery","humidity","pressure","temperature"],"type":"string"},"eventType":{"enum":["BELOW_RANGE","IN_RANGE","ABOVE_RANGE"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"battery, humidity, pressure, temperature"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: acceleration rule\n","enum":["acceleration"],"type":"string"},"eventType":{"enum":["EVENT"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"acceleration"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: geofence rule\n","enum":["geofence"],"type":"string"},"eventType":{"enum":["INSIDE_GEOFENCE","OUTSIDE_GEOFENCE"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"geofence"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: dwelling rule\n","enum":["dwelling"],"type":"string"},"eventType":{"enum":["DWELLING_STARTED","DWELLING_ENDED"],"type":"string"},"geofenceId":{"description":"An ID of a geofence that triggered the dwelling event\n","format":"uuid","type":"string"}},"required":["eventSource","eventType","geofenceId"]}],"title":"dwelling"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: detention rule\n","enum":["detention"],"type":"string"},"eventType":{"enum":["DETENTION_STARTED","DETENTION_ENDED"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"detention"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"description":"The event source: utilization rule\n","enum":["utilization"],"type":"string"},"eventType":{"enum":["UTILIZED","UNUTILIZED"],"type":"string"}},"required":["eventSource","eventType"]}],"title":"utilization"},{"properties":{"eventSource":{"description":"The event source: stock rule\n","enum":["stock"],"type":"string"},"eventType":{"description":"The \"OVERSTOCK\" type - Events are triggered when the number of assets\nis over a maximum stock volume.\n\nThe \"UNDERSTOCK\" type - Events are triggered when the number of assets\nis under a minimum stock volume.\n\nThe \"NORMAL_VOLUME\" type - Events are triggered when the number of assets\nis between the minimum stock volume and the maximum stock volume.\n","enum":["OVERSTOCK","NORMAL_VOLUME","UNDERSTOCK"],"type":"string"},"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"title":"stock","type":"object"},{"allOf":[{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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","timestamp","ruleId"]},{"properties":{"eventSource":{"enum":["shipmentSchedule"],"type":"string"},"eventType":{"enum":["SHIPMENT_EARLY","SHIPMENT_ON_TIME","SHIPMENT_DELAYED"],"type":"string"},"segmentId":{"description":"An ID of the segment where the schedule deviation was detected\n","pattern":"^SEG-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"segmentStatus":{"description":"Status of the segment.","enum":["pending","ongoing","completed","cancelled"],"type":"string"}},"required":["eventSource","eventType","segmentId","segmentStatus"],"type":"object"}],"title":"shipment schedule"}]},"type":"array"}},"type":"object"}]},"storage":{"description":"Which data storage API has the given key and value.","enum":["aliases","labels","metadata"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"},"succeeded":{"description":"The number of devices for which all planned upload operations succeeded.","type":"integer"},"tagLabels":{"description":"Arbitrary tags to be assigned to the device","items":{"description":"Arbitrary tag to be assigned to the device","type":"string"},"maxItems":10,"type":"array"},"telemetry":{"properties":{"payload":{"description":"A free format JSON object.\nThe maximum size is 1000B.\n","type":"object"},"position":{"description":"The device location","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"confidence":{"description":"Confidence level in percent for the accuracy/uncertainty. If not specified, the default is 68 (this corresponds to a 68% probability that the true position is within the accuracy/uncertainty radius of the position; the higher the number, the greater the confidence level).","maximum":95,"minimum":50,"type":"integer"},"floor":{"description":"The building where the measurements were taken","properties":{"id":{"description":"The building id","maximum":100,"minimum":1,"type":"string"},"level":{"description":"The floor in the building in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maximum":255,"minimum":1,"type":"string"}},"required":["id","name","level"],"type":"object"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Timestamp of the position","maximum":4102448400000,"minimum":2,"type":"integer"},"type":{"description":"Position type, 'gnss' (satellite based), 'cell' or 'wlan' (network based)","type":"string"},"wlancount":{"description":"The total number of observed WLAN APs in the scan used for producing the position. ('wlan' position type only)","maximum":254,"minimum":1,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"scan":{"description":"Radio measurements used for positioning or radio map contribution.\n","properties":{"bt":{"description":"Bluetooth access points","items":{"description":"Bluetooth measurement. In addition to rss, one of mac, eddystoneId, or iBeaconId is required.","properties":{"eddystoneId":{"description":"Full Identifier as Base64 string. A combination of 10-byte Namespace component and a 6-byte Instance component","maxLength":24,"minLength":24,"type":"string"},"iBeaconId":{"description":"Full Identifier as Base64 string. A combination of 16-byte UUID + 2-byte major + 2-byte minor","maxLength":28,"minLength":28,"type":"string"},"mac":{"description":"The MAC address of the Bluetooth access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. For privacy reasons positioning based on a single Bluetooth AP is not possible. There must be at least one other matching WLAN or Bluetooth access point. Either MAC, EddystoneId, or iBeaconId is required.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"rss":{"description":"Received signal strength (dBm) at the terminal","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the measurement (UTC)","format":"date-time","type":"string"}},"required":["rss"],"type":"object"},"maxItems":128,"type":"array"},"cdma":{"description":"CDMA cells","items":{"description":"CDMA measurement","properties":{"baselat":{"description":"Base station latitude (Optional)","maximum":90,"minimum":-90,"type":"number"},"baselng":{"description":"Base station longitude (Optional)","maximum":180,"minimum":-180,"type":"number"},"bsid":{"description":"Base Station ID, BID","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency (Optional, you must specify a value for this item when you specify a value for pnoffset)","maximum":2047,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"nmr":{"description":"CDMA Network measurements (Optional)","items":{"description":"CDMA Network measurement","properties":{"bsid":{"description":"Base Station ID (Optional)","maximum":65535,"minimum":0,"type":"integer"},"channel":{"description":"CDMA channel frequency","maximum":2047,"minimum":0,"type":"integer"},"frequency":{"description":"Deprecated. Use 'channel' instead.","maximum":2047,"minimum":0,"type":"integer"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset","maximum":511,"minimum":0,"type":"integer"}},"required":["pnoffset","channel"],"type":"object"},"maxItems":32,"type":"array"},"pilotpower":{"description":"Pilot Power (dBm) (Optional). If Pilot Power is not available directly, it needs to be calculated from Total Power in the band and Pilot Strength with respect to the Total Power. Pilot power less than -142dBm should be mapped to -142. Pilot power greater than -49dBm should be mapped to -49.","maximum":-49,"minimum":-142,"type":"integer"},"pnoffset":{"description":"Pseudonoise offset (Optional, you must specify a value for this item when you specify a value for channel)","maximum":511,"minimum":0,"type":"integer"},"rz":{"description":"Registration zone (Optional)","maximum":4095,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["sid","nid","bsid"],"type":"object"},"maxItems":16,"type":"array"},"country":{"description":"Indicates in which country the WLAN APs are located (in case cell data is not present in radio_observations)","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"}},"required":["mcc"],"type":"object"},"gps":{"description":"Optionally supply this to improve HERE Tracking's positioning service by\ncontributing the scan data along with a GPS position.\n","properties":{"accuracy":{"description":"Uncertainty circle radius in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"alt":{"description":"Altitude in meters (referenced to the WGS-84 ellipsoid) negative or positive.","type":"number"},"altaccuracy":{"description":"Uncertainty of the altitude estimate in meters (degree of confidence according to the 'confidence' parameter).","minimum":0,"type":"number"},"heading":{"description":"GPS/GNSS heading in degrees, clockwise from true north. You must specify a value for this item when you specify a value for speed.","maximum":359,"minimum":0,"type":"integer"},"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"},"satellitecount":{"description":"Number of GPS/GNSS satellites used for the calculation of the position fix. ('gnss' position type only)","maximum":50,"minimum":1,"type":"integer"},"speed":{"description":"GPS/GNSS speed of the device (m/s). One must specify a value for this item when one specifies a value for heading.","minimum":0,"type":"integer"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["lat","lng","accuracy"],"type":"object"},"gsm":{"description":"GSM cells (GERAN)","items":{"description":"GSM measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel) (Optional, you must specify a value for this item when you specify a value for bsic).","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code) (Optional, you must specify a value for this item when you specify a value for bcch).","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier, 16 bits. Mcc+mnc+lac+cid uniquely identifies the GSM cell.","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"GSM Network measurement","properties":{"bcch":{"description":"Broadcast Control Channel (Synonymous to ARFCN = Absolute Radio Frequency Channel)","maximum":1023,"minimum":0,"type":"integer"},"bsic":{"description":"Base Station Identity Code (for instance, color code)","maximum":63,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (Optional)","maximum":65535,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"}},"required":["bsic","bcch"],"type":"object"},"maxItems":16,"type":"array"},"rxlevel":{"description":"Received Signal power (dBm) (Optional). Power less than -110dBm should be mapped to -110. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-110,"type":"integer"},"ta":{"description":"Timing advance (Optional). Expressed in the units of GSM bits equaling to 48/13 μs ~ 1107 meters.","maximum":63,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","lac","cid"],"type":"object"},"maxItems":16,"type":"array"},"lte":{"description":"LTE cells (E-UTRA, 4G)","items":{"description":"LTE measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier, 28 bits (20 bits eNodeB and 8 bits Cell id). Mcc+mnc+cid uniquely identifies the LTE cell, tac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel (Optional, you must specify a value for this item when you specify a value for pci)","maximum":65535,"minimum":0,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional)","items":{"description":"LTE Network measurement","properties":{"cid":{"description":"E-UTRA Cell Identifier (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"earfcn":{"description":"Evolved Absolute Radio Frequency Channel","maximum":65535,"minimum":0,"type":"integer"},"pci":{"description":"Physical Cell Identity","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"}},"required":["pci","earfcn"],"type":"object"},"maxItems":16,"type":"array"},"pci":{"description":"Physical Cell Identity (Optional, you must specify a value for this item when you specify a value for earfcn)","maximum":503,"minimum":0,"type":"integer"},"rsrp":{"description":"Reference Signal Received Power = RSRP (dBm) (Optional, you must specify a value for this item when you specify a value for rsrq). Power less than -140dBm should be mapped to -140. Power greater than -44dBm should be mapped to -44.","maximum":-44,"minimum":-140,"type":"integer"},"rsrq":{"description":"Reference Signal Received Quality = RSRQ (dB) (Optional). Values less than -19.5dB should be mapped to -19.5, and values greater than -3dB should be mapped to -3dB.","maximum":-3,"minimum":-19.5,"type":"number"},"ta":{"description":"Timing Advance (Optional). Expressed in the units of 16*Ts (16 Basic time units) = 16/(15000*2048) seconds ~ 156meters. For reference see TS 36.213 and 36.211.","maximum":1282,"minimum":0,"type":"integer"},"tac":{"description":"Tracking Area Code (Optional)","maximum":65535,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"tdscdma":{"description":"TD-SCDMA cell (UTRA-TDD, 3G UMTS TDD)","items":{"description":"TD-SCDMA measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID) (Optional, you must specify a value for this item when you specify a value for uarfcn).","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the TDSCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"TD-SCDMA Network measurement","properties":{"cellparams":{"description":"Cell Parameters ID (CDMA Spreading Code ID)","maximum":127,"minimum":0,"type":"integer"},"cid":{"description":"Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcn","cellparams"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional, you must specify a value for this item when you specify a value for rscp).","maximum":158,"minimum":46,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional, you must specify a value for this item when you specify a value for pathloss). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"ta":{"description":"Timing advance (Optional). Round-Trip distance presented in the units of 4*c/7.68e6 ~156 meters. That is, the scaling factor is 4 times the chip length at chip rate of 7.68 Mchips/s. Note that at chip rates 1.28 Mchips/s and 3.84 Mchips/s you need to scale according to chip length of 7.68 Mchips/s, that is, multiply by 6 or 2 if needed.","maximum":1530,"minimum":0,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcn":{"description":"Carrier frequency of a UTRA-TDD Serving Cell (Optional, you must specify a value for this item when you specify a value for cellparams).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wcdma":{"description":"WCDMA cells (UTRA-FDD, 3G UMTS)","items":{"description":"WCDMA measurement","properties":{"cid":{"description":"UTRAN Cell Identifier, 28 bits (12 bits RNC and 16 bits Cell id). Mcc+mnc+cid uniquely identifies the WCDMA cell, lac is optional.","maximum":268435455,"minimum":0,"type":"integer"},"lac":{"description":"Location Area Code (Optional)","maximum":65535,"minimum":1,"type":"integer"},"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nmr":{"description":"Network measurements (Optional). Maximum of 8 uarfcndl times maximum of 32 psc.","items":{"description":"WCDMA Network measurement","properties":{"cid":{"description":"UTRAN Cell Identifier (uc-id) (Optional)","maximum":268435455,"minimum":0,"type":"integer"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel)","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell","maximum":16383,"minimum":0,"type":"integer"}},"required":["uarfcndl","psc"],"type":"object"},"maxItems":256,"type":"array"},"pathloss":{"description":"UTRAN path loss (dB) (Optional).","maximum":158,"minimum":46,"type":"integer"},"psc":{"description":"Primary Scrambling Code (Primary CPICH, Primary Control Pilot Channel) (Optional, you must specify a value for this item when you specify a value for uarfcndl).","maximum":511,"minimum":0,"type":"integer"},"rscp":{"description":"Received Signal Code Power = RSCP (dBm) (Optional). Power less than -120dBm should be mapped to -120. Power greater than -25dBm should be mapped to -25.","maximum":-25,"minimum":-120,"type":"integer"},"timestamp":{"description":"Time of the cell measurement (UTC) (Optional)","format":"date-time","type":"string"},"uarfcndl":{"description":"Downlink frequency of a UTRA-FDD Serving Cell (Optional, you must specify a value for this item when you specify a value for psc).","maximum":16383,"minimum":0,"type":"integer"}},"required":["mcc","mnc","cid"],"type":"object"},"maxItems":16,"type":"array"},"wlan":{"description":"WLAN access points","items":{"description":"WLAN measurement","properties":{"band":{"description":"Frequency range (GHz). Allowed values are 2.4, 3.65, and 5. (Possible future values include 4.9, 5.9, 60, and 900.)","enum":[2.4,3.65,5],"type":"number"},"mac":{"description":"The MAC address of the WLAN access point. MAC-48 address with colon (:) or hyphen (-) separators, upper or lower case hex digits. Note that if the SSID contains postfix '_nomap', the AP should not be used for positioning. For privacy reasons positioning based on a single WLAN AP is not possible; there has to be at least one other matching wlan or cell.","pattern":"^(([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2})|(([a-fA-F0-9]{2}-){5}[a-fA-F0-9]{2})$","type":"string"},"powrx":{"description":"Received signal level (dBm) at the terminal (Optional)","maximum":0,"minimum":-128,"type":"integer"},"timestamp":{"description":"Time of the wlan measurement (UTC) (Optional)","format":"date-time","type":"string"}},"required":["mac"],"type":"object"},"maxItems":128,"type":"array"}},"type":"object"},"system":{"description":"Contains device-reported sensor data and device configuration settings.\n`stateVersion` property contains the version of the last\nknown `desired` state seen by the device.\n","properties":{"client":{"description":"Information about the client device.\n","example":{"accelerometerSensorRange":[2],"diagnosticscode":0,"diskquota":256,"firmware":"heroltexx...","hasAccelerometerSensor":true,"hasAttachSensor":true,"hasHumiditySensor":true,"hasNoBattery":false,"hasPressureSensor":true,"hasTamperSensor":true,"hasTemperatureSensor":true,"homenetwork":[],"manufacturer":"Samsung","model":"SM-G930F","name":"HERE Tracker","platform":"Android","version":"1.6.1"},"properties":{"accelerometerSensorRange":{"description":"Specifies the range of measurable acceleration, representation\nunit g (9.8 m/s^2). If more than one accelerometer is available,\neach element in the list will represent individual accelerometer.\nEach value represents a single \"+/-\" range.\nFor example, value 2 means that sensor is capable to measure\nacceleration within the range of [-2 g, +2 g].\n","items":{"maximum":1000,"minimum":-1000,"type":"integer"},"maxItems":5,"type":"array"},"diagnosticscode":{"description":"Device diagnostics code.","type":"number"},"diskquota":{"description":"Available disk quota in kilobytes.","minimum":0,"type":"number"},"firmware":{"description":"Device firmware version information","maxLength":150,"minLength":1,"type":"string"},"hasAccelerometerSensor":{"description":"True if a device has a sensor to measure acceleration.","type":"boolean"},"hasAttachSensor":{"description":"True if a device has a sensor to detect if the device is attached to or detached from an object.","type":"boolean"},"hasHumiditySensor":{"description":"True if a device has a sensor to measure humidity.","type":"boolean"},"hasNoBattery":{"description":"False if a device has a battery.","type":"boolean"},"hasPressureSensor":{"description":"True if a device has a sensor to measure pressure.","type":"boolean"},"hasTamperSensor":{"description":"True if a device has a sensor to detect if device is disassembled.","type":"boolean"},"hasTemperatureSensor":{"description":"True if a device has a sensor to measure temperature.","type":"boolean"},"homenetwork":{"description":"Information about subscriber home network - 3GPP MCC+MNC or 3GPP2 SID+NID. Dual-SIM devices can provide information on both subscriptions.","items":{"description":"Network information. Either MCC + MNC or SID + NID attribute pair is required.","properties":{"mcc":{"description":"Mobile Country Code","maximum":999,"minimum":200,"type":"integer"},"mnc":{"description":"Mobile Network Code","maximum":999,"minimum":0,"type":"integer"},"nid":{"description":"Network Id, NID","maximum":65535,"minimum":0,"type":"integer"},"sid":{"description":"System Id, SID","maximum":32767,"minimum":1,"type":"integer"}},"type":"object"},"maxItems":2,"type":"array"},"manufacturer":{"description":"Manufacturer of the device (hardware)","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model of the device (hardware)","maxLength":50,"minLength":1,"type":"string"},"modules":{"description":"Software information of all updateable chips.","items":{"description":"Software information of an updateable chip.","properties":{"firmwareVersion":{"description":"Installed firmware version","maxLength":60,"minLength":3,"type":"string"},"manufacturer":{"description":"Manufacturer name","maxLength":50,"minLength":2,"type":"string"},"model":{"description":"Model or chip name","maxLength":50,"minLength":1,"type":"string"}},"type":"object"},"maxItems":10,"type":"array"},"name":{"description":"Name of the client software accessing the HERE API","maxLength":50,"minLength":3,"type":"string"},"platform":{"description":"Software platform information of the device, for example operating system name and version.","maxLength":50,"minLength":3,"type":"string"},"version":{"description":"Version of the client software in format X.Y.Z, where X [0..255] is a major, Y [0..255] is a minor, and Z [0..65535] is a build version number. Increase the version/build number for each release of the client.","maxLength":60,"minLength":3,"type":"string"}},"type":"object"},"iccid":{"description":"SIM card integrated circuit card identifier (ICCID)","maxLength":22,"minLength":18,"type":"string"},"imsi":{"description":"The IMSI of the device's SIM card.\n","example":"123456789012345","pattern":"^[0-9]{1,15}$","type":"string"},"mode":{"description":"Tracker mode status of the device. When a tracker is in a normal mode, it\ncan send telemetry and, for example, use its GNSS receiver if it has one.\nA tracker switches into flight mode once it detects that it's in an\nairplane, and leaves that mode once airplane lands. Transport mode has to\nbe triggered by the user, and it's used, for example, during shipping from\ncontinent to another. Sleep mode is used when a tracker is stored in\na warehouse, and it's triggered by entering or leaving some defined\ngeofence.\n","enum":["unknown","normal","flight","transport","sleep"],"type":"string"},"phoneNumber":{"description":"The phone number of the device's SIM card in the international E.164 format. All the country codes should be prefixed a with \"+\" instead of \"00\".\n","example":"+491234567890","pattern":"^\\+[1-9]\\d{1,14}$","type":"string"},"reportedSensorData":{"description":"The last known device sensor data reported by the device.\n","properties":{"accelerationG":{"description":"A g-force value of acceleration.","maximum":100,"minimum":-100,"type":"number"},"batteryIsCharging":{"description":"True if device battery is charging.","type":"boolean"},"batteryLevel":{"description":"A value of percentage battery level.","maximum":100,"minimum":0,"type":"integer"},"deviceIsAttached":{"description":"True if device is attached to an object.","type":"boolean"},"deviceIsStationary":{"description":"True if device hasn't detected movement.","type":"boolean"},"deviceIsTampered":{"description":"True if device is tampered.","type":"boolean"},"pressureHpa":{"description":"A value of pressure in hectopascal.","maximum":1500,"minimum":300,"type":"number"},"relativeHumidity":{"description":"A value of relative humidity in percent.","maximum":100,"minimum":0,"type":"number"},"temperatureC":{"description":"A value of temperature in celcius.","maximum":100,"minimum":-70,"type":"number"},"tiltDegree":{"description":"A value of tilt in degrees.","type":"number"}},"type":"object"},"stateVersion":{"description":"The version of the state of a device. This should be incremented only by HERE Tracking.\n","minimum":0,"type":"integer"}},"type":"object"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.\n\nSpecifies the time the device telemetry measurements were taken.\n","maximum":4102448400000,"minimum":2,"type":"integer"}},"required":["timestamp"],"type":"object"},"timestampValue":{"properties":{"timestamp":{"description":"Timestamp of the beginning of the interval\n","format":"date-time","type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["timestamp","value"],"title":"timestamp-value","type":"object"},"total":{"default":0,"description":"Total number of elements that can be received with current query.","minimum":0,"type":"integer"},"totalAddedDevices":{"properties":{"totalAddedDevices":{"description":"Number of external devices added to the connector.","minimum":0,"type":"integer"}},"required":["totalAddedDevices"],"type":"object"},"totalDevices":{"description":"The total number of devices to be uploaded in this job.","type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"trackingIdOrShipmentId":{"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"},"trackingIdValue":{"properties":{"trackingId":{"description":"Tracking ID on which the `value` is calculated\n","maxLength":50,"minLength":1,"type":"string"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"}},"required":["trackingId","value"],"title":"trackingId-value","type":"object"},"trackingIds":{"description":"Array of tracking IDs (external IDs are also permitted here)","items":{"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`.","maxLength":50,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"trainingResponse":{"properties":{"trainingStatus":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"trained":{"description":"True if the POI geofence is trained","type":"boolean"}},"required":["trained"],"type":"object"}},"required":["trainingStatus"],"type":"object"},"trainingTestResponse":{"properties":{"metadata":{"properties":{"coordinate":{"description":"Training data position","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"timestamp":{"description":"Training data timestamp","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"},"usedWlanApCount":{"description":"The number of WLAN access point used in training","type":"number"}},"required":["usedWlanApCount"],"type":"object"},"reason":{"type":"string"},"success":{"type":"boolean"}},"required":["success"],"type":"object"},"transition":{"additionalProperties":false,"description":"| Transition Type          | Meaning                                  |\n| ------------------------ | ---------------------------------------- |\n| PING_OUTSIDE_FENCE       | The device has transitioned outside the geofence. |\n| PING_IN_FENCE            | The device has transitioned inside the geofence. |\n","example":{"geofence":"{ \"name\": \"Berlin Office\", \"type\": \"circle\", \"definition\": { \"center\": { \"lat\": 52.5308398, \"lng\": 13.38490035}, \"radius\": 100 }, \"description\": \"An area in berlin\" }","geofenceId":"e2f651ee-f196-4fa3-bf88-894dc131dea3","inOut":"PING_IN_FENCE","notificationStatus":"NOT_SENT","timestamp":1499258057036,"trackingId":"HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83"},"properties":{"geofence":{"oneOf":[{"properties":{"definition":{"description":"An object that defines the area of a circular geofence","properties":{"center":{"description":"The coordinates of the center point of the circle.","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"radius":{"description":"The radius of the circle in meters.","minimum":0,"type":"number"}},"required":["center","radius"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["circle"],"type":"string"}},"required":["type","definition"],"title":"Circle","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a polygonal geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"points":{"description":"An array of points that define the polygon. A minimum of three and a maximum of ten points is required.","items":{"properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"maxItems":10,"minItems":3,"type":"array"}},"required":["points"],"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["polygon"],"type":"string"}},"required":["type","definition"],"title":"Polygon","type":"object"},{"properties":{"definition":{"description":"An object that defines the area of a POI geofence.","properties":{"floor":{"description":"The building associated with the geofence","properties":{"id":{"description":"The building ID","maxLength":100,"minLength":1,"type":"string"},"level":{"description":"The floor of the geofence in integer format","maximum":999,"minimum":-999,"type":"number"},"name":{"description":"The building name","maxLength":255,"minLength":1,"type":"string"}},"required":["id","name"],"type":"object"},"location":{"description":"Details of the geofence location","properties":{"address":{"description":"Address","maxLength":255,"minLength":1,"type":"string"},"country":{"description":"Country","maxLength":255,"minLength":1,"type":"string"},"position":{"description":"Coordinates for visualization purposes","properties":{"lat":{"description":"Latitude in WGS-84 format, decimal representation ranging from -90 to 90.","maximum":90,"minimum":-90,"type":"number"},"lng":{"description":"Longitude in WGS-84 format, decimal representation ranging from -180 to 180.","maximum":180,"minimum":-180,"type":"number"}},"required":["lat","lng"],"type":"object"},"room":{"description":"The room ID","maxLength":100,"minLength":1,"type":"string"}},"type":"object"}},"type":"object"},"description":{"description":"A description of the area that the geofence encloses and the purpose of the geofence.","maxLength":1000,"type":"string"},"name":{"description":"A human-readable name of the geofence.","maxLength":50,"type":"string"},"type":{"description":"The geofence type.","enum":["poi"],"type":"string"}},"required":["type"],"title":"POI","type":"object"}]},"geofenceId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"inOut":{"enum":["PING_OUTSIDE_FENCE","PING_IN_FENCE"],"type":"string"},"notificationStatus":{"enum":["SENT","NOT_SENT"],"type":"string"},"timestamp":{"description":"Milliseconds elapsed since 1 January 1970 00:00:00 UTC.","maximum":4102448400000,"minimum":2,"type":"integer"},"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`.","maxLength":50,"minLength":1,"type":"string"}},"required":["inOut","geofenceId","trackingId","timestamp","notificationStatus"],"type":"object"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"},"type":{"description":"Type of bulk job (either `create` or `delete`)","enum":["create","delete"],"type":"string"},"typeLabel":{"description":"The type of the asset. Can be any user defined string, but if one of the following types is\nselected, the asset icon in asset.tracking.here.com application will be changed accordingly:\n\n* `Phone`\n* `Heavy Machinery`\n* `Tracker`\n* `Airport / Air Cargo`\n* `Warehouse`\n* `Returnable / Reusable`\n* `Generic`\n* `Hospital`\n","maxLength":50,"minLength":1,"type":"string"},"unclaimOnly":{"default":false,"description":"If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`\nto true in case you want to use the already existing deviceId and deviceSecret of the device\nto claim the device in this or other project in the future.\n","type":"boolean"},"updateResponse":{"additionalProperties":false,"properties":{"status":{"description":"Status of the bulk upload.","enum":["pending","ongoing","completed","failed","cancelled","acknowledged"],"type":"string"}},"type":"object"},"updateSegmentBody":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","name":"Truck transport","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"status":{"description":"Status of the segment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for the segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"updateSegmentPlanBody":{"additionalProperties":false,"description":"A segment of a shipment plan.","example":{"description":"From factory to port","durationS":3600,"name":"Truck transport","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"durationS":{"description":"Segment duration in seconds.","minimum":0,"type":"integer"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"type":"object"},"updateShipmentBody":{"additionalProperties":false,"description":"Body for updating a shipment","properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"providedEta":{"description":"ETA for the shipment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the shipment","format":"date-time","type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"segments":{"description":"Array of objects each defining the origin and destination of the segment","items":{"additionalProperties":false,"description":"A segment of a shipment.","example":{"description":"From factory to port","destination":"LOC-7b6b15cc-2307-4875-9f66-99deb5227e92","name":"Truck transport","origin":"LOC-54531862-f87a-4b70-99a4-0e8224a56be4","trackingId":"HERE-540bb24b-0d57-4f8c-aeaf-6c91cd0aff8d","transportMode":"truck"},"properties":{"description":{"description":"Description of the segment","maxLength":1000,"type":"string"},"destination":{"description":"Destination location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"name":{"description":"Name of the segment","maxLength":50,"type":"string"},"origin":{"description":"Origin location of this segment","pattern":"^LOC-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","type":"string"},"providedEta":{"description":"ETA for the segment","format":"date-time","type":"string"},"providedEtd":{"description":"ETD for the segment","format":"date-time","type":"string"},"trackingId":{"description":"ID of the tracking device that produces data for this segment","maxLength":50,"minLength":1,"type":"string"},"transportMode":{"description":"Transport mode of the segment","enum":["car","truck","sea","air","undefined"],"type":"string"}},"required":["transportMode","origin","destination"],"type":"object"},"maxItems":20,"minItems":1,"type":"array"},"status":{"description":"Status of the shipment","enum":["pending","ongoing","completed","cancelled"],"type":"string"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"type":"object"},"updateShipmentPlanBody":{"additionalProperties":false,"description":"Body for updating a shipment plan","properties":{"autoStart":{"description":"A boolean parameter defining whether the shipment starts upon exiting the first origin\nlocation.\n","type":"boolean"},"description":{"description":"Description of the shipment","maxLength":1000,"type":"string"},"name":{"description":"Name of the shipment","maxLength":50,"type":"string"},"ruleIds":{"description":"Array of `ruleId`s to associate with the shipment","items":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"maxItems":10,"type":"array"},"subShipment":{"description":"Flag telling if shipment is a subShipment.","type":"boolean"}},"type":"object"},"updateStatusRequestBody":{"additionalProperties":false,"properties":{"action":{"enum":["cancel","acknowledge"],"type":"string"}},"required":["action"],"type":"object"},"utilizationCount":{"allOf":[{"properties":{"UNUTILIZED":{"description":"Number of devices currently in this event state.\n","type":"number"},"UTILIZED":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["utilization"],"type":"string"}},"required":["eventSource","UTILIZED","UNUTILIZED"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"utilization"},"value":{"description":"The value of the report metric, which was specified in the `measure` parameter.\n\n* `measure`: `duration` => `value`: duration of the event in seconds over the time frame\n* `measure`: `occurrence` => `value`: number of event occurrences during the time frame\n* `measure`: `day` => `value`: the number of days the event lasted over the time frame\n* `measure`: `asset` => `value`: the number of assets that generated the event over the time frame\n\nWhen `value` is provided along with `timestamp`, the time frame is the specified interval.\nWhen `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.\n\nAdditionally, if `method` parameter was given, the `value` represents\naverage/cumulative/percentage of the calculated metric.\n","type":"number"},"valueCount":{"allOf":[{"properties":{"EVENT":{"description":"Number of devices currently in this event state.\n","type":"number"},"eventSource":{"enum":["acceleration"],"type":"string"}},"required":["eventSource","EVENT"],"type":"object"},{"properties":{"ruleId":{"description":"Must be a valid UUIDv4.\n","format":"uuid","type":"string"},"total":{"description":"Number of devices associated to the respective rule or rules.","type":"number"}},"required":["total"]}],"title":"acceleration"}},"securitySchemes":{"Bearer":{"bearerFormat":"JWT","description":"A token obtained from a separate endpoint using client credentials and an OAuth 1.0a HMAC-SHA256 signed request.\n\nUsers are authenticated using an OAuth 1.0 bearer token obtained using the `/users/v2/login` endpoint.\n\nDevices are authenticated using an OAuth 1.0 bearer token obtained using the `/v2/token` endpoint.\n\nMake a request using the bearer token for authentication\n---\n\nMake a request with an `Authorization` header containing the obtained bearer token.\n\nExample:\n\n```\n    Authorization: Bearer h1.yxPIksZ0ViLq77f1Nh-9cg.NVgGBZVlCU8G7kjV_...\n```\n\n> **Note:** For the available authentication options, see the [Identity & Access Management Guide](https://developer.here.com/documentation/identity-access-management/dev_guide/index.html).\n","scheme":"bearer","type":"http"},"signedRequest":{"description":"HERE Tracking requires that you sign your requests for tokens. The signature method uses the OAuth 1.0 standard. For more information on this standard, see the [OAuth Core 1.0](https://oauth.net/core/1.0/) specification.\n\n> **Note:** You must create a new signature for each token request to HERE Tracking. Signatures can only be used once.\n\nCreate the Signature Base String\n---\n\nThe first step in creating a signature is to create the signature base string. This string contains the parameters to use when generating the signature.\n\n*1. To begin, make sure you have the information listed in the following table.*\n\n| Parameter                | Description                              |\n| ------------------------ | -----------------------------------------|\n| oauth\\_consumer\\_key     | The device ID for which you want to generate a token. |\n| oauth\\_signature\\_method | Always use \"HMAC-SHA256\".                 |\n| oauth\\_timestamp         | The number of seconds since the Unix epoch at the point the request is generated. This must be within 10 seconds of the timestamp returned by the `/v2/timestamp` endpoint. |\n| oauth\\_nonce             | A unique string for this signature. The string cannot have been used in a previous signature. Each token generation request to HERE Tracking must have a unique signature, and the value in this parameter is what is used to ensure the signature is unique. |\n| oauth\\_version           | Always use \"1.0\".                         |\n\n*2. Combine these values into a single string by following these steps:*\n\n   1. URL encode every key and value.\n   2. Sort the list of key-value pairs alphabetically by key.\n   3. Concatenate each key/value pair, separating each with an ampersand character (\"&\").\n\nThe result is a parameter string that looks like this (line breaks are added for legibility):\n\n   ```\n   oauth_consumer_key=47164fb0-b7b3-49e8-891b-650270b82cf2\n   &oauth_nonce=LIIpk4\n   &oauth_signature_method=HMAC-SHA256\n   &oauth_timestamp=1513634609\n   &oauth_version=1.0\n   ```\n\n*3. Combine the HTTP method, base URL, and parameter string into a single string called the \"base string\". This will be the string from which the signature is generated. The base string is in this format:*\n\n   ```\n   POST&https://tracking.api.here.com/v2/token&<URL encoded parameter string>\n   ```\n\n   The base string consists of:\n\n   1. The HTTP method in caps (POST) followed by an ampersand (\"&\")\n   2. The URL of the HERE Tracking token endpoint followed by an ampersand (\"&\")\n   3. The URL-encoded parameter string.\n\n   For example (line breaks are added for legibility):\n\n   ```\n   POST\n    &https%3A%2F%2Ftracking.api.here.com%2Fv2%2Ftoken\n    &oauth_consumer_key%3D47164fb0-b7b3-49e8-891b-650270b82cf2%26\n    oauth_nonce%3DLIIpk4%26oauth_signature_method%3DHMAC-SHA256%26\n    oauth_timestamp%3D1513634609%26oauth_version%3D1.0\n   ```\n\n   > **Note:** The URL-encoded base string should contain exactly two ampersands (\"&\").\n\nCreate the signature\n---\n\nThe signing key used to sign the base string is the `deviceSecret` followed by an ampersand (\"&\").\n\nCreate the signature by passing the signature base string and the signing key to the `HMAC-SHA256` hashing algorithm and converting the result to a `base64` string. Then, use the signature to request a token.\n\nRequest the token\n---\n\nMake a `POST` request to this endpoint with an `Authorization` header constructed from the above parameters and the generated signature.\n\nExample:\n\n```\n    Authorization: OAuth oauth_consumer_key=\"47164fb0-b7b3-49e8-891b-650270b82cf2\",\n        oauth_signature_method=\"HMAC-SHA256\",\n        oauth_timestamp=\"1513634609\",\n        oauth_nonce=\"LIIpk4\",\n        oauth_version=\"1.0\",\n        oauth_signature=\"pQ9EJX14L736B%2Br7uZl4yQlO6Xw%3D\"\n```\n","scheme":"oauth","type":"http"}}}}