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.

    HERE 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: 2023-03-14T15:00:53+00:00
    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.
      The ingested data is a device telemetry, which may include, for example, a GPS position, sensor readings,
      WLAN or Bluetooth scans.
      Only a provisioned and a claimed device data is accepted.

      Devices should use uniquely this interface to send data to HERE Tracking.
    name: Ingestion
  - description: |
      The Largedata service is used for storing large data blobs from devices to
      HERE Tracking and retrieving the resulting assembled data from HERE Tracking by the users.

      The data upload from a device follows the multipart data upload pattern:

      * Create a new data upload.
      * Check that the upload status is no longer ***preparing***.
      * For each part:
      ** Upload the part.
      * Complete the upload after all parts have been uploaded.

      A data upload state can be one of the following:
      * ***preparing***: The storage for the data is being prepared.
      * ***pending***: Data upload has been succesfully created but no parts have been uploaded yet.
      * ***ongoing***: Data upload is ongoing.
      * ***completed***: Data upload has been successfully completed.
      * ***failed***: Data upload has failed.

      Data parts can be uploaded only if the upload state is one of the following: ***pending***, ***ongoing***, ***failed***. 
      Note that the state will be changed to ***failed*** if uploading a part fails, 
      but if the part is uploaded again successfully, the upload state is changed back to ***ongoing***.

      The data can be downloaded only if the upload state is ***completed***.
    name: Largedata
  - description: |
      The Registry service is used for provisioning and claiming devices.

      Device licenses can only be provisioned by a vendor.
      A vendor is a user who has a developer plan (evaluation or paid commercial) with HERE
      that has been enabled for device license creation.
      A user claiming a device is the device owner, which is different from the device vendor.
      Access to the data generated by the device is limited to the device owner only.
    name: Registry
  - description: |
      
      An alias is an arbitrary `type` - `externalId` pair, which can be associated with a `trackingId`.

      The `externalId` can be, for example, an external management system asset ID or a human-readable name.
      An alias is uniquely identified by an `externalId` and a `type` pair within a tracking project.
    name: Aliases
  - description: |
      An association is a link between a device and a geofence, a sensor rule or a rule.
      Device events get generated for existing associations only.
    name: Associations
  - description: |
      Bulk jobs provies support to perform bulk actions for project's resources, such as adding or
      deleting multiple devices at once.
    name: Bulk jobs
  - description: |
      The Cloud to Cloud service is used to create and manage connections between external
      cloud providers and HERE Tracking.
      A connection is formed by creating a cloud-to-cloud connector which receives reports from
      the external cloud devices and transforms them into the HERE Tracking ingestions,
      thus enabling the external devices to be tracked by HERE Tracking.
    name: C2C
  - description: |
      This service is used to query associations between devices and geofences.

      > **IMPORTANT**
      > Device Associations v2 API is deprecated. Please use Associations v3 API instead.
    name: Device Associations
  - description: |
      The Events service manages device and shipment events.

      An event is created every time an associated rule or geofence is triggered by a device ingestion. 

      A geofence event is created every time a device enters or exits an associated geofence.
      A sensor event is created when sensor data reported by a device triggers a sensor rule. 
      A rule event (such as dwelling, detention, utilization, stock and online rule) is created when
      a device behaviour triggers a rule.
    name: Events
  - description: |
      This service is used to manage associations between devices and geofences.
      When a device enters or exits an associated geofence, an event gets generated.

      > **IMPORTANT**
      > Geofence Associations v2 API is deprecated. Please use Associations v3 API instead.
    name: Geofence Associations
  - description: |
      The Geofences service creates and manages geofences.

      A geofence is an area boundary that users can define and associate with their devices.
      The area that the geofence encloses can be defined using geographic coordinates or radio measurements.

      Geographic geofences can be `circular` or `polygonal`. 
      A circular geofence is defined by geographic coordinates of its center and a radius, 
      while polygonal geofences are defined as a set of geographic coordinates.

      `POI geofence` (Point Of Interest) is a geofence, which is defined using radio measurements.
      POI geofences need to be trained separately using a telemetry that a device has recorded while 
      being at the desired point of interest. 

      Once created, a geofence can be associated to a device. 
      Every time a position or a radio measurement update is received from a device, 
      HERE Tracking would evaluate whether the device has transitioned across the boundary of 
      an associated geofence.
      If such a transition has happened, a transition event will be recorded.
      For the geographic geofences, the evaluation is based on the coordinates of the trace.
      For POI geofences, the device is considered to be inside a trained POI geofence when the radio 
      measurements of the device-ingested telemetry and the training data match.

      Indoor geofences can be created by adding the floor properties to the geofence definition.
      Circular and polygonal geofences can be both outdoors and indoors. 
      POI geofences should only be used indoors.
      For indoor geofences a device transition is recorded only if the position of the device is indoors 
      and the floor details of the position match the geofence floor definition.

      NOTE: A geofence can also be referred to as a geozone, and these two terms are interchangeable.
    name: Geofences
  - description: |
      The Labels service creates and manages labels.

      A label is a key-value pair that can be associated to the following resources:

      * device
      * geofence
      * sensor
      * rule
      * location
      * shipment

      One can list labels for a specific resource or resource type, and filter
      labels by keys or key-value pairs.
    name: Labels
  - description: |
      The Locations service creates and manages locations.

      This is an Alpha version of the Locations API and can still be changed in future releases.

      Locations are geographical points of interest users may store in HERE Tracking. Locations are
      used as building blocks for shipments.
    name: Locations
  - description: |
      The Metadata service creates and manages metadata.

      Metadata is a descriptive information added to a device, a shipment, a geofence or a sensor rule.
    name: Metadata
  - description: |
      The Notifications service provides a way to manage notification channels.

      Users need to register notification channels to get notified about new events.
      The supported notification channel types are webhook, 
      email and browser pull. Webhook notifications are common for all users in a project, but email and
      browser pull notification subscriptions are user-specific. 

      Email notifications will only be sent to a verified HERE Account email address.
      The browser pull notifications will be enabled for the [HERE Tracking Asset web](https://asset.tracking.here.com).
      For the webhook notifications, a URL registered as a webhook will receive a POST request on any
      matching event occurence.

      To get notified only about some specific events, users can apply various filters when subscribing to notifications, 
      specifying, for example, a particular rule ID or a geofence ID.
      If an occuring event matches `ruleId`, `eventSource`, `eventType` and `initialState` 
      filter settings, a notification gets triggerred.

      A single notification contains multiple matching event objects, for example:

      ```
      [
        {
          "eventType": "ABOVE_RANGE",
          "ruleId": "a3f652bc-a456-7f12-cd11-123ah761yt41",
          "ruleName": "My temperature rule"
          "eventSource": "temperature"
          "trackingId": "HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83",
          "timestamp": 1499258184356,
          "initialState": false
        },
        {
          "eventType": "INSIDE_GEOFENCE",
          "ruleId": "e2f651ee-f196-4fa3-bf88-894dc131dea3",
          "ruleName": "Warehouse 12345"
          "eventSource": "geofence"
          "trackingId": "HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83",
          "timestamp": 1499258184356,
          "initialState": false
        },
        {
          "eventType": "DWELLING_STARTED",
          "ruleId": "bf4510c0-ffa1-4ae3-8174-6a3474f7091e",
          "ruleName": "Dwelling 1 hour in a geofence"
          "eventSource": "dwelling"
          "trackingId": "HERE-871eb4c9-76f6-4e9d-bed7-fa114f793e83",
          "timestamp": 1499258184356,
          "geofenceId": "e2f651ee-f196-4fa3-bf88-894dc131dea3",
          "geofenceName": "Warehouse 12345"
          "initialState": false
        }
      ]
      ```

      If a device is offline, its notifications will not be sent to the user until the device is back online again. 
    name: Notifications
  - description: |
      The Reports service provides a way to create and get reports related to event data.

      This is a tool for collecting and analyzing historical data of all devices of a project.
      The reports are created based on the event data generated by HERE Tracking `rules`.
      The supported rule types are:
      * dwelling
      * detention
      * utilization

      To be able to create a report, the user must have at least one rule of a supported type created
      and associated to a device.

      Once a report has been successfully created, the user will get the report ID, which can be used
      for various reports queries.

      > Note that in the report context a device is also referred to as an 'asset'.
    name: Reports
  - description: |
      The Rules service creates and manages rules. 

      Rules generate events and notifications when get triggered by a device behaviour.
      The following rule types are supported:
      * dwelling
      * detention
      * utilization
      * stock
      * online
      * shipmentSchedule

      After a rule has been created, it needs to be associated to a device to get activated.

      This association means that every time a telemetry is received from the device,
      it will be evaluated against the rule condition.
      As soon as the evaluation changes (for example, from true to false), an event will be recorded.
    name: Rules
  - description: |
      The Sensors service creates and manages sensor rules. 

      The sensor rules generate events and notifications when get triggered by a 
      reported device sensor reading.

      The following sensor rule types are supported:
      * battery
      * humidity
      * pressure
      * temperature
      * acceleration
      * attach
      * tamper

      After a sensor rule has been created, it needs to be associated to a device to get activated.

      This association means that every time a sensor update is received from the device as a part 
      of its ingestion telemetry, it will be evaluated against the sensor rule condition.
      As soon as the evaluation changes (for example, from true to false), an event will be recorded.
    name: Sensors
  - description: |
      The Shadows service provides an effective way to manage configurations 
      for devices that are only intermittently online.

      The device shadow contains `reported` and `desired` state objects of a device, 
      referred to as `reported` and `desired` shadows.

      The `desired` shadow contains configuration settings that the device should use and possibly also
      some optional custom settings. 
      The device receives the `desired` shadow from HERE Tracking as a response to the ingestion request.

      The `reported` shadow contains the most recent position, sensor readings and settings that the
      device has sent. The reported shadow may also contain additional properties generated by HERE 
      Tracking based on the device-ingested telemetry. Such properties are stored in the `system.computed` 
      property.

      In case the most recent telemetry did not contain all the possible
      fields, the last known information will remain in the shadow. This means that one can
      see, for example, the last reported temperature or tracker firmware information in the reported shadow,
      even if the device did not send that information in the latest telemetry.

      > **IMPORTANT**
      > Devices should not communicate directly with this service, but should instead send the telemetry to
      > the ingestion endpoint, which updates the `reported` shadow and returns the `desired` shadow.
      > Applications should only write to the `desired` shadow and only read from the 
      > `reported` shadow.
    name: Shadows
  - description: |
      Service for generating and viewing shipment reports.

      This is an alpha version of the Shipment Reports API and can still be changed in future
      releases.

      A shipment report consists of different metrics calculated on shipments which have been completed successfully.

      Punctuality at origin or at destination measures how accurate the estimated
      departure or arrival was. Dwelling at location measures how much time was spent at locations.

      The metrics are split into two categories. The first category consists of metrics which are calculated
      over all shipments of a shipment plan. The second category consists of metrics which are calculated on
      individual shipments of a shipment plan.
      For example, the `location` metrics belongs to the first category.
      Statistical values, such as `average`, are produced for metrics of the first category only.
    name: Shipment Reports
  - description: |
      The Shipments service manages shipments and shipment plans.

      This is an Alpha version of the Shipments API and can still be changed in future releases.

      A shipment describes a structure of a multimodal logistics journey. Shipments are useful when
      the lifetime of an asset one is tracking spans across multiple devices.

      A shipment consists of segments that span from a location to another. The segments and their
      origins and destinations must form a continuous chain of locations, that is the origin of a segment
      must match the destination of a previous segment. Each segment of the shipment may be assigned a
      `trackingId` that can vary between segments. Devices assigned to a shipment generate traces
      and events for the entire shipment.

      The `shipmentId` of a shipment can be used in similar fashion as a `trackingId` in selected
      APIs. For example, one can query for shipment ***traces*** and ***events*** and associate ***aliases*** and
      ***metadata*** to a shipment.

      Each shipment has one of the following statuses:
      * ***pending***: The shipment has not yet started.
      * ***ongoing***: The shipment has started and it has one segment ongoing.
      * ***completed***: The shipment has ended and all of its segments are completed.
      * ***cancelled***: The shipment has ended and it has one or more cancelled segments.

      HERE Tracking progresses the shipment automatically if each segment has been assigned a
      `trackingId` and the origin and destination locations contain a `geofenceId`. Each segment is
      started upon exiting the origin location of the segment and completed upon entering the
      destination location of the segment. If the origin and the destination of a segment share the
      same location (that is, dwelling in a single location), the segment will automatically be started after the
      previous segment was completed. If a segment does not have a device assigned, the user must
      start and complete the segment manually.

      A new shipment should be instantiated for each separate logistical journey. However, if the
      structure of the shipment is recurring, a shipment plan can be defined. A shipment plan can
      be used to define a generic skeleton for a logistical journey. For example, certain types
      of assets often need to be shipped over a typical sequence of locations.
      A user can create a shipment plan defining the segments, and new shipments can be instantiated from the plan.
      This allows recycling of components for similar shipments and reduces time and effort for
      creating new shipment instances.

      Shipments can also be created, managed and visualized via the [Shipment Tracking web](https://shipment.tracking.here.com).
    name: Shipments
  - description: |
      The Traces service allows users querying device traces based on time ranges.

      A device trace is a device-ingested telemetry along with the ingestion timestamp 
      and the device current position.

      > **NOTE**:
      > Devices should not communicate directly with this service, but should instead send telemetry to
      > the ingestion endpoint. Each data ingestion results in an update to the `reported` device shadow 
      > and a new device trace creation.
    name: Traces
  - description: |
      This service is used to query device transition events.
      A transition event is created each time a device enters or exists an associated geofence.

      > **IMPORTANT**
      > Transitions v2 API is deprecated. Please use Events v3 API instead.
    name: Transitions
  - description: |
      The Users service provides HERE Tracking user authentication and authorization.
    name: Users
paths:
  /aliases/v2:
    get:
      description: |
        Gets all aliases of a project.

        If `type` query parameter is provided, the response will contain
        only aliases of the given type.

        If `externalId` query parameter is specified, the
        response will contain only aliases that match the given
        external ID. The following wildcards can be used:
        '*' matches any number of any characters,
        '?' matches a single character.

        If `after` query parameter is provided, the successful response will only
        contain aliases that were created after the specified timestamp.
        Parameters `after` and `pageToken` are mutually exclusive and cannot be provided at the same time.

        The returned results are sorted in ascending order by the alias creation time.
      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.
            The accepted range is from 0 to the current time.
          in: query
          name: after
          required: false
          schema:
            minimum: 0
            type: number
        - in: query
          name: projectId
          required: false
          schema:
            description: |
              Project ID.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            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
                                and the value is an array of externalIds.
                              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

            The aliases were successfully retrieved
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Gets all aliases
      tags:
        - Aliases
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Aliases
  /aliases/v2/trackingId:
    get:
      description: |
        Gets the `trackingId` associated with an alias.
      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

            The `trackingId` was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        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
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Aliases
  "/aliases/v2/{trackingId}":
    delete:
      description: |
        Deletes all aliases of a device identified by the `trackingId`.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. 
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content)

            All aliases were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Deletes all aliases of a device
      tags:
        - Aliases
    get:
      description: |
        Gets all aliases of a device identified by the `trackingId`.

        If the request is supplied with a `type` query parameter, the response will contain
        only aliases of the given type.
      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
                          and the value is an array of `externalId`s.
                        type: object
                    type: object
                example:
                  data:
                    cargoId:
                      - 123-456
                    engines:
                      - de7a0e9a-2e86-11e8-b20f-6c400892e894
                      - dfee3968-2e86-11e8-b4e0-6c400892e894
          description: |
            Successful

            The aliases were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.

          Must be a valid UUIDv4.
        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`. 
        An alias must be unique within a project.
      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
                    alias and the value is an array of `externalId`s.
                  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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      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`.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. 
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content)

            All aliases were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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
                          and the value is an array of `externalId`s.
                        type: object
                    type: object
                example:
                  data:
                    cargoId:
                      - 123-456
          description: |
            Successful

            The aliases were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      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.

          Must be a valid UUIDv4.
        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.
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              description: |
                Body containing arrays of ruleIds and geofenceIds to disassociate
                (oldRules) from and associate (newRules) to the devices identified
                in trackingIds array.
              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.
                        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.
                        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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        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`.
      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.
                    format: uuid
                    type: string
                  maxItems: 15
                  type: array
              required:
                - ruleIds
                - geofenceIds
              type: object
      responses:
        "201":
          description: |
            Successful

            Device has been associated with provided rules.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        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`.
      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.
                    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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Disassociates rules from a device
      tags:
        - Associations
  "/associations/v3/geofences/{geofenceId}":
    get:
      description: |
        Gets all devices associated with the geofence `geofenceId`.
      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.
                          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,
                  and pageToken if available. If no devices are found, an object with empty data array is returned.
                type: object
          description: |
            Response body contains an array of device objects, count indicating the number of returned devices,
            and pageToken if available.

            If no associations are found, an object with empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Associations
  "/associations/v3/rules/{ruleId}":
    get:
      description: |
        Gets all devices associated with the rule `ruleId`.
      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.
                          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,
                  and pageToken if available. If no devices are found, an object with empty data array is returned.
                type: object
          description: |
            Response body contains an array of device objects, count indicating the number of returned devices,
            and pageToken if available.

            If no associations are found, an object with empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
          format: uuid
          type: string
  "/associations/v3/sensors/{sensorRuleId}":
    get:
      description: |
        Gets all devices associated with the sensor rule `sensorRuleId`.
      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.
                          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,
                  and pageToken if available. If no devices are found, an object with empty data array is returned.
                type: object
          description: |
            Response body contains an array of device objects, count indicating the number of returned devices,
            and pageToken if available.

            If no associations are found, an object with empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.
          format: uuid
          type: string
  /associations/v3/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Associations
  "/associations/v3/{trackingId}/geofences":
    get:
      description: |
        Gets a list of geofences associated with the device `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
        - 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,
                  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.
                example:
                  "response data as Protobuf binary, format as follows": |
                    message GeofenceMsg {
                      message GeofenceCircular {
                        //Latitude value
                        float lat = 1;
                        //Longitude value
                        float lng = 2;
                        //Center radius value
                        uint32 radius = 3;
                        //Geofence ID
                        string id = 4;
                      }
                      message GeofencePolygonal {
                        //Latitude value array
                        repeated float lat = 1;
                        //Longitude value array
                        repeated float lng = 2;
                        //Geofence ID
                        string id = 3;
                      }
                      //Circular geofence array
                      repeated GeofenceCircular circulars = 1;
                      //Polygonal geofence array
                      repeated GeofencePolygonal polygonals = 2;
                      //Page token
                      string pageToken = 3;
                    }
                items: {}
                type: array
          description: |
            Response body contains an array of geofence objects, `count` specifies 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.
            Response content type can be either JSON or protobuf depending on the 'Content-Type' request header.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`.
        Whenever the device enters or exits the associated geofence, an event is generated.
      responses:
        "200":
          description: |
            Successful

            Device already associated with the geofence
        "201":
          description: |
            Successful

            The device has been associated with the geofence
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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
                                        than the threshold duration.
                                      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
                                        for longer than the threshold duration.
                                      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
                                        indicating that the asset is utilized, and also when the asset stops
                                        moving and has been stationary for longer than the threshold duration
                                        indicating that the asset is unutilized.
                                      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.
                              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,
                  and pageToken if available. If no rules are found, an object with empty data array is returned.
                type: object
          description: |
            Response body contains an array of rule objects, count indicating the number of returned rules,
            and pageToken if available.

            If no rule is found, an object with empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
          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`.
        Whenever the device behaviour triggers the rule, an event is generated.
      responses:
        "200":
          description: |
            Successful

            Device already associated with the rule
        "201":
          description: |
            Successful

            The device has been associated with the rule
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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.
                              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,
                  and `pageToken` is the next page token if available.

                  If no sensor rules are found, an object with an empty data array is returned.
                type: object
          description: |
            Response body contains an array of sensor rule objects, count indicating the number of returned sensor rules,
            and pageToken if available.

            If no sensor rule is found, an object with empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
          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`.

        A single device can only have one sensor rule per sensor type associated.

        The associated sensor rule settings will be automatically synchronised to the `system.sensorAlarmConfig` section of the device
        `desired shadow`.

        Every time the associated sensor rule gets triggered by the device ingestion, an event will be generated.
      responses:
        "200":
          description: |
            Successful

            Device already associated with the sensor rule
        "201":
          description: |
            Successful

            The device has been associated with the sensor rule
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Starts bulk upload process
      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.
                              Area based mode can be set to true only if device has maximum of 3 associated geofences.
                            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
                              selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                              * `Phone`
                              * `Heavy Machinery`
                              * `Tracker`
                              * `Airport / Air Cargo`
                              * `Warehouse`
                              * `Returnable / Reusable`
                              * `Generic`
                              * `Hospital`
                            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.
                              Area based mode can be set to true only if device has maximum of 3 associated geofences.
                            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
                              selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                              * `Phone`
                              * `Heavy Machinery`
                              * `Tracker`
                              * `Airport / Air Cargo`
                              * `Warehouse`
                              * `Returnable / Reusable`
                              * `Generic`
                              * `Hospital`
                            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.
                              Area based mode can be set to true only if device has maximum of 3 associated geofences.
                            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
                              selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                              * `Phone`
                              * `Heavy Machinery`
                              * `Tracker`
                              * `Airport / Air Cargo`
                              * `Warehouse`
                              * `Returnable / Reusable`
                              * `Generic`
                              * `Hospital`
                            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.
                              Area based mode can be set to true only if device has maximum of 3 associated geofences.
                            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
                              selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                              * `Phone`
                              * `Heavy Machinery`
                              * `Tracker`
                              * `Airport / Air Cargo`
                              * `Warehouse`
                              * `Returnable / Reusable`
                              * `Generic`
                              * `Hospital`
                            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`
                              to true in case you want to use the already existing deviceId and deviceSecret of the device
                              to claim the device in this or other project in the future.
                            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`
                              to true in case you want to use the already existing deviceId and deviceSecret of the device
                              to claim the device in this or other project in the future.
                            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
                              will remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c
                              device, i.e. when `externalDeviceId` and `connectorId` are provided.
                            type: boolean
                          unclaimOnly:
                            default: false
                            description: |
                              If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`
                              to true in case you want to use the already existing deviceId and deviceSecret of the device
                              to claim the device in this or other project in the future.
                            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.
                The first row must have the field names.

                The maximum number of devices to be uploaded at once is 1000.

                ## Add devices
                Each row represents a single device, that can be already provisioned
                device (in which case deviceId must be provided), un-provisioned device (in which case only name is required
                device identificator field), virtual device (in which case externalId must be provided) or external cloud device,
                for which both `externalDeviceId` and `connectorId` must be provided.
                One can also define device settings to be saved to device desired shadow. Additionally rules and
                geofences can be defined -- those will be associated to the devices. Also device type and tags can be defined.

                The supported field names are the following:

                ### Device identificators
                - `name`: The name of the device. Must be unique within a project. Used to identify the device in the response. Required field.
                - `deviceId`: Device ID of the provisioned device. The device `deviceId` will be claimed to the project `projectId` in the bulk upload process
                - `externalId`: Virtual device external ID that must be unique within a project. The virtual device will be claimed to the project.
                - `externalDeviceId`: Identifier of the device on the external cloud. Must be provided together with `connectorId`. The external device is added to connector.
                - `connectorId`: Identifier of the could-to-cloud connector.
                In 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

                ### Device settings, labels and associations
                - `sampleMs`: Device sampling rate in milliseconds
                - `sendMs`: Device sending rate in milliseconds (should be equal or greater than sampleMs)
                - `distanceM`: Device sends an update if it has moved farther than the specified distance in meters
                - `areaBased`: Set true/1 if device should be configured to area based mode.
                - `type`: The type of the asset. Can be any user defined string. Type is saved to labels service.
                - `tags`: There are two ways of defining tags in the csv format. Tags are saved to labels service.
                  + `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.
                  + `tags`: In device row and tags column provide tags separated by `|`, e.g. `priority 1|priority 2`
                - `geofences`: There are two ways of defining geofences to be associated with the device:
                  + `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.
                  + `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`
                - `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.
                  + `rule:{ruleId}`, e.g. `rule:e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc`
                  + `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`

                Example 1:
                ```
                name,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
                My HW tracker 1,1ae212e7-c342-4108-ad26-45df1a8e2631,,,,600000,120000,,,1,1,1,Warehouse
                Unprovisioned device,,,,,600000,120000,,100,,,,Phone
                Virtual tracker,,MyDevice,,,900000,180000,1,,1,1,,Heavy Machinery
                My external cloud tracker,,,MyExternalDeviceIdentifier,CON-8bfd6006-5fe6-400f-8a0a-ca73d44866f3,,,,,1,,1,Airport / Air Cargo
                ```

                Example 2:
                ```
                name,tags,geofences
                tracker1,Priority1;Important,2b4c5571-e398-45c5-9637-6ce63e320b4f|e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc
                tracker2,Important,e0de7cbc-9328-4e37-b865-cdbe1fa1c7dc
                ```

                ## Delete devices
                Each row represents a single tracker to be deleted. Trackers can be identified by
                `trackingId`, `externalId` (for virtual devices) or `externalDeviceId` along with
                `connectorId` (for external cloud devices).
                By default the provided tracker will be both unclaimed and unprovisioned.
                With boolean property `unclaimOnly` one can bypass unprovisioning for selected devices
                and with `removeFromConnectorOnly` both unclaiming and unprovisioning steps will be skipped.

                Example:
                ```
                trackingId,externalId,externalDeviceId,connectorId,unclaimOnly,removeFromConnectorOnly
                HERE-ef63c528-0aea-4f9f-a160-368559fa31ed,,,,1,
                HERE-aba23346-5248-49db-bea8-9f75aa81d3dd,,,,,
                ,MyDevice,,,,
                ,,MyExternalDevice,CON-8bfd6006-5fe6-400f-8a0a-ca73d44866f3,,1
                ```
              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

            The bulk upload job has been started successfully.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The server does not meet one of the preconditions that the requester put on the request.
        "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

            User has sent too many requests in a given amount of time.
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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`,
        which cancels the bulk upload processes of the job that are still in the pending state.
        In case current status is completed, failed or cancelled, user can perform action `acknowledged`
        which can be used to mark the job acknowledged.
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The server does not meet one of the preconditions that the requester put on the request.
        "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

            User has sent too many requests in a given amount of time.
      security:
        - Bearer: []
      summary: Updates bulk upload job status
      tags:
        - Bulk jobs
  "/bulkjobs/v4/deviceUploads/{jobId}/results":
    get:
      description: |
        Gets bulk upload results
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Bulk jobs
  /bulkjobs/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Bulk jobs
  /c2c/v4/callback:
    post:
      description: |
        External clouds can call this endpoint through their callback mechanism
        to report device updates. The format of the payload is driver specific.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The specified resource was not found
        "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

            This feature is not yet available.
      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`.
      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.
                                Any HERE Tracking user must be a member of a Tracking project.
                                The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                                If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                              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
                                will not execute periodically.
                              type: boolean
                            externalCloudInfo:
                              description: |
                                An external cloud-specific object that the driver will use to login to the
                                external cloud. The structure of this object varies per driver
                                implementation.
                                It is recommended to have dedicated credentials for logging in to
                                the external cloud in order not to violate possible concurrent users
                                policies of the external cloud.
                                In case of the HERE Tracking loopback driver, the maximum
                                allowed concurrent user account tokens is 3 per account,
                                therefore it is recommended to create a separate HERE account
                                and grant it the required privilege to update the connector's
                                project, and use that account in externalCloudInfo.
                              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
                                between the connector's external cloud and HERE Tracking project.
                                The maximum and at the same time default value for callback-type connectors is 900 seconds.
                                The default value for other type of connectors is 3600 seconds and there is no maximum value set.
                              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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Registers a cloud-to-cloud connector between the HERE Tracking project `projectId`
        and an external cloud using the cloud-to-cloud driver `driverId`
        and the external cloud access credentials.
      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
                    will not execute periodically.
                  type: boolean
                externalCloudInfo:
                  description: |
                    An external cloud-specific object that the driver will use to login to the
                    external cloud. The structure of this object varies per driver
                    implementation.
                    It is recommended to have dedicated credentials for logging in to
                    the external cloud in order not to violate possible concurrent users
                    policies of the external cloud.
                    In case of the HERE Tracking loopback driver, the maximum
                    allowed concurrent user account tokens is 3 per account,
                    therefore it is recommended to create a separate HERE account
                    and grant it the required privilege to update the connector's
                    project, and use that account in externalCloudInfo.
                  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
                    between the connector's external cloud and HERE Tracking project.
                    The maximum and at the same time default value for callback-type connectors is 900 seconds.
                    The default value for other type of connectors is 3600 seconds and there is no maximum value set.
                  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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      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.

            Must be a valid UUIDv4.
          in: header
          name: X-Request-Id
          required: false
          schema:
            format: uuid
            type: string
        - in: query
          name: projectId
          required: false
          schema:
            description: |
              Project ID.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The server does not meet one of the preconditions that the requester put on the request.
      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.
                          Any HERE Tracking user must be a member of a Tracking project.
                          The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                          If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                        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
                          will not execute periodically.
                        type: boolean
                      externalCloudInfo:
                        description: |
                          An external cloud-specific object that the driver will use to login to the
                          external cloud. The structure of this object varies per driver
                          implementation.
                          It is recommended to have dedicated credentials for logging in to
                          the external cloud in order not to violate possible concurrent users
                          policies of the external cloud.
                          In case of the HERE Tracking loopback driver, the maximum
                          allowed concurrent user account tokens is 3 per account,
                          therefore it is recommended to create a separate HERE account
                          and grant it the required privilege to update the connector's
                          project, and use that account in externalCloudInfo.
                        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
                          between the connector's external cloud and HERE Tracking project.
                          The maximum and at the same time default value for callback-type connectors is 900 seconds.
                          The default value for other type of connectors is 3600 seconds and there is no maximum value set.
                        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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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
                    will not execute periodically.
                  type: boolean
                externalCloudInfo:
                  description: |
                    An external cloud-specific object that the driver will use to login to the
                    external cloud. The structure of this object varies per driver
                    implementation.
                    It is recommended to have dedicated credentials for logging in to
                    the external cloud in order not to violate possible concurrent users
                    policies of the external cloud.
                    In case of the HERE Tracking loopback driver, the maximum
                    allowed concurrent user account tokens is 3 per account,
                    therefore it is recommended to create a separate HERE account
                    and grant it the required privilege to update the connector's
                    project, and use that account in externalCloudInfo.
                  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
                    between the connector's external cloud and HERE Tracking project.
                    The maximum and at the same time default value for callback-type connectors is 900 seconds.
                    The default value for other type of connectors is 3600 seconds and there is no maximum value set.
                  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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

            Must be a valid UUIDv4.
          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.
                            It also contains an error object if the device failed provisioning.
                          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.
                            "provisioning": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.
                            "provisioned": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.
                            "failed": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.
                          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

            Must be a valid UUIDv4.
          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

            Must be a valid UUIDv4.
          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

            Must be a valid UUIDv4.
          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.
                          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        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.
        Verify external cloud authentication status.
      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
                external cloud. The structure of this object varies per driver
                implementation.
                It is recommended to have dedicated credentials for logging in to
                the external cloud in order not to violate possible concurrent users
                policies of the external cloud.
                In case of the HERE Tracking loopback driver, the maximum
                allowed concurrent user account tokens is 3 per account,
                therefore it is recommended to create a separate HERE account
                and grant it the required privilege to update the connector's
                project, and use that account in externalCloudInfo.
              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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The specified resource was not found
        "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

            This feature is not yet available.
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - C2C
  /c2c/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Device Associations
  /device-associations/v2/version:
    get:
      deprecated: true
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.

            Must be a valid UUIDv4.
          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,
                  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.
                example:
                  "response data as Protobuf binary, format as follows": |
                    message GeofenceMsg {
                      message GeofenceCircular {
                        //Latitude value
                        float lat = 1;
                        //Longitude value
                        float lng = 2;
                        //Center radius value
                        uint32 radius = 3;
                        //Geofence ID
                        string id = 4;
                      }
                      message GeofencePolygonal {
                        //Latitude value array
                        repeated float lat = 1;
                        //Longitude value array
                        repeated float lng = 2;
                        //Geofence ID
                        string id = 3;
                      }
                      //Circular geofence array
                      repeated GeofenceCircular circulars = 1;
                      //Polygonal geofence array
                      repeated GeofencePolygonal polygonals = 2;
                      //Page token
                      string pageToken = 3;
                    }
                items: {}
                type: array
          description: |
            Response body contains an array of geofence objects, `count` specifies 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.
            Response content type can be either JSON or protobuf depending on the 'Content-Type' request header.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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 
        based on the timestamp. 

        An event is uniquely identified by `trackingId`-`ruleId`-`timestamp` key, 
        with an exception of dwelling and stock rule events. 
        Dwelling events also need `geofenceId` to be specified, 
        whereas for stock events `trackingId` is not applicable.

        A time range can be defined with `before` and `after` timestamps. The response will contain
        an array of events that were recorded within the range.

        If the request is supplied with `eventSource` query parameter, the response will contain
        events generated by the defined source only.

        If the request is supplied with `eventType` query parameter, the response will contain
        events of the specified type only.

        If the request is supplied with `ruleId` query parameter, the response will only contain events
        for the specified rule ID.

        If the request is supplied with `initialState` query parameter, the response will contain
        events having the specified initial state.

        All the aforementioned query parameters can be combined together.
      parameters:
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 1 to the current time.
          in: query
          name: before
          required: false
          schema:
            minimum: 1
            type: number
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 0 to the current time.
          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.
                enum:
                  - attach
                  - battery
                  - geofence
                  - humidity
                  - pressure
                  - tamper
                  - temperature
                  - acceleration
                  - dwelling
                  - stock
                  - detention
                  - utilization
                  - online
                  - shipmentSchedule
                type: string
              - items:
                  description: |
                    The event source rule type.
                  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.

                  An event is created every time an associated rule or geofence is triggered by a device ingestion.
                  The event type depends on the data the device sends.

                  Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                  generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                  This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                  Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                  transitions from one state to another, either from `false` to `true` or vice versa.
                  This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                  The same event types are also generated by the online rule when the device state changes from `offline` 
                  (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                  or vice versa.

                  The acceleration sensor generates events whenever the reported sensor reading 
                  crosses the acceleration threshold (for example, when the device was dropped).
                  This produces events of the type EVENT. 
                  Such events are stateless.

                  Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                  a geofence associated with the device.

                  Events of DWELLING_STARTED type are generated when the device has
                  stayed inside an associated geofence for longer than the threshold duration. 
                  DWELLING_ENDED type events are generated when dwelling of the device has ended.

                  Events of DETENTION_STARTED type are generated when the device has been
                  stationary for longer than the threshold duration, regardless whether the device is inside 
                  or outside of any geofence. 
                  DETENTION_ENDED type events will be generated when the device starts moving again.

                  Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                  threshold duration.
                  UTILIZED type events are generated when the device starts moving again after having been stationary.

                  Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                  inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                  Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                  is too early, on time or delayed.
                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.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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.
                format: uuid
                type: string
              - items:
                  description: |
                    ID of the rule or geofence. Must be a valid UUIDv4.
                  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 
              evaluated for the first time. It indicates the fact that this is the initial evaluation 
              state, which would serve as a starting point for the subsequent rule evaluations.
              The rest of the rule events would represent a transition of a device or a shipment or 
              a geofence from one state to another and their `initialState` property will be set to `false`.
            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 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      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).
                              title: Boolean event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      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,
                                pressure and temperature).
                              title: Range event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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
                                event occurs (eg. the device was dropped)
                              title: Generic event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      enum:
                                        - geofence
                                      type: string
                                    eventType:
                                      enum:
                                        - INSIDE_GEOFENCE
                                        - OUTSIDE_GEOFENCE
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                              description: |
                                Events generated by device crossing the geofence border.
                              title: Geofence event
                            - allOf:
                                - properties:
                                    eventSource:
                                      description: |
                                        The event source: stock rule
                                      enum:
                                        - stock
                                      type: string
                                    eventType:
                                      description: |
                                        The "OVERSTOCK" type - Events are triggered when the number of assets
                                        is over a maximum stock volume.

                                        The "UNDERSTOCK" type - Events are triggered when the number of assets
                                        is under a minimum stock volume.

                                        The "NORMAL_VOLUME" type - Events are triggered when the number of assets
                                        is between the minimum stock volume and the maximum stock volume.
                                      enum:
                                        - OVERSTOCK
                                        - NORMAL_VOLUME
                                        - UNDERSTOCK
                                      type: string
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                  required:
                                    - initialState
                                  type: object
                              description: |
                                Events generated by the number of assets inside a geofence over a maximum stock volume,
                                or between a minimum stock volume and a maximum stock volume, or under a minimum stock volume.
                              title: Stock event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      enum:
                                        - dwelling
                                      type: string
                                    eventType:
                                      enum:
                                        - DWELLING_STARTED
                                        - DWELLING_ENDED
                                      type: string
                                    geofenceId:
                                      description: |
                                        An ID of a geofence that triggered the dwelling event
                                      format: uuid
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                                    - geofenceId
                              description: |
                                Events generated by a device that has dwelled inside a geofence for longer than specified
                                threshold duration
                              title: Dwelling event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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
                                threshold duration.
                              title: Detention event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      enum:
                                        - utilization
                                      type: string
                                    eventType:
                                      enum:
                                        - UTILIZED
                                        - UNUTILIZED
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                              description: |
                                The UTILIZED event is generated when a device starts moving,
                                and the UNUTILIZED event is generated when the device has been stationary
                                for longer than the specified threshold duration.
                              title: Utilization event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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
                              title: Shipment schedule event
                        type: array
                    type: object
          description: |
            Successful

            The events were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Gets event history
      tags:
        - Events
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Events
  /events/v3/statuses:
    get:
      description: |
        Gets all events statuses for all devices and shipments of the project.
        An event status of a device is the most recent event of any rule or geofence the device 
        is associated with.
        The same applies for shipments.

        The response contains a list of event status objects and
        each object has the following properties:
        * `trackingId` or `shipmentId`: a device ID or a shipment ID
        * `ruleId`: an associated rule or geofence ID
        * `eventSource`: the rule type
        * `eventType`: an event type of the latest event of the rule (same as the "event state")
        * `timestamp`: a time since when the device has been in this event state

        The array is sorted by the following fields in the
        following order: `trackingId`, `eventSource`, `timestamp`, `ruleId`, `geofenceId`.

        A time range can be defined with `before` and `after` timestamps. The response will contain
        event statuses that were recorded within the range.

        If the request is supplied with `eventSource` query parameter, the response results will be limited
        to the specified rule types only.

        If the request is supplied with `ruleId` query parameter, the response results will be limited
        to the specified rule IDs only.

        If the request is supplied with `trackingId` query parameter, the response results will be limited
        to the specified devices only. Also `shipmentId` can be used as a `trackingId`.

        If the request is supplied with `eventType` query parameter, the response results will be limited
        to the specified type only.

        If the request is supplied with `geofenceId` query parameter, it will only affect dwelling 
        event statuses filtering, limiting the results to the specified geofence only.
        Other event types are not affected by this setting.
        Note that for the event statuses of geofence type, the `ruleId` is the `geofenceId`.

        If the request is supplied with `shipments` query parameter, the response results will be limited
        either to shipments (`shipments`=`true`) or devices (`shipments`=`false`) only. 
        Otherwise, if `shipments` query parameter is not specified, response results will include both devices and shipments.

        All the aforementioned query parameters can be combined together.
      parameters:
        - in: query
          name: eventSource
          required: false
          schema:
            oneOf:
              - description: |
                  The event source rule type.
                enum:
                  - attach
                  - battery
                  - geofence
                  - humidity
                  - pressure
                  - tamper
                  - temperature
                  - acceleration
                  - dwelling
                  - stock
                  - detention
                  - utilization
                  - online
                  - shipmentSchedule
                type: string
              - items:
                  description: |
                    The event source rule type.
                  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.

                  An event is created every time an associated rule or geofence is triggered by a device ingestion.
                  The event type depends on the data the device sends.

                  Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                  generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                  This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                  Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                  transitions from one state to another, either from `false` to `true` or vice versa.
                  This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                  The same event types are also generated by the online rule when the device state changes from `offline` 
                  (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                  or vice versa.

                  The acceleration sensor generates events whenever the reported sensor reading 
                  crosses the acceleration threshold (for example, when the device was dropped).
                  This produces events of the type EVENT. 
                  Such events are stateless.

                  Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                  a geofence associated with the device.

                  Events of DWELLING_STARTED type are generated when the device has
                  stayed inside an associated geofence for longer than the threshold duration. 
                  DWELLING_ENDED type events are generated when dwelling of the device has ended.

                  Events of DETENTION_STARTED type are generated when the device has been
                  stationary for longer than the threshold duration, regardless whether the device is inside 
                  or outside of any geofence. 
                  DETENTION_ENDED type events will be generated when the device starts moving again.

                  Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                  threshold duration.
                  UTILIZED type events are generated when the device starts moving again after having been stationary.

                  Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                  inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                  Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                  is too early, on time or delayed.
                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.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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.
                format: uuid
                type: string
              - items:
                  description: |
                    ID of the rule or geofence. Must be a valid UUIDv4.
                  format: uuid
                  type: string
                type: array
        - in: query
          name: geofenceId
          required: false
          schema:
            oneOf:
              - description: |
                  ID of the geofence. Must be a valid UUIDv4.
                  This filter can be used to filter results related to dwelling event source.
                format: uuid
                type: string
              - items:
                  description: |
                    ID of the geofence. Must be a valid UUIDv4.
                    This filter can be used to filter results related to dwelling event source.
                  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.
              If `false`, the results will be limited to device event statuses only.
              If not specified, the results will include both device and shipments event statuses.
            type: boolean
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 1 to the current time.
          in: query
          name: before
          required: false
          schema:
            minimum: 1
            type: number
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 0 to the current time.
          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.
                                      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.
                                      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.
                                      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.
                                      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.
                                      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
                                      enum:
                                        - acceleration
                                      type: string
                                    eventType:
                                      enum:
                                        - EVENT
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                              title: acceleration
                            - allOf:
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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.
                                      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
                                      enum:
                                        - dwelling
                                      type: string
                                    eventType:
                                      enum:
                                        - DWELLING_STARTED
                                        - DWELLING_ENDED
                                      type: string
                                    geofenceId:
                                      description: |
                                        An ID of a geofence that triggered the dwelling event
                                      format: uuid
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                                    - geofenceId
                              title: dwelling
                            - allOf:
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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.
                                      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
                                      enum:
                                        - utilization
                                      type: string
                                    eventType:
                                      enum:
                                        - UTILIZED
                                        - UNUTILIZED
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                              title: utilization
                            - properties:
                                eventSource:
                                  description: |
                                    The event source: stock rule
                                  enum:
                                    - stock
                                  type: string
                                eventType:
                                  description: |
                                    The "OVERSTOCK" type - Events are triggered when the number of assets
                                    is over a maximum stock volume.

                                    The "UNDERSTOCK" type - Events are triggered when the number of assets
                                    is under a minimum stock volume.

                                    The "NORMAL_VOLUME" type - Events are triggered when the number of assets
                                    is between the minimum stock volume and the maximum stock volume.
                                  enum:
                                    - OVERSTOCK
                                    - NORMAL_VOLUME
                                    - UNDERSTOCK
                                  type: string
                                ruleId:
                                  description: |
                                    Must be a valid UUIDv4.
                                  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.
                                      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
                                      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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 
        event states per rule or per event source (that is per rule type).

        An event state of a device is the event type of the most recent device event.
        It indicates a state the device is currently in, in relation to a rule the device is associated with.

        For example, the event state can be either `INSIDE_GEOFENCE` or `OUTSIDE_GEOFENCE` in case the event source is `geofence`; 
        or `BELOW_RANGE`, `IN_RANGE` or `ABOVE_RANGE` in case the event source is `battery` rule.

        A device can be in several different event states at the same time when it has more than 
        one rule associated with it. 
        For example, a device can be at the same time in `INSIDE_GEOFENCE` and `ABOVE_RANGE` event states.

        The same applies for shipments.

        The `groupBy` query parameter defines how the results are grouped.

        The default value for the `groupBy` parameter is `ruleId`. 
        The response contains a list of objects, one per each rule,
        that are associated to at least one device or shipment of the project.
        Each object has the following properties:
        * `ruleId`: a rule ID
        * `eventSource`: the rule type
        * every distinct event state (applicable for the rule type) and the number of devices in this state
        * `total`: the total number of devices associated to the rule

        When the `groupBy` parameter value is `eventSource`, the response contains a list of objects, one per
        event source (that is per each rule type),
        that are associated to at least one device or shipment of the project.
        Each object has the following properties:
        * `eventSource`: a rule type
        * every distinct event state (applicable for the rule type) and the number of devices in this state. 
          One device is counted only once per `eventType` state, but in case a single device is associated to multiple
          rules of the same type, it will be counted separately for each event state.
        * `total`: the total number of devices associated to the rule type. A single device is counted only once.

        For example, a device A is associated to 2 geofences and is inside one and outside the other.
        A device B is associated to 3 geofences and is outside all of them. With the request 
        query parameter set as `groupBy`=`eventSource`, the response body will contain the following result item:
        ```
        {
          "eventSource": "geofence",
          "INSIDE_GEOFENCE": 1,
          "OUTSIDE_GEOFENCE": 2,
          "total": 2
        }.
        ```

        If the request is supplied with `eventSource` query parameter, the response results will be limited
        to the specified rule types only.

        If the request is supplied with `ruleId` query parameter, the response results will be limited
        to the specified rule IDs only.

        If the request is supplied with `trackingId` query parameter, the response results will be limited
        to the specified devices only. Also `shipmentId` can be used as a `trackingId`.

        If the request is supplied with `geofenceId` query parameter, it will only affect dwelling 
        event statuses filtering, limiting the results to the specified geofence only.
        Other event types are not affected by this setting.
        Note that for the event statuses of geofence type, the `ruleId` is the `geofenceId`.

        If the request is supplied with `shipments` query parameter, the response results will be limited
        either to shipments (`shipments`=`true`) or devices (`shipments`=`false`) only. 
        Otherwise, if `shipments` query parameter is not specified, response results will include both devices and shipments.

        All the aforementioned query parameters can be combined together.
      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.
            enum:
              - ruleId
              - eventSource
            type: string
        - in: query
          name: eventSource
          required: false
          schema:
            oneOf:
              - description: |
                  Source of the event.
                enum:
                  - attach
                  - battery
                  - geofence
                  - humidity
                  - pressure
                  - tamper
                  - temperature
                  - acceleration
                  - dwelling
                  - detention
                  - utilization
                  - online
                  - shipmentSchedule
                type: string
              - items:
                  description: |
                    Source of the event.
                  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.
                format: uuid
                type: string
              - items:
                  description: |
                    ID of the rule or geofence. Must be a valid UUIDv4.
                  format: uuid
                  type: string
                type: array
        - in: query
          name: geofenceId
          required: false
          schema:
            oneOf:
              - description: |
                  ID of the geofence. Must be a valid UUIDv4.
                  This filter can be used to filter results related to dwelling event source.
                format: uuid
                type: string
              - items:
                  description: |
                    ID of the geofence. Must be a valid UUIDv4.
                    This filter can be used to filter results related to dwelling event source.
                  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.
              If `false`, the results will be limited to device event statuses only.
              If not specified, the results will include both device and shipments event statuses.
            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.
                                      type: number
                                    TRUE_TO_FALSE:
                                      description: |
                                        Number of devices currently in this event state.
                                      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.
                                      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.
                                      type: number
                                    BELOW_RANGE:
                                      description: |
                                        Number of devices currently in this event state.
                                      type: number
                                    IN_RANGE:
                                      description: |
                                        Number of devices currently in this event state.
                                      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.
                                      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.
                                      type: number
                                    eventSource:
                                      enum:
                                        - acceleration
                                      type: string
                                  required:
                                    - eventSource
                                    - EVENT
                                  type: object
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      type: number
                                    OUTSIDE_GEOFENCE:
                                      description: |
                                        Number of devices currently in this event state.
                                      type: number
                                    eventSource:
                                      enum:
                                        - geofence
                                      type: string
                                  required:
                                    - eventSource
                                    - INSIDE_GEOFENCE
                                    - OUTSIDE_GEOFENCE
                                  type: object
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      type: number
                                    DWELLING_STARTED:
                                      description: |
                                        Number of devices currently in this event state.
                                      type: number
                                    eventSource:
                                      enum:
                                        - dwelling
                                      type: string
                                  required:
                                    - eventSource
                                    - DWELLING_STARTED
                                    - DWELLING_ENDED
                                  type: object
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      type: number
                                    DETENTION_STARTED:
                                      description: |
                                        Number of devices currently in this event state.
                                      type: number
                                    eventSource:
                                      enum:
                                        - detention
                                      type: string
                                  required:
                                    - eventSource
                                    - DETENTION_STARTED
                                    - DETENTION_ENDED
                                  type: object
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      type: number
                                    UTILIZED:
                                      description: |
                                        Number of devices currently in this event state.
                                      type: number
                                    eventSource:
                                      enum:
                                        - utilization
                                      type: string
                                  required:
                                    - eventSource
                                    - UTILIZED
                                    - UNUTILIZED
                                  type: object
                                - properties:
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      type: number
                                    SHIPMENT_EARLY:
                                      description: |
                                        Number of devices currently in this event state.
                                      type: number
                                    SHIPMENT_ON_TIME:
                                      description: |
                                        Number of devices currently in this event state.
                                      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.
                                      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
  /events/v3/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Events
  "/events/v3/{trackingId}":
    get:
      description: |
        Gets all events for a device or a shipment. 
        A device is identified by the `trackingId`.
        For shipments, `shipmentId` can be used as a `trackingId`.

        The results are listed in descending order based on the timestamp.

        An event is uniquely identified by `trackingId`-`ruleId`-`timestamp` key, 
        with an exception of dwelling and stock rule events. 
        Dwelling events also need `geofenceId` to be specified, 
        whereas for stock events `trackingId` is not applicable.

        A single event can be fetched using `ruleId`, `before` and `after` query parameters.

        A time range can be defined with `before` and `after` timestamps. The response will contain
        an array of events that were recorded within the range.

        If the request is supplied with `eventSource` query parameter, the response will contain
        events generated by the defined source only.

        If the request is supplied with `eventType` query parameter, the response will contain
        events of the specified type only.

        If the request is supplied with `ruleId` query parameter, the response will only contain events
        for the specified rule ID.

        If the request is supplied with `initialState` query parameter, the response will contain
        events having the specified initial state.

        All the aforementioned query parameters can be combined together.
      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.
            The accepted range is from 1 to the current time.
          in: query
          name: before
          required: false
          schema:
            minimum: 1
            type: number
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 0 to the current time.
          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.
                enum:
                  - attach
                  - battery
                  - geofence
                  - humidity
                  - pressure
                  - tamper
                  - temperature
                  - acceleration
                  - dwelling
                  - stock
                  - detention
                  - utilization
                  - online
                  - shipmentSchedule
                type: string
              - items:
                  description: |
                    The event source rule type.
                  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.

                  An event is created every time an associated rule or geofence is triggered by a device ingestion.
                  The event type depends on the data the device sends.

                  Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                  generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                  This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                  Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                  transitions from one state to another, either from `false` to `true` or vice versa.
                  This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                  The same event types are also generated by the online rule when the device state changes from `offline` 
                  (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                  or vice versa.

                  The acceleration sensor generates events whenever the reported sensor reading 
                  crosses the acceleration threshold (for example, when the device was dropped).
                  This produces events of the type EVENT. 
                  Such events are stateless.

                  Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                  a geofence associated with the device.

                  Events of DWELLING_STARTED type are generated when the device has
                  stayed inside an associated geofence for longer than the threshold duration. 
                  DWELLING_ENDED type events are generated when dwelling of the device has ended.

                  Events of DETENTION_STARTED type are generated when the device has been
                  stationary for longer than the threshold duration, regardless whether the device is inside 
                  or outside of any geofence. 
                  DETENTION_ENDED type events will be generated when the device starts moving again.

                  Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                  threshold duration.
                  UTILIZED type events are generated when the device starts moving again after having been stationary.

                  Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                  inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                  Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                  is too early, on time or delayed.
                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.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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.
                format: uuid
                type: string
              - items:
                  description: |
                    ID of the rule or geofence. Must be a valid UUIDv4.
                  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 
              evaluated for the first time. It indicates the fact that this is the initial evaluation 
              state, which would serve as a starting point for the subsequent rule evaluations.
              The rest of the rule events would represent a transition of a device or a shipment or 
              a geofence from one state to another and their `initialState` property will be set to `false`.
            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 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      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).
                              title: Boolean event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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.
                                      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,
                                pressure and temperature).
                              title: Range event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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
                                event occurs (eg. the device was dropped)
                              title: Generic event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      enum:
                                        - geofence
                                      type: string
                                    eventType:
                                      enum:
                                        - INSIDE_GEOFENCE
                                        - OUTSIDE_GEOFENCE
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                              description: |
                                Events generated by device crossing the geofence border.
                              title: Geofence event
                            - allOf:
                                - properties:
                                    eventSource:
                                      description: |
                                        The event source: stock rule
                                      enum:
                                        - stock
                                      type: string
                                    eventType:
                                      description: |
                                        The "OVERSTOCK" type - Events are triggered when the number of assets
                                        is over a maximum stock volume.

                                        The "UNDERSTOCK" type - Events are triggered when the number of assets
                                        is under a minimum stock volume.

                                        The "NORMAL_VOLUME" type - Events are triggered when the number of assets
                                        is between the minimum stock volume and the maximum stock volume.
                                      enum:
                                        - OVERSTOCK
                                        - NORMAL_VOLUME
                                        - UNDERSTOCK
                                      type: string
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                  required:
                                    - initialState
                                  type: object
                              description: |
                                Events generated by the number of assets inside a geofence over a maximum stock volume,
                                or between a minimum stock volume and a maximum stock volume, or under a minimum stock volume.
                              title: Stock event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      enum:
                                        - dwelling
                                      type: string
                                    eventType:
                                      enum:
                                        - DWELLING_STARTED
                                        - DWELLING_ENDED
                                      type: string
                                    geofenceId:
                                      description: |
                                        An ID of a geofence that triggered the dwelling event
                                      format: uuid
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                                    - geofenceId
                              description: |
                                Events generated by a device that has dwelled inside a geofence for longer than specified
                                threshold duration
                              title: Dwelling event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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
                                threshold duration.
                              title: Detention event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      enum:
                                        - utilization
                                      type: string
                                    eventType:
                                      enum:
                                        - UTILIZED
                                        - UNUTILIZED
                                      type: string
                                  required:
                                    - eventSource
                                    - eventType
                              description: |
                                The UTILIZED event is generated when a device starts moving,
                                and the UNUTILIZED event is generated when the device has been stationary
                                for longer than the specified threshold duration.
                              title: Utilization event
                            - allOf:
                                - properties:
                                    initialState:
                                      description: |
                                        Events with the `initialState` property set as `true` are generated when the rule is 
                                        evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                        state, which would serve as a starting point for the subsequent rule evaluations.
                                        The rest of the rule events would represent a transition of a device or a shipment or 
                                        a geofence from one state to another and their `initialState` property will be set to `false`.
                                      type: boolean
                                    ruleId:
                                      description: |
                                        Must be a valid UUIDv4.
                                      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
                                      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
                              title: Shipment schedule event
                        type: array
                    type: object
          description: |
            Successful

            The events were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Geofence Associations
  /geofence-associations/v2/version:
    get:
      deprecated: true
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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`.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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.
                          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,
                  and `pageToken` is the next page token if available. 
                  If no devices are found, an object with an empty data array is returned.
                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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      responses:
        "204":
          description: |
            Successful (no content)

            The association was successfully removed.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`. 
        Whenever the device enters or exits the associated geofence, an event is generated.
      responses:
        "200":
          description: |
            Successful

            Device was already associated with the geofence
        "201":
          description: |
            Successful

            The device was successfully associated with the geofence
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Associates a device with a geofence
      tags:
        - Geofence Associations
  /geofences/v2:
    delete:
      description: |
        Deletes all geofences of a project.

        If a geofence is associated with a stock rule, the rule will also be deleted.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. 
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content)

            All geofence definitions were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Deletes all geofences
      tags:
        - Geofences
    get:
      description: |
        Gets all geofences of a project. 
        Results can be filtered by using the query parameters.
        Indoor geofences with the `floor` properties
        may be filtered by `floor[id]`, which specifies the ID of the venue associated with the geofence.
      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.
          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,
                  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.
                example:
                  "response data as Protobuf binary, format as follows": |
                    message GeofenceMsg {
                      message GeofenceCircular {
                        //Latitude value
                        float lat = 1;
                        //Longitude value
                        float lng = 2;
                        //Center radius value
                        uint32 radius = 3;
                        //Geofence ID
                        string id = 4;
                      }
                      message GeofencePolygonal {
                        //Latitude value array
                        repeated float lat = 1;
                        //Longitude value array
                        repeated float lng = 2;
                        //Geofence ID
                        string id = 3;
                      }
                      //Circular geofence array
                      repeated GeofenceCircular circulars = 1;
                      //Polygonal geofence array
                      repeated GeofencePolygonal polygonals = 2;
                      //Page token
                      string pageToken = 3;
                    }
                items: {}
                type: array
          description: |
            Response body contains an array of geofence objects, `count` specifies 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.
            Response content type can be either JSON or protobuf depending on the 'Content-Type' request header.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Gets all geofences
      tags:
        - Geofences
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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
        assign a name and a description to each geofence to help identify them.

        Circle
        ---

        Specify coordinates of the center point of the circle and a radius in
        meters.

        ```json
            {
              "name": "Home",
              "type": "circle",
              "definition": {
                "center": {
                  "lat": 52.5308398,
                  "lng": 13.38490035
                },
                "radius": 100
              },
              "description": "Small area around my house."
            }
        ```

        Polygon
        ---

        Specify an array of points. A minimum of three points is required.

        *NOTE: If the array of points does not describe a closed polygon, the polygon is
        automatically closed between the last and first points.*

        ```json
            {
              "name": "Work",
              "type": "polygon",
              "definition": {
                "points": [{
                  "lat": 52.5308398,
                  "lng": 13.38490035
                }, {
                  "lat": 52.530443,
                  "lng": 13.38482003
                }, {
                  "lat": 52.5308298,
                  "lng": 13.38492235
                }]
              },
              "description": "The area around work."
            }
        ```

        Indoor geofence
        ---

        Circular and polygonal geofences can be both outdoors and indoors.
        To create a `circular` `indoor` geofence, add the `floor` property to the request body.

        ```json
            {
              "name": "Office indoor",
              "type": "circle",
              "definition": {
                "center": {
                  "lat": 52.5308398,
                  "lng": 13.38490035
                },
                "radius": 20,
                "floor": {
                  "level": 2,
                  "id": "DM_1234",
                  "name": "Office floor 2"
                }
              },
              "description": "Floor 2 of the office."
            }

        ```

        POI geofence
        ---

        Specify location details of a POI geofence for its initial creation.

        After the POI geofence has been created, it will need to be trained.
        The POI geofence boundary is defined using radio measurements.
        The POI geofence is trained using a telemetry 
        that a device has ingested while being at this desired point of interest.

        For a trained POI geofence, an associated device is considered to be inside the 
        geofence when the radio measurements of the device-ingested telemetry and 
        the training data match.

        ```json
            {
              "name": "POI room in the office",
              "type": "poi",
              "definition": {
                "location": {
                  "room": ROOM_201,
                  "address": Invalidenstrasse 116,
                  "country": Germany,
                  "position": {
                    "lat": 52.5308398,
                    "lng": 13.38490035
                  }
                },
                "floor": {
                  "level": 2,
                  "id": "DM_1234",
                  "name": "Office floor 2"
                }
              },
              "description": "A room where goods should be delivered."
            }
        ```

        Successful requests have the HTTP status 201 and the response body provides
        the ID of the created geofence.
      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

            The geofence was successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.

          Must be a valid UUIDv4.
        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.

        The request body contains a training data sample in form of either a device tracking ID 
        along with a specific time range for the ingested device telemetry or a WLAN scan.
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - additionalProperties: false
                  properties:
                    after:
                      description: |
                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                        The value must be within the past 24 hours from the current timestamp
                      type: integer
                    before:
                      description: |
                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                        The value must not be greater than current timestamp
                      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The request was well-formed but was unable to be followed due to semantic errors.
      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
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Geofences
  "/geofences/v2/{geofenceId}":
    delete:
      description: |
        Deletes a single geofence identified by the `geofenceId`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource already exists
      security:
        - Bearer: []
      summary: Deletes a geofence
      tags:
        - Geofences
    get:
      description: |
        Gets details of a single geofence identified by the `geofenceId`.
      parameters:
        - description: |
            Field names to filter a result object.
          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.
                example:
                  "response data as Protobuf binary, format as follows": |
                    message GeofenceMsg {
                      message GeofenceCircular {
                        //Latitude value
                        float lat = 1;
                        //Longitude value
                        float lng = 2;
                        //Center radius value
                        uint32 radius = 3;
                        //Geofence ID
                        string id = 4;
                      }
                      message GeofencePolygonal {
                        //Latitude value array
                        repeated float lat = 1;
                        //Longitude value array
                        repeated float lng = 2;
                        //Geofence ID
                        string id = 3;
                      }
                      //Circular geofence array
                      repeated GeofenceCircular circulars = 1;
                      //Polygonal geofence array
                      repeated GeofencePolygonal polygonals = 2;
                      //Page token
                      string pageToken = 3;
                    }
                items: {}
                type: array
          description: |
            Response body contains a single geofence object.
            Response content type can be either JSON or protobuf depending on the 'Content-Type' request header.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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. 
        The old geofence will be replaced by the new one, and hence the full set of the 
        geofence properties must be provided in the request body. 
        `POI` geofence type cannot be changed to `circle` or `polygon` and vice versa.

        If the update was successful, the response will contain the updated geofence details.
      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.
                example:
                  "response data as Protobuf binary, format as follows": |
                    message GeofenceMsg {
                      message GeofenceCircular {
                        //Latitude value
                        float lat = 1;
                        //Longitude value
                        float lng = 2;
                        //Center radius value
                        uint32 radius = 3;
                        //Geofence ID
                        string id = 4;
                      }
                      message GeofencePolygonal {
                        //Latitude value array
                        repeated float lat = 1;
                        //Longitude value array
                        repeated float lng = 2;
                        //Geofence ID
                        string id = 3;
                      }
                      //Circular geofence array
                      repeated GeofenceCircular circulars = 1;
                      //Polygonal geofence array
                      repeated GeofencePolygonal polygonals = 2;
                      //Page token
                      string pageToken = 3;
                    }
                items: {}
                type: array
          description: |
            Successful

            The geofence definition was updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.
        The POI geofence boundary is defined using radio measurements.
        The geofence is trained using a telemetry that the device with `trackingId` has ingested 
        during the specified time range, while being at this point of interest.
        Only telemetries that have been ingested during the last 24 hours can be used in the training.

        Optionally, a WLAN scan be used for the training.
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - additionalProperties: false
                  properties:
                    after:
                      description: |
                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                        The value must be within the past 24 hours from the current timestamp
                      type: integer
                    before:
                      description: |
                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                        The value must not be greater than current timestamp
                      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The request was well-formed but was unable to be followed due to semantic errors.
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Labels
  /labels/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Labels
  "/labels/v4/{resourceType}":
    get:
      description: |
        Gets all labels of the resource type `resourceType` within a project.

        The `fields` parameter specifies which fields should be added to the response body 
        (for example, `resourceId`).

        The `labels` query parameter is specified as a label filter, and only the matching
        results will be returned:

        "?labels[priority]=high&labels[group]=group1&fields=resourceId,labels"
        "?labels[group]=*"
      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.
          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.
                          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,
            and `pageToken` is the next page token if available.

            If no label is found, an object with empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
  "/labels/v4/{resourceType}/keys":
    get:
      description: |
        Gets all label keys of the resource type `resourceType`.
      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

            The label keys were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          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`.
      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

            The label values for a specific label key and resource type were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
  "/labels/v4/{resourceType}/{resourceId}":
    delete:
      description: |
        Deletes all labels of the resource `resourceId`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Deletes all labels of a resource
      tags:
        - Labels
    get:
      description: |
        Gets all labels of the resource `resourceId`.
      parameters:
        - description: |
            Field names to filter a result object.
          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.
                    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

            The labels of a specific resource were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.

          Must be a valid UUIDv4.
        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`.
      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
                    and the value is an array of label values.
                  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.
                    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

            The labels were successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`.
      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.
                    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

            The label was successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      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.

          Must be a valid UUIDv4.
        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.
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.
      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: 2021-05-28T12:10:00Z
                        createdAt: 2021-05-28T11:40:00Z
                        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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Largedata
  /largedata/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Largedata
  "/largedata/v4/{dataId}":
    delete:
      description: |
        Deletes large data 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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.

        When the upload has been completed, it is no longer possible to upload
        new parts to it but the uploaded data can be downloaded.

        This request has an optional `abort` query
        parameter (the default value is `false`) for aborting the upload instead
        of successfully completing it. If the upload is aborted, all of its
        parts and data are removed from HERE Tracking.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Completes data upload
      tags:
        - Largedata
  "/largedata/v4/{dataId}/data":
    get:
      description: |
        Downloads a part of large data.

        The data to be downloaded is identified with `dataId`. 
        `offset` query paremeter specifies the first byte of the data,
        and `count` indicates how many bytes of the data is to be downloaded
        starting from and including the `offset`. The default value for `offset`
        is zero and the for `count` it is the total size of the data.

        The size of one downloaded data part must be between 1 byte and 10 MB.
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Metadata for a large data object
                example:
                  completedAt: 2021-05-28T12:10:00Z
                  createdAt: 2021-05-28T11:40:00Z
                  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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.

          Must be a valid UUIDv4.
        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.

        Part upload has the following limits:
        * The part numbers must start from 1, be no greater than 10000 and be consecutive.
        * The size of one uploaded data part must be between 1 byte and 1 MB.
        * Parts re-uploaded with the same `partNumber` are overridden.
        * Only `application/octet-stream` Content-Type is supported.

        Parts can be uploaded in any order, the `partNumber` determines their
        position in the total data.

        The optional `md5` query parameter can be used to provide the MD5
        digest for the uploaded data part. If it is specified and does not match
        to the received data, HERE Tracking returns HTTP status 400.

        If the data upload is still in ***preparing*** state, HERE Tracking
        returns HTTP status 409.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      security:
        - Bearer: []
      summary: Uploads a part of a large data
      tags:
        - Largedata
  /locations/v4:
    delete:
      description: |
        Deletes all locations of the project.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion.
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content).

            All locations were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Deletes all locations
      tags:
        - Locations
    get:
      description: |
        Gets all locations of the project.
      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.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: "*office*"
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: |
            Filter locations by street address. Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: "*street*"
          in: query
          name: street
          required: false
          schema:
            type: string
        - description: |
            Filter locations by city. Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: "*city*"
          in: query
          name: city
          required: false
          schema:
            type: string
        - description: |
            Filter locations by postal code. Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: "*100*"
          in: query
          name: postalCode
          required: false
          schema:
            type: string
        - description: |
            Filter locations by state. Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: New*
          in: query
          name: state
          required: false
          schema:
            type: string
        - description: |
            Filter locations by country. Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: "*land*"
          in: query
          name: country
          required: false
          schema:
            type: string
        - description: |
            Filter locations by locationId wildcard.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: LOC-*
          in: query
          name: locationId
          required: false
          schema:
            type: string
        - description: |
            A paramater to specify field to sort by and order.
            The following format can be used:
            'name:asc' sort by name in ascending order,
            'steet:desc' sort by street in descending order.
            Allowed fields to sort by:
            locationId, name, street, city, postalCode, state, country.
          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
            returned items, limit indicating the requested maximum amount of records to be returned
            and pageToken for the next page if available.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Gets all locations
      tags:
        - Locations
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Creates a new location.
        A location consists of latitude/longitude coordinate pair and/or geofenceId.
        A name, description, and address of the location may be provided.
      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.

            The location has been successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Locations
  /locations/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Locations
  "/locations/v4/{locationId}":
    delete:
      description: |
        Deletes the location `locationId`.

        ***NOTE***: A location can not be deleted if the location is referred by any shipment or
        shipment plan.
      responses:
        "204":
          description: |
            Successful (no content).

            The location was successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Deletes a location
      tags:
        - Locations
    get:
      description: |
        Gets details of the location `locationId`.
      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.

            The location information was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.
        A name, description, and address of the location may be provided.
        The old location definition will be replaced, meaning that
        full location body should be provided. After a successful update, the response provides
        the updated location details.
      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.

            The location information was updated
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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
                              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

            The metadata was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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
                    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

            The metadata was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`. 
        The metadata specified in the request body is merged with the existing metadata object 
        (or gets created if no metadata object exists); 
        new keys are added, and the values of the existing keys are updated with the new data.
        Adding 'null' value for a key deletes it from the metadata object.
        Successful response body contains the updated metadata object.
      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
                    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

            The metadata was successfully updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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
                              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

            The metadata was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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
                    example:
                      priority: high
                    type: object
                  id:
                    description: Geofence ID
                    format: uuid
                    type: string
                required:
                  - id
                  - data
                type: object
          description: |
            Successful

            The metadata was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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`. 
        The metadata specified in the request body is merged with the existing metadata object 
        (or gets created if no metadata object exists); 
        new keys are added, and the values of the existing keys are updated with the new data.
        Adding 'null' value for a key deletes it from the metadata object.
        Successful response body contains the updated metadata object.
      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
                    example:
                      priority: high
                    type: object
                  id:
                    description: Geofence ID
                    format: uuid
                    type: string
                required:
                  - id
                  - data
                type: object
          description: |
            Successful

            The metadata was successfully updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.

          Must be a valid UUIDv4.
        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
                              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

            The metadata was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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
                    example:
                      priority: high
                    type: object
                  id:
                    description: Sensor rule ID
                    format: uuid
                    type: string
                required:
                  - id
                  - data
                type: object
          description: |
            Successful

            The metadata was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.
          format: uuid
          type: string
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        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`. 
        The metadata specified in the request body is merged with the existing metadata object 
        (or gets created if no metadata object exists); 
        new keys are added, and the values of the existing keys are updated with the new data.
        Adding 'null' value for a key deletes it from the metadata object.
        Successful response body contains the updated metadata object.
      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
                    example:
                      priority: high
                    type: object
                  id:
                    description: Sensor rule ID
                    format: uuid
                    type: string
                required:
                  - id
                  - data
                type: object
          description: |
            Successful

            The metadata was successfully updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Creates or updates metadata of a sensor rule
      tags:
        - Metadata
  "/metadata/v2/users/{userId}":
    parameters:
      - description: |
          User Id.
        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.

          Must be a valid UUIDv4.
        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
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Notifications
  "/notifications/v3/registration/{channelId}":
    delete:
      description: |
        Unregisters from notifications and deletes the notification channel `channelId`.
      responses:
        "204":
          description: |
            Successful

            The notification channel registration was successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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`.
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  registration:
                    oneOf:
                      - properties:
                          channelId:
                            description: |
                              channel ID
                            format: uuid
                            type: string
                          channelType:
                            enum:
                              - webhook
                            type: string
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          url:
                            description: |
                              A URL for webhook notifications capable of receiving POST requests.
                            type: string
                        required:
                          - channelType
                          - url
                          - channelId
                        title: webhook
                        type: object
                      - properties:
                          channelId:
                            description: |
                              channel ID
                            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
                              emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                              to be deleted and created again after the email has been changed in HERE Account.
                            type: boolean
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          userId:
                            description: |
                              User Id.
                            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
                            format: uuid
                            type: string
                          channelType:
                            enum:
                              - browserPull
                            type: string
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          userId:
                            description: |
                              User Id.
                            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

            The notification channel was updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - description: |
          The notification channel ID.
        in: path
        name: channelId
        required: true
        schema:
          description: |
            Must be a valid UUIDv4.
          format: uuid
          type: string
    put:
      description: |
        Updates the `url`, `ruleId`, `eventSource`, `eventType` and `initialState` parameters of
        the notification channel `channelId`. If a property is not provided in the request body,
        its value will be updated to null. When updating a webhook channel, the `url` parameter must be provided.

        After a successful update, the response provides the updated notification channel details.
      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.
                  enum:
                    - attach
                    - battery
                    - geofence
                    - humidity
                    - pressure
                    - tamper
                    - temperature
                    - acceleration
                    - dwelling
                    - stock
                    - detention
                    - utilization
                    - online
                    - shipmentSchedule
                  type: string
                eventType:
                  description: |
                    Type of the event.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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 
                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                    state, which would serve as a starting point for the subsequent rule evaluations.
                    The rest of the rule events would represent a transition of a device or a shipment or 
                    a geofence from one state to another and their `initialState` property will be set to `false`.
                  type: boolean
                ruleId:
                  description: |
                    Must be a valid UUIDv4.
                  format: uuid
                  type: string
                url:
                  description: |
                    A webhook URL that will receive notifications POST requests.
                  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
                            format: uuid
                            type: string
                          channelType:
                            enum:
                              - webhook
                            type: string
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          url:
                            description: |
                              A URL for webhook notifications capable of receiving POST requests.
                            type: string
                        required:
                          - channelType
                          - url
                          - channelId
                        title: webhook
                        type: object
                      - properties:
                          channelId:
                            description: |
                              channel ID
                            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
                              emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                              to be deleted and created again after the email has been changed in HERE Account.
                            type: boolean
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          userId:
                            description: |
                              User Id.
                            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
                            format: uuid
                            type: string
                          channelType:
                            enum:
                              - browserPull
                            type: string
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          userId:
                            description: |
                              User Id.
                            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

            The notification channel registration was updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource already exists
      security:
        - Bearer: []
      summary: Updates a notification channel
      tags:
        - Notifications
  /notifications/v3/registrations:
    delete:
      description: |
        Deletes all the notification channels. 
        This would result in unregistering from all the notifications.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. 
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
        - in: query
          name: projectId
          required: false
          schema:
            description: |
              Project ID.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            maxLength: 50
            minLength: 1
            type: string
      responses:
        "204":
          description: |
            Successful (no content)

            All notification registrations were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Unregisters from all notifications
      tags:
        - Notifications
    get:
      description: |
        Gets a list of all registered notification channels.
      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.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            maxLength: 50
            minLength: 1
            type: string
        - description: |
            Filter result by channelType.

            Example: `channelType[]=webhook`, `channelType[]=browserPull,email`
          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.
          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
            due to email bounce. When set to `false`, returns all the channels which are active (and not only email channels).
          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
                                  format: uuid
                                  type: string
                                channelType:
                                  enum:
                                    - webhook
                                  type: string
                                eventSource:
                                  description: |
                                    The event source rule type.
                                  enum:
                                    - attach
                                    - battery
                                    - geofence
                                    - humidity
                                    - pressure
                                    - tamper
                                    - temperature
                                    - acceleration
                                    - dwelling
                                    - stock
                                    - detention
                                    - utilization
                                    - online
                                    - shipmentSchedule
                                  type: string
                                eventType:
                                  description: |
                                    Type of the event.

                                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                                    The event type depends on the data the device sends.

                                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                                    transitions from one state to another, either from `false` to `true` or vice versa.
                                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                                    The same event types are also generated by the online rule when the device state changes from `offline` 
                                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                                    or vice versa.

                                    The acceleration sensor generates events whenever the reported sensor reading 
                                    crosses the acceleration threshold (for example, when the device was dropped).
                                    This produces events of the type EVENT. 
                                    Such events are stateless.

                                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                                    a geofence associated with the device.

                                    Events of DWELLING_STARTED type are generated when the device has
                                    stayed inside an associated geofence for longer than the threshold duration. 
                                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                                    Events of DETENTION_STARTED type are generated when the device has been
                                    stationary for longer than the threshold duration, regardless whether the device is inside 
                                    or outside of any geofence. 
                                    DETENTION_ENDED type events will be generated when the device starts moving again.

                                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                                    threshold duration.
                                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                                    is too early, on time or delayed.
                                  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 
                                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                    state, which would serve as a starting point for the subsequent rule evaluations.
                                    The rest of the rule events would represent a transition of a device or a shipment or 
                                    a geofence from one state to another and their `initialState` property will be set to `false`.
                                  type: boolean
                                ruleId:
                                  description: |
                                    Must be a valid UUIDv4.
                                  format: uuid
                                  type: string
                                url:
                                  description: |
                                    A URL for webhook notifications capable of receiving POST requests.
                                  type: string
                              required:
                                - channelType
                                - url
                                - channelId
                              title: webhook
                              type: object
                            - properties:
                                channelId:
                                  description: |
                                    channel ID
                                  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
                                    emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                                    to be deleted and created again after the email has been changed in HERE Account.
                                  type: boolean
                                eventSource:
                                  description: |
                                    The event source rule type.
                                  enum:
                                    - attach
                                    - battery
                                    - geofence
                                    - humidity
                                    - pressure
                                    - tamper
                                    - temperature
                                    - acceleration
                                    - dwelling
                                    - stock
                                    - detention
                                    - utilization
                                    - online
                                    - shipmentSchedule
                                  type: string
                                eventType:
                                  description: |
                                    Type of the event.

                                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                                    The event type depends on the data the device sends.

                                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                                    transitions from one state to another, either from `false` to `true` or vice versa.
                                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                                    The same event types are also generated by the online rule when the device state changes from `offline` 
                                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                                    or vice versa.

                                    The acceleration sensor generates events whenever the reported sensor reading 
                                    crosses the acceleration threshold (for example, when the device was dropped).
                                    This produces events of the type EVENT. 
                                    Such events are stateless.

                                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                                    a geofence associated with the device.

                                    Events of DWELLING_STARTED type are generated when the device has
                                    stayed inside an associated geofence for longer than the threshold duration. 
                                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                                    Events of DETENTION_STARTED type are generated when the device has been
                                    stationary for longer than the threshold duration, regardless whether the device is inside 
                                    or outside of any geofence. 
                                    DETENTION_ENDED type events will be generated when the device starts moving again.

                                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                                    threshold duration.
                                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                                    is too early, on time or delayed.
                                  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 
                                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                    state, which would serve as a starting point for the subsequent rule evaluations.
                                    The rest of the rule events would represent a transition of a device or a shipment or 
                                    a geofence from one state to another and their `initialState` property will be set to `false`.
                                  type: boolean
                                ruleId:
                                  description: |
                                    Must be a valid UUIDv4.
                                  format: uuid
                                  type: string
                                userId:
                                  description: |
                                    User Id.
                                  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
                                  format: uuid
                                  type: string
                                channelType:
                                  enum:
                                    - browserPull
                                  type: string
                                eventSource:
                                  description: |
                                    The event source rule type.
                                  enum:
                                    - attach
                                    - battery
                                    - geofence
                                    - humidity
                                    - pressure
                                    - tamper
                                    - temperature
                                    - acceleration
                                    - dwelling
                                    - stock
                                    - detention
                                    - utilization
                                    - online
                                    - shipmentSchedule
                                  type: string
                                eventType:
                                  description: |
                                    Type of the event.

                                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                                    The event type depends on the data the device sends.

                                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                                    transitions from one state to another, either from `false` to `true` or vice versa.
                                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                                    The same event types are also generated by the online rule when the device state changes from `offline` 
                                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                                    or vice versa.

                                    The acceleration sensor generates events whenever the reported sensor reading 
                                    crosses the acceleration threshold (for example, when the device was dropped).
                                    This produces events of the type EVENT. 
                                    Such events are stateless.

                                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                                    a geofence associated with the device.

                                    Events of DWELLING_STARTED type are generated when the device has
                                    stayed inside an associated geofence for longer than the threshold duration. 
                                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                                    Events of DETENTION_STARTED type are generated when the device has been
                                    stationary for longer than the threshold duration, regardless whether the device is inside 
                                    or outside of any geofence. 
                                    DETENTION_ENDED type events will be generated when the device starts moving again.

                                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                                    threshold duration.
                                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                                    is too early, on time or delayed.
                                  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 
                                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                                    state, which would serve as a starting point for the subsequent rule evaluations.
                                    The rest of the rule events would represent a transition of a device or a shipment or 
                                    a geofence from one state to another and their `initialState` property will be set to `false`.
                                  type: boolean
                                ruleId:
                                  description: |
                                    Must be a valid UUIDv4.
                                  format: uuid
                                  type: string
                                userId:
                                  description: |
                                    User Id.
                                  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,
                  and pageToken if available. If no registrations are found, an object with empty data array is returned.
                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

            The list of registered notification channels was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.

        To get notified about some specific events only, one can set up `ruleId`, `eventSource`, `eventType` 
        and `initialState` filters for a notification channel.
      parameters:
        - in: query
          name: projectId
          required: false
          schema:
            description: |
              Project ID.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            maxLength: 50
            minLength: 1
            type: string
        - description: |
            User Id.
          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.
                  enum:
                    - attach
                    - battery
                    - geofence
                    - humidity
                    - pressure
                    - tamper
                    - temperature
                    - acceleration
                    - dwelling
                    - stock
                    - detention
                    - utilization
                    - online
                    - shipmentSchedule
                  type: string
                eventType:
                  description: |
                    Type of the event.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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 
                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                    state, which would serve as a starting point for the subsequent rule evaluations.
                    The rest of the rule events would represent a transition of a device or a shipment or 
                    a geofence from one state to another and their `initialState` property will be set to `false`.
                  type: boolean
                ruleId:
                  description: |
                    Must be a valid UUIDv4.
                  format: uuid
                  type: string
                url:
                  description: |
                    A webhook URL that will receive notifications POST requests.
                  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
                            format: uuid
                            type: string
                          channelType:
                            enum:
                              - webhook
                            type: string
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          url:
                            description: |
                              A URL for webhook notifications capable of receiving POST requests.
                            type: string
                        required:
                          - channelType
                          - url
                          - channelId
                        title: webhook
                        type: object
                      - properties:
                          channelId:
                            description: |
                              channel ID
                            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
                              emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                              to be deleted and created again after the email has been changed in HERE Account.
                            type: boolean
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          userId:
                            description: |
                              User Id.
                            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
                            format: uuid
                            type: string
                          channelType:
                            enum:
                              - browserPull
                            type: string
                          eventSource:
                            description: |
                              The event source rule type.
                            enum:
                              - attach
                              - battery
                              - geofence
                              - humidity
                              - pressure
                              - tamper
                              - temperature
                              - acceleration
                              - dwelling
                              - stock
                              - detention
                              - utilization
                              - online
                              - shipmentSchedule
                            type: string
                          eventType:
                            description: |
                              Type of the event.

                              An event is created every time an associated rule or geofence is triggered by a device ingestion.
                              The event type depends on the data the device sends.

                              Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                              generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                              This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                              Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                              transitions from one state to another, either from `false` to `true` or vice versa.
                              This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                              The same event types are also generated by the online rule when the device state changes from `offline` 
                              (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                              or vice versa.

                              The acceleration sensor generates events whenever the reported sensor reading 
                              crosses the acceleration threshold (for example, when the device was dropped).
                              This produces events of the type EVENT. 
                              Such events are stateless.

                              Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                              a geofence associated with the device.

                              Events of DWELLING_STARTED type are generated when the device has
                              stayed inside an associated geofence for longer than the threshold duration. 
                              DWELLING_ENDED type events are generated when dwelling of the device has ended.

                              Events of DETENTION_STARTED type are generated when the device has been
                              stationary for longer than the threshold duration, regardless whether the device is inside 
                              or outside of any geofence. 
                              DETENTION_ENDED type events will be generated when the device starts moving again.

                              Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                              threshold duration.
                              UTILIZED type events are generated when the device starts moving again after having been stationary.

                              Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                              inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                              Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                              is too early, on time or delayed.
                            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 
                              evaluated for the first time. It indicates the fact that this is the initial evaluation 
                              state, which would serve as a starting point for the subsequent rule evaluations.
                              The rest of the rule events would represent a transition of a device or a shipment or 
                              a geofence from one state to another and their `initialState` property will be set to `false`.
                            type: boolean
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            format: uuid
                            type: string
                          userId:
                            description: |
                              User Id.
                            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

            The notification channel for the specified user or device was
            successfully created
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Registers for notifications
      tags:
        - Notifications
  /notifications/v3/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Notifications
  "/registry/v2/devices/{deviceOrExternalId}":
    delete:
      description: |
        Deactivates a provisioned device.
        This operation will deactivate the device license (`deviceId` and `deviceSecret`).
        Deactivated devices cannot be claimed anymore.

        NOTE: The device must be unclaimed before it can be deactivated.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Deactivates a device.
      tags:
        - Registry
    get:
      description: |
        Gets the `trackingId` for a claimed device by its `deviceId`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
        The user who claimed a device is the device owner,
        which is different from the device vendor.

        Unclaimed devices cannot login or send any data to HERE Tracking.
        A claimed device data is stored in HERE Tracking and is available to the
        device owner's project, which the device has been claimed to.

        When a device is claimed, it gets assigned a `trackingId`.
        This is a unique ID associated with the device data in HERE Tracking.

        `trackingId` is different from the `deviceId`.
        The `deviceId` is permanently associated with the hardware, while the `trackingId`
        is associated with the device data.
        If the device is later sold or transferred, the `deviceId` remains the same but the
        `trackingId` changes in case the device is reclaimed.
        This way the new owner cannot access the old data.

        If the user is a member of multiple projects, the target project ID needs to be
        specified in the `projectId` query parameter (note that this is different from the `appId`).

        Only users with a valid HERE Tracking license are authorized to claim
        new devices. Claimed devices are associated with the owner
        application ID, and the total device count is kept up-to-date for billing purposes.
      parameters:
        - in: query
          name: projectId
          required: false
          schema:
            description: |
              Project ID.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource 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

            The specified resource already exists
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.
      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.
                  Any HERE Tracking user must be a member of a Tracking project.
                  The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                  If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                maxLength: 50
                minLength: 1
                type: string
              - description: Project id list
                items:
                  description: |
                    Project ID.
                    Any HERE Tracking user must be a member of a Tracking project.
                    The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                    If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                  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.
                            Any HERE Tracking user must be a member of a Tracking project.
                            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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`.
      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.

            Must be a valid UUIDv4.
          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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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
        virtual devices. Virtual devices are meant for cloud-to-cloud use case.

        A physical device license is a `deviceId` and `deviceSecret` credential pair. The batch
        job creates a number of physical device licenses specified by the `count`
        parameter in the request body.
        The response contains an array of `deviceId` and `deviceSecret` pairs.

        Virtual devices are identified with an external device ID and the requestor's
        project `appId`. The virtual device external ID is application-specific
        and the user is free to allocate it as user finds suitable.
        The external IDs for the virtual devices to be created are specified
        in the `devices` array in request body. For virtual devices
        the response contains only an array of `deviceId`s, but no `deviceSecret`s.

        The `autoclaim` parameter can only be used when creating virtual devices.
        If `autoclaim`=`true`, the created virtual devices are immediately claimed
        by the requesting user account. In this case the response contains also
        tracking IDs for the claimed devices.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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

            The batch job started successfully. Use the `/registry/v2/{jobId}/status` endpoint to
            check the job progess. After the job completes, use the `/registry/v2/{jobId}/results`
            endpoint to get the device licenses.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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`.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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: 2018-04-03T12:08:56.501Z
                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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.
        The created credentials will be returned in the response body.

        If `autoclaim` query parameter is set to `true`, the created device will also be claimed by the same user account.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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.
            The response body contains an array of newly created device licenses.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Unclaims a device
      tags:
        - Registry
    get:
      description: |
        Gets the `deviceId` of a claimed device by its `trackingId`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Gets the deviceId
      tags:
        - Registry
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        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.

          Must be a valid UUIDv4.
        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.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Gets all resources of the resource type `resourceType`.
      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.
            The resources were successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Starts a report creation.

        The request body contains a rule ID, and the report start and end time.
        The report will be created based on the event data generated by the rule and devices associated to it.

        The supported rule types are:
        * dwelling
        * detention
        * utilization

        > Note that both the report start and end timestamps must be earlier than the current time, 
        > and no newly ingested data will be automatically added to the report after its creation.

        The created report ID will be provided in the response.

        The generated report is available for one week, after which it will expire 
        and will need to be recreated.
        If there is an already existing report matching the request parameters, its `reportId`
        will be returned in the response and no new report will be generated.
      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
                    defines the start of the interval day, week or month.

                    For example, to make the report week start on Monday midnight 1st March 2021 in timezone UTC+1:00,
                    set the `start` parameter to be `2021-02-28T23:00:00.000Z` (GMT). Now when getting interval reports,
                    the first week would contain data between `2021-02-28T23:00:00.000Z` and `2021-03-07T23:00:00.000Z` (GMT).
                  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

            The report already exists or a new report creation has been started successfully.
            Use the `Gets reports` endpoint to check the report creation status and to query for actual reports.
        "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

            The report creation job has been started successfully. 
            Use the `Gets reports` endpoint to check the report creation status and to query for actual reports.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Reports
  /reports/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.
        Each report request can have a different set of query parameters.

        > Note that in the report context an asset is a device.

        Examples
        ---
        To get a report on assets dwelling times in the specified geofence during the report period, 
        create a request specifying the following:
        * `reportId`: ID of a report created for a dwelling rule
        * `measure`: 'duration'
        * `groupBy`: 'asset'
        * `geofenceId`: geofence ID

        To get a report on how many times assets were in detention on average during each week of 
        the report period, create a request specifying the following:
        * `reportId`: ID of a report created for a detention rule
        * `measure`: 'occurrence'
        * `method`: 'average'
        * `groupBy`: 'asset'
        * `interval`: 'week'
      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. 
            The metrics are always calculated over a time period, either over each interval specified 
            by the `interval` parameter (for example, over a week) or over the whole time period of the report.

            * `duration`: duration of the event
              * _"The asset dwelled for 45 hours during week 2. It was in detention for 4 hours."_
            * `occurrence`: total number of the event occurrences
              * _"During week 3, the asset was in detention 2 times. During the past month it had 7 individual dwelling periods."_
            * `day`: the number of days the event lasted
              * _"The asset was utilized for 3 days during week 4."_
            * `asset`: the number of assets that generated the event
              * _"On Monday 5 assets were in detention. On Tuesday 16 assets were in detention."_
          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 
            the report results.

            When the `interval` parameter is provided, the response will be an array of `timestamp`-`value` 
            pairs where the `timestamp` defines the beginning of the interval and the `value` is the specified 
            report metric's value calculated over the interval time.
          in: query
          name: interval
          required: false
          schema:
            enum:
              - day
              - week
              - month
            type: string
        - description: |
            Tracking ID.
            Provide a tracking ID to get a report on a specific asset.

            > Note that in the report context an asset is a device.

            For example, to get a report on how many times the specified asset was in detention during each week,
            create a request specifying the following:
            * `reportId`: ID of a report created for a detention rule
            * `trackingId`: tracking ID
            * `measure`: 'occurrence'
            * `interval`: 'week'
          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.

            One can provide a geofence ID in case one wants to get reports on a specific geofence.
            This parameter can only be used with reports created for a dwelling rule type.

            For example, to get a report on assets' average dwelling time in the specified geofence 
            during each week, create a request specifying the following:
            * `reportId`: ID of a report created for a dwelling rule
            * `measure`: 'duration'
            * `groupBy`: 'asset'
            * `interval`: 'week'
            * `method`: 'average'
            * `geofenceId`: geofence ID
          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, 
            are calculated per asset or per geofence.

            The parameter can have a value 'geofence' only with reports created for a dwelling rule.

            To get a report on how many times on average assets were in detention during each time interval,
            create a request specifying the following:
            * `reportId`: ID of a report created for a detention rule
            * `groupBy`: 'asset'
            * `method`: 'average'
            * `measure`: 'occurrence'

            To get a report on how long all assets dwelled inside each geofence during the report period,
            create a request specifying the following:
            * `reportId`: ID of a report created for a dwelling rule
            * `groupBy`: 'geofence'
            * `measure`: 'duration'

            To get a report on how long each asset dwelled (inside any geofence) during the report period, 
            create a request specifying the following:
            * `reportId`: ID of a report created for a dwelling rule
            * `groupBy`: 'asset'
            * `measure`: 'duration'
          in: query
          name: groupBy
          required: false
          schema:
            enum:
              - asset
              - geofence
            type: string
        - description: |
            Defines the calculation method. 
            The parameter `method` can only be provided along with `interval`.

            The parameter value can be `percentage` only when `measure` is 'asset'.

            For example, to get a report on percentage of all assets that were in use during each week,
            create a request specifying the following:
            * `reportId`: ID of a report created for a utilization rule
            * `interval`: 'week'
            * `method`: 'percentage'
            * `measure`: 'asset'

            When `method` is set to 'cumulative' or 'average' and `measure` is set to 'duration' or 'occurrence',
            the `groupBy` parameter needs to be provided also. 
            For example, to get a report on how long all assets dwelled in total in the specified geofence during
            each week, create a request specifying the following:
            * `reportId`: ID of a report created for a dwelling rule
            * `geofenceId`: ID of a geofence
            * `interval`: 'week'
            * `method`: 'cumulative'
            * `measure`: 'duration'
            * `groupBy`: 'asset'

            When `method` is set to 'cumulative' or 'average' and `measure` is set to 'day',
            the `groupBy` parameter is automatically set to 'asset'. 
            For example, to get a report on how many days on average assets were in use during each month, 
            create a request specifying the following:
            * `reportId`: ID of a report created for a utilization rule
            * `interval`: 'month'
            * `method`: 'average'
            * `measure`: 'day'
            * `groupBy`: 'asset'
          in: query
          name: method
          required: false
          schema:
            enum:
              - average
              - cumulative
              - percentage
            type: string
        - description: |
            Defines how the items are sorted.
            * If `interval` is provided, the default is `sort`=`timestamp:asc`
            * If `interval` is not provided, the default is `sort`=`value:desc`
          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: 2020-11-29T22:00:00.000Z
                    value: 13
                  - timestamp: 2020-12-06T22:00:00.000Z
                    value: 11
                  - timestamp: 2020-12-13T22:00:00.000Z
                    value: 17
                  - timestamp: 2020-12-20T22:00:00.000Z
                    value: 0
                  - timestamp: 2020-12-27T22:00:00.000Z
                    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
                              format: date-time
                              type: string
                            value:
                              description: |
                                The value of the report metric, which was specified in the `measure` parameter.

                                * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                                * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                                * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                                * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                                When `value` is provided along with `timestamp`, the time frame is the specified interval.
                                When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                                Additionally, if `method` parameter was given, the `value` represents
                                average/cumulative/percentage of the calculated metric.
                              type: number
                          required:
                            - timestamp
                            - value
                          title: timestamp-value
                          type: object
                        - properties:
                            trackingId:
                              description: |
                                Tracking ID on which the `value` is calculated
                              maxLength: 50
                              minLength: 1
                              type: string
                            value:
                              description: |
                                The value of the report metric, which was specified in the `measure` parameter.

                                * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                                * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                                * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                                * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                                When `value` is provided along with `timestamp`, the time frame is the specified interval.
                                When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                                Additionally, if `method` parameter was given, the `value` represents
                                average/cumulative/percentage of the calculated metric.
                              type: number
                          required:
                            - trackingId
                            - value
                          title: trackingId-value
                          type: object
                        - properties:
                            geofenceId:
                              description: |
                                Geofence ID on which the `value` is calculated
                              format: uuid
                              type: string
                            value:
                              description: |
                                The value of the report metric, which was specified in the `measure` parameter.

                                * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                                * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                                * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                                * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                                When `value` is provided along with `timestamp`, the time frame is the specified interval.
                                When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                                Additionally, if `method` parameter was given, the `value` represents
                                average/cumulative/percentage of the calculated metric.
                              type: number
                          required:
                            - geofenceId
                            - value
                          title: geofenceId-value
                          type: object
                        - properties:
                            timestamp:
                              description: |
                                Timestamp of the beginning of the event
                              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. 
                      When the status is `pending` or `started`, re-check the status later again. 
                      The actual reports can be queried only when the report creation status is 'completed'.
                    enum:
                      - pending
                      - started
                      - completed
                      - failed
                    type: string
                required:
                  - status
                  - limit
                  - count
                  - items
                type: object
          description: |
            Response body.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Gets reports
      tags:
        - Reports
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        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.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
  /rules/v4:
    delete:
      description: |
        Deletes all rules of the project.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion.
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content)

            All rule definitions were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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
                                    indicating that the asset is utilized, and also when the asset stops
                                    moving and has been stationary for longer than the threshold duration
                                    indicating that the asset is unutilized.
                                  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
                                    than the threshold duration.
                                  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
                                    for longer than the threshold duration.
                                  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.
                          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,
            and `pageToken` is the next page token if available.

            If no rules are found, an object with an empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Gets all rules
      tags:
        - Rules
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Creates a rule of the specified rule `type` and with the defined `threshold`.
        After the rule has been created, it needs to be associated to a device to get activated.

        Detention rule
        ---
        For a rule of the `detention` type the threshold is defined as a duration in seconds.
        A `DETENTION_STARTED` event gets triggered when the device has remained
        stationary for longer than the threshold duration.
        A `DETENTION_ENDED` event will be generated when the device starts moving again.

        Utilization rule
        ---
        For a rule of the `utilization` type the threshold is defined as a duration in seconds.
        An `UNUTILIZED` event will
        be generated when the device has been stationary for longer than the threshold duration, 
        and `UTILIZED` event gets triggered when the device starts moving again after having been stationary.

        Dwelling rule
        ---
        For a rule of the `dwelling` type the threshold is defined as a duration in seconds.
        A `DWELLING_STARTED` event gets triggered when a dwelling time of the device
        inside any device-associated geofence exceeds the threshold duration.
        When the device exits the geofence, a `DWELLING_ENDED` event will be generated.

        Online rule
        ---
        For a rule of the `online` type there is no threshold defined.
        A `TRUE_TO_FALSE` event gets triggered when the
        device is late for the planned ingestion schedule by more than 5 minutes.
        A `FALSE_TO_TRUE` event is generated when the device starts ingesting again after having been offline.
        The planned ingestion schedule needs to be configured in the device `desired shadow`
        (the `desired.system.rate.sendMs` property).

        Stock rule
        ---
        For a rule of the `stock` type the threshold is defined as `minVolume` and/or `maxVolume` values.
        When creating a stock rule, also a geofence ID needs to be specified.
        When the number of devices inside the specified geofence exceeds `maxVolume`, an `OVERSTOCK`
        event will be generated. Similarly, when the number of devices inside the specified geofence
        gets below `minVolume`, an `UNDERSTOCK` event will be generated. When the number of
        devices inside the specified geofence is between `minVolume` and `maxVolume`, a `NORMAL_VOLUME`
        event will be generated. Note that the stock rule only gets triggered for devices that are associated
        to the specified geofence.

        Shipment schedule rule
        ---
        For a rule of the `shipmentSchedule` type there are `before` and `after` deviation time thresholds 
        from the planned shipment ETD/ETA.
        A `SHIPMENT_EARLY` event gets triggered when the shipment is ahead
        of schedule by the number of `before` seconds.
        A `SHIPMENT_DELAYED` event gets triggered when the shipment is behind
        schedule by the number of `after` seconds.
        A `SHIPMENT_ON_TIME` event gets triggered when the shipment is on time.

        When a rule has been successfully created, the response body will contain the created rule ID.
      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
                        indicating that the asset is utilized, and also when the asset stops
                        moving and has been stationary for longer than the threshold duration
                        indicating that the asset is unutilized.
                      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
                        than the threshold duration.
                      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
                        for longer than the threshold duration.
                      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.
                    format: uuid
                    type: string
                required:
                  - ruleId
                type: object
          description: |
            Created

            The rule was successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Rules
  /rules/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Rules
  "/rules/v4/{ruleId}":
    delete:
      description: |
        Deletes a rule identified by the `ruleId`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource already exists
      security:
        - Bearer: []
      summary: Deletes a rule
      tags:
        - Rules
    get:
      description: |
        Gets details of a single rule identified by the `ruleId`.
      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
                              indicating that the asset is utilized, and also when the asset stops
                              moving and has been stationary for longer than the threshold duration
                              indicating that the asset is unutilized.
                            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
                              than the threshold duration.
                            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
                              for longer than the threshold duration.
                            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.
                    format: uuid
                    type: string
                required:
                  - ruleId
                  - rule
                type: object
          description: |
            Response body contains a single rule object.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.
          format: uuid
          type: string
    put:
      description: |
        Updates the name, description and threshold of the rule `ruleId`. 
        The rule type cannot be updated.
        If some of the these properties are not provided in the request body, their values
        will be set to null.

        If the rule has been updated successfully, the response will contain the updated rule details.
      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
                        indicating that the asset is utilized, and also when the asset stops
                        moving and has been stationary for longer than the threshold duration
                        indicating that the asset is unutilized.
                      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
                        than the threshold duration.
                      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
                        for longer than the threshold duration.
                      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
                              indicating that the asset is utilized, and also when the asset stops
                              moving and has been stationary for longer than the threshold duration
                              indicating that the asset is unutilized.
                            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
                              than the threshold duration.
                            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
                              for longer than the threshold duration.
                            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.
                    format: uuid
                    type: string
                required:
                  - ruleId
                  - rule
                type: object
          description: |
            Successful

            The rule was updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion. 
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content)

            All sensor rules were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.
                              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,
                  and `pageToken` is the next page token if available.

                  If no sensor rules are found, an object with an empty data array is returned.
                type: object
          description: |
            Response body contains an array of sensor rule objects, `count` indicates the number of returned sensor rules,
            and `pageToken` is the next page token if available.

            If no sensor rules are found, an object with an empty data array is returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Creates a sensor rule of the specified rule type.
        After the sensor rule has been created, it needs to be associated to a device to get activated.

        For a sensor rule of the battery, humidity, pressure and temperature type, a `range` parameter needs 
        to be specified, defining both upper and lower thresholds for the sensor readings. 
        When the device ingests data, the reported sensor reading is compared to the defined range 
        and in case in or out of range transition has taken place, an event gets triggered.

        For a sensor rule of the acceleration type, a `threshold` parameter needs 
        to be specified, defining the acceleration threshold value.
        Every time the device reports its accelerometer sensor reading being above the threshold, 
        an event gets triggered.

        For a sensor rule of the attach and tamper types, no additional parameters
        need to be specified.
        The attach sensor detects whether the device is attached to some object (for example to an 
        asset).
        The tamper sensor detects whether the device cover is open or closed. When the cover is open,
        the device is considered to be tampered with.
        Every time the device reports getting attached, detached, tampered with or left with the 
        cover closed (that is, not tampered with), an event gets triggered.

        When a sensor rule has been successfully created, the response body will contain the created rule ID.
      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.
                    format: uuid
                    type: string
                  message:
                    description: Set to `created` if the sensor rule creation was successful.
                    type: string
                required:
                  - id
                type: object
          description: |
            Created

            The sensor rule was successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Sensors
  /sensors/v3/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Sensors
  "/sensors/v3/{sensorRuleId}":
    delete:
      description: |
        Deletes a sensor rule identified by the `sensorRuleId`.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource already exists
      security:
        - Bearer: []
      summary: Deletes a sensor rule
      tags:
        - Sensors
    get:
      description: |
        Gets details of a single sensor rule identified by the `sensorRuleId`.
      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.
                    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.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.
          format: uuid
          type: string
    put:
      description: |
        Updates the sensor rule `sensorRuleId` name, description and range or threshold.
        The sensor rule type cannot be updated.
        If some of the these properties are not provided in the request body, their values
        will be set to null.
        If the sensor rule has been updated successfully, the response will contain the updated rule details.
      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.
                        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

            The sensor rule was updated.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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
        maximum of 100 devices per request.

        In case `after` parameter is provided, only the device
        shadows that were modified on or after the specified timestamp
        will be retrieved.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          in: header
          name: X-Request-Id
          required: false
          schema:
            format: uuid
            type: string
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 0 to the current time.
          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.
                      properties:
                        desired:
                          description: |
                            The desired shadow of the device.
                          properties:
                            payload:
                              description: |
                                A free format JSON object.
                                The maximum size is 1000B.
                              type: object
                            system:
                              description: |
                                Contains device configuration settings.
                              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.
                                    In order to disable tracking, one must at least provide the begin time of the disabling
                                    period and define either position or sensor properties one wants to disable. One can also
                                    disable both position and sensors at the same time. By default tracking is enabled.
                                  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.
                                      items:
                                        properties:
                                          begin:
                                            description: |
                                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                              Begin time of the tracking disabling period.

                                              Begin must be smaller than end. Begin must be greater or equal to current time.
                                              Begin can be set without end. If there exists already end time which is earlier
                                              than given new begin time, the existing end time will be deleted.
                                            maximum: 4102448400000
                                            minimum: 2
                                            type: integer
                                          end:
                                            description: |
                                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                              End time of the tracking disabling period.

                                              End must be greater than begin. End must be greater or equal to current time.
                                              End can be set without begin if begin is already set.
                                            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
                                          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.
                                            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.
                                          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.
                                          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.
                                            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.
                                          enum:
                                            - ""
                                          title: re-enable
                                          type: string
                                  type: object
                                lastModifiedGeofenceTimestamp:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                                    The time of the last update to geofences that device is associated
                                    with. This value is zero when device hasn't yet been associated with
                                    any geofence. This is set by HERE Tracking when any geofences
                                    associated with the device is modified or removed. Also adding and
                                    removing geofence associations update this value.
                                  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.
                                  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.
                                  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.

                                The time of the last update to the desired shadow.
                              maximum: 4102448400000
                              minimum: 2
                              type: integer
                          type: object
                        reported:
                          description: |
                            The `reported` shadow contains the most recent position, sensor readings and settings that the
                            device has sent. The reported shadow may also contain additional properties generated by HERE 
                            Tracking based on the device-ingested telemetry.
                            Such properties are stored in `system.computed` property of the shadow.

                            In case the most recent telemetry did not contain all the possible
                            fields, the last known information will remain in the shadow. This means that one can
                            see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                            even if the device did not send that information in the latest telemetry.
                          properties:
                            payload:
                              description: |
                                A free format JSON object.
                                The maximum size is 1000B.
                              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.
                                `stateVersion` property contains the version of the last
                                known `desired` state seen by the device.
                              properties:
                                client:
                                  description: |
                                    Information about the client device.
                                  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
                                        unit g (9.8 m/s^2). If more than one accelerometer is available,
                                        each element in the list will represent individual accelerometer.
                                        Each value represents a single "+/-" range.
                                        For example, value 2 means that sensor is capable to measure
                                        acceleration within the range of [-2 g, +2 g].
                                      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.
                                        Asset is considered moving if the positions of two consecutive trace points differ more
                                        than the combined positioning accuracy + 100 meters.
                                      type: integer
                                    moving:
                                      description: |
                                        Asset is considered moving if the positions of two consecutive trace points differ more
                                        than the combined positioning accuracy + 100 meters.
                                      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.
                                      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.
                                  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
                                    can send telemetry and, for example, use its GNSS receiver if it has one.
                                    A tracker switches into flight mode once it detects that it's in an
                                    airplane, and leaves that mode once airplane lands. Transport mode has to
                                    be triggered by the user, and it's used, for example, during shipping from
                                    continent to another. Sleep mode is used when a tracker is stored in
                                    a warehouse, and it's triggered by entering or leaving some defined
                                    geofence.
                                  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".
                                  example: "+491234567890"
                                  pattern: ^\+[1-9]\d{1,14}$
                                  type: string
                                reportedSensorData:
                                  description: |
                                    The last known device sensor data reported by the device.
                                  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.
                                  minimum: 0
                                  type: integer
                              type: object
                            timestamp:
                              description: |
                                Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                                The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                                the timestamp of all the reported values in the reported shadow since the shadow retains
                                values from previous ingestions if the latest telemetry did not conatain them.
                              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

            The response body contains a list of device shadows accompanied by statusCode and
            trackingId of the associated device. The returned shadow objects are in same
            order as the trackingIds provided in the request.

            In case of an error, each trackingId has a separate status code:

            * 403 - Forbidden
            * 404 - Device not found
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Shadows
  /shadows/v2/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Shadows
  "/shadows/v2/{trackingId}":
    delete:
      description: |
        Deletes the device shadow of the `trackingId` device.

        By default, all the values of the `desired` and `reported` shadow objects will be cleared, leaving them empty.

        If either `desired` or `reported` query parameter is set to `false`, that part of the shadow remains as it is.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

        If a `shipmentId` is used instead of a `trackingId`, it will return a
        shadow of the device that was most recently active for the shipment. If the shipment
        is still pending or it has been cancelled or completed, an empty shadow will be returned.
      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.
                properties:
                  desired:
                    description: |
                      The desired shadow of the device.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        type: object
                      system:
                        description: |
                          Contains device configuration settings.
                        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.
                              In order to disable tracking, one must at least provide the begin time of the disabling
                              period and define either position or sensor properties one wants to disable. One can also
                              disable both position and sensors at the same time. By default tracking is enabled.
                            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.
                                items:
                                  properties:
                                    begin:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                        Begin time of the tracking disabling period.

                                        Begin must be smaller than end. Begin must be greater or equal to current time.
                                        Begin can be set without end. If there exists already end time which is earlier
                                        than given new begin time, the existing end time will be deleted.
                                      maximum: 4102448400000
                                      minimum: 2
                                      type: integer
                                    end:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                        End time of the tracking disabling period.

                                        End must be greater than begin. End must be greater or equal to current time.
                                        End can be set without begin if begin is already set.
                                      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
                                    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.
                                      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.
                                    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.
                                    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.
                                      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.
                                    enum:
                                      - ""
                                    title: re-enable
                                    type: string
                            type: object
                          lastModifiedGeofenceTimestamp:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                              The time of the last update to geofences that device is associated
                              with. This value is zero when device hasn't yet been associated with
                              any geofence. This is set by HERE Tracking when any geofences
                              associated with the device is modified or removed. Also adding and
                              removing geofence associations update this value.
                            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.
                            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.
                            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.

                          The time of the last update to the desired shadow.
                        maximum: 4102448400000
                        minimum: 2
                        type: integer
                    type: object
                  reported:
                    description: |
                      The `reported` shadow contains the most recent position, sensor readings and settings that the
                      device has sent. The reported shadow may also contain additional properties generated by HERE 
                      Tracking based on the device-ingested telemetry.
                      Such properties are stored in `system.computed` property of the shadow.

                      In case the most recent telemetry did not contain all the possible
                      fields, the last known information will remain in the shadow. This means that one can
                      see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                      even if the device did not send that information in the latest telemetry.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        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.
                          `stateVersion` property contains the version of the last
                          known `desired` state seen by the device.
                        properties:
                          client:
                            description: |
                              Information about the client device.
                            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
                                  unit g (9.8 m/s^2). If more than one accelerometer is available,
                                  each element in the list will represent individual accelerometer.
                                  Each value represents a single "+/-" range.
                                  For example, value 2 means that sensor is capable to measure
                                  acceleration within the range of [-2 g, +2 g].
                                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.
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                type: integer
                              moving:
                                description: |
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                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.
                                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.
                            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
                              can send telemetry and, for example, use its GNSS receiver if it has one.
                              A tracker switches into flight mode once it detects that it's in an
                              airplane, and leaves that mode once airplane lands. Transport mode has to
                              be triggered by the user, and it's used, for example, during shipping from
                              continent to another. Sleep mode is used when a tracker is stored in
                              a warehouse, and it's triggered by entering or leaving some defined
                              geofence.
                            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".
                            example: "+491234567890"
                            pattern: ^\+[1-9]\d{1,14}$
                            type: string
                          reportedSensorData:
                            description: |
                              The last known device sensor data reported by the device.
                            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.
                            minimum: 0
                            type: integer
                        type: object
                      timestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                          the timestamp of all the reported values in the reported shadow since the shadow retains
                          values from previous ingestions if the latest telemetry did not conatain them.
                        maximum: 4102448400000
                        minimum: 2
                        type: integer
                    type: object
                type: object
          description: |
            Successful

            The device shadow was successfully retrieved.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.

        The device shadow consists of `reported` and `desired` shadows. 
        Only the `desired` shadow can be updated via this endpoint.
        The `reported` shadow is updated automatically when the device sends telemetry to the ingestion endpoint.
      parameters:
        - description: |
            The size of the shadow in bytes. The size is validated against the
            maximum limit of 1000 bytes.
          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.
                  properties:
                    payload:
                      description: |
                        A free format JSON object.
                        The maximum size is 1000B.
                      type: object
                    system:
                      additionalProperties: false
                      description: |
                        Contains values for the device configuration. HERE Tracking uses these values
                        for various application flows.
                      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.
                            In order to disable tracking, one must at least provide the begin time of the disabling
                            period and define either position or sensor properties one wants to disable. One can also
                            disable both position and sensors at the same time. By default tracking is enabled.
                          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.
                              items:
                                properties:
                                  begin:
                                    description: |
                                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                      Begin time of the tracking disabling period.

                                      Begin must be smaller than end. Begin must be greater or equal to current time.
                                      Begin can be set without end. If there exists already end time which is earlier
                                      than given new begin time, the existing end time will be deleted.
                                    maximum: 4102448400000
                                    minimum: 2
                                    type: integer
                                  end:
                                    description: |
                                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                      End time of the tracking disabling period.

                                      End must be greater than begin. End must be greater or equal to current time.
                                      End can be set without begin if begin is already set.
                                    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
                                  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.
                                    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.
                                  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.
                                  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.
                                    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.
                                  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.
                properties:
                  desired:
                    description: |
                      The desired shadow of the device.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        type: object
                      system:
                        description: |
                          Contains device configuration settings.
                        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.
                              In order to disable tracking, one must at least provide the begin time of the disabling
                              period and define either position or sensor properties one wants to disable. One can also
                              disable both position and sensors at the same time. By default tracking is enabled.
                            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.
                                items:
                                  properties:
                                    begin:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                        Begin time of the tracking disabling period.

                                        Begin must be smaller than end. Begin must be greater or equal to current time.
                                        Begin can be set without end. If there exists already end time which is earlier
                                        than given new begin time, the existing end time will be deleted.
                                      maximum: 4102448400000
                                      minimum: 2
                                      type: integer
                                    end:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                        End time of the tracking disabling period.

                                        End must be greater than begin. End must be greater or equal to current time.
                                        End can be set without begin if begin is already set.
                                      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
                                    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.
                                      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.
                                    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.
                                    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.
                                      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.
                                    enum:
                                      - ""
                                    title: re-enable
                                    type: string
                            type: object
                          lastModifiedGeofenceTimestamp:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                              The time of the last update to geofences that device is associated
                              with. This value is zero when device hasn't yet been associated with
                              any geofence. This is set by HERE Tracking when any geofences
                              associated with the device is modified or removed. Also adding and
                              removing geofence associations update this value.
                            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.
                            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.
                            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.

                          The time of the last update to the desired shadow.
                        maximum: 4102448400000
                        minimum: 2
                        type: integer
                    type: object
                  reported:
                    description: |
                      The `reported` shadow contains the most recent position, sensor readings and settings that the
                      device has sent. The reported shadow may also contain additional properties generated by HERE 
                      Tracking based on the device-ingested telemetry.
                      Such properties are stored in `system.computed` property of the shadow.

                      In case the most recent telemetry did not contain all the possible
                      fields, the last known information will remain in the shadow. This means that one can
                      see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                      even if the device did not send that information in the latest telemetry.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        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.
                          `stateVersion` property contains the version of the last
                          known `desired` state seen by the device.
                        properties:
                          client:
                            description: |
                              Information about the client device.
                            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
                                  unit g (9.8 m/s^2). If more than one accelerometer is available,
                                  each element in the list will represent individual accelerometer.
                                  Each value represents a single "+/-" range.
                                  For example, value 2 means that sensor is capable to measure
                                  acceleration within the range of [-2 g, +2 g].
                                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.
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                type: integer
                              moving:
                                description: |
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                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.
                                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.
                            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
                              can send telemetry and, for example, use its GNSS receiver if it has one.
                              A tracker switches into flight mode once it detects that it's in an
                              airplane, and leaves that mode once airplane lands. Transport mode has to
                              be triggered by the user, and it's used, for example, during shipping from
                              continent to another. Sleep mode is used when a tracker is stored in
                              a warehouse, and it's triggered by entering or leaving some defined
                              geofence.
                            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".
                            example: "+491234567890"
                            pattern: ^\+[1-9]\d{1,14}$
                            type: string
                          reportedSensorData:
                            description: |
                              The last known device sensor data reported by the device.
                            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.
                            minimum: 0
                            type: integer
                        type: object
                      timestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                          the timestamp of all the reported values in the reported shadow since the shadow retains
                          values from previous ingestions if the latest telemetry did not conatain them.
                        maximum: 4102448400000
                        minimum: 2
                        type: integer
                    type: object
                type: object
          description: |
            Success
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource already exists
        "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

            The request size exceeds the maximum size limit for payloads.
      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.
      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.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        type: object
                      system:
                        description: |
                          Contains device configuration settings.
                        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.
                              In order to disable tracking, one must at least provide the begin time of the disabling
                              period and define either position or sensor properties one wants to disable. One can also
                              disable both position and sensors at the same time. By default tracking is enabled.
                            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.
                                items:
                                  properties:
                                    begin:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                        Begin time of the tracking disabling period.

                                        Begin must be smaller than end. Begin must be greater or equal to current time.
                                        Begin can be set without end. If there exists already end time which is earlier
                                        than given new begin time, the existing end time will be deleted.
                                      maximum: 4102448400000
                                      minimum: 2
                                      type: integer
                                    end:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                        End time of the tracking disabling period.

                                        End must be greater than begin. End must be greater or equal to current time.
                                        End can be set without begin if begin is already set.
                                      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
                                    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.
                                      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.
                                    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.
                                    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.
                                      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.
                                    enum:
                                      - ""
                                    title: re-enable
                                    type: string
                            type: object
                          lastModifiedGeofenceTimestamp:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                              The time of the last update to geofences that device is associated
                              with. This value is zero when device hasn't yet been associated with
                              any geofence. This is set by HERE Tracking when any geofences
                              associated with the device is modified or removed. Also adding and
                              removing geofence associations update this value.
                            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.
                            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.
                            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.

                          The time of the last update to the desired shadow.
                        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
                      device has sent. The reported shadow may also contain additional properties generated by HERE 
                      Tracking based on the device-ingested telemetry.
                      Such properties are stored in `system.computed` property of the shadow.

                      In case the most recent telemetry did not contain all the possible
                      fields, the last known information will remain in the shadow. This means that one can
                      see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                      even if the device did not send that information in the latest telemetry.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        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.
                          `stateVersion` property contains the version of the last
                          known `desired` state seen by the device.
                        properties:
                          client:
                            description: |
                              Information about the client device.
                            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
                                  unit g (9.8 m/s^2). If more than one accelerometer is available,
                                  each element in the list will represent individual accelerometer.
                                  Each value represents a single "+/-" range.
                                  For example, value 2 means that sensor is capable to measure
                                  acceleration within the range of [-2 g, +2 g].
                                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.
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                type: integer
                              moving:
                                description: |
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                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.
                                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.
                            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
                              can send telemetry and, for example, use its GNSS receiver if it has one.
                              A tracker switches into flight mode once it detects that it's in an
                              airplane, and leaves that mode once airplane lands. Transport mode has to
                              be triggered by the user, and it's used, for example, during shipping from
                              continent to another. Sleep mode is used when a tracker is stored in
                              a warehouse, and it's triggered by entering or leaving some defined
                              geofence.
                            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".
                            example: "+491234567890"
                            pattern: ^\+[1-9]\d{1,14}$
                            type: string
                          reportedSensorData:
                            description: |
                              The last known device sensor data reported by the device.
                            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.
                            minimum: 0
                            type: integer
                        type: object
                      timestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                          the timestamp of all the reported values in the reported shadow since the shadow retains
                          values from previous ingestions if the latest telemetry did not conatain them.
                        maximum: 4102448400000
                        minimum: 2
                        type: integer
                    title: reported
                    type: object
          description: |
            Successful

            The requested device desired or reported state object
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.
        One can use JSON selectors to specify the target property or reference it by name.
        In case the property contains an object, the entire object will be returned in the response.

        The JSON selector can be nested like this: `payload/time/minutes`
      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

            The content type is defined as "text/plain" or "application/json"
            depending on the type of the property.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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.

          Must be a valid UUIDv4.
        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.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          in: header
          name: X-Request-Id
          required: false
          schema:
            format: uuid
            type: string
        - in: query
          name: projectId
          required: false
          schema:
            description: |
              Project ID.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            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.
            The default sort is `sort=trackingId:asc`
          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.
            The `bbox` array consist of latitude and longitude of Northwest and Southeast corners.
          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.
                              properties:
                                payload:
                                  description: |
                                    A free format JSON object.
                                    The maximum size is 1000B.
                                  type: object
                                system:
                                  description: |
                                    Contains device configuration settings.
                                  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.
                                        In order to disable tracking, one must at least provide the begin time of the disabling
                                        period and define either position or sensor properties one wants to disable. One can also
                                        disable both position and sensors at the same time. By default tracking is enabled.
                                      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.
                                          items:
                                            properties:
                                              begin:
                                                description: |
                                                  Begin time of the tracking disabling period.

                                                  Begin must be smaller than end. Begin must be greater or equal to current time.
                                                  Begin can be set without end. If there exists already end time which is earlier
                                                  than given new begin time, the existing end time will be deleted.
                                                format: date-time
                                                type: string
                                              end:
                                                description: |
                                                  End time of the tracking disabling period.

                                                  End must be greater than begin. End must be greater or equal to current time.
                                                  End can be set without begin if begin is already set.
                                                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
                                              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.
                                                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.
                                              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.
                                              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.
                                                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.
                                              enum:
                                                - ""
                                              title: re-enable
                                              type: string
                                      type: object
                                    lastModifiedGeofenceTimestamp:
                                      description: |
                                        The time of the last update to geofences that device is associated
                                        with. This value is zero when device hasn't yet been associated with
                                        any geofence. This is set by HERE Tracking when any geofences
                                        associated with the device is modified or removed. Also adding and
                                        removing geofence associations update this value.
                                      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.
                                      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.
                                      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.
                                  format: date-time
                                  type: string
                              type: object
                            reported:
                              description: |
                                The `reported` shadow contains the most recent position, sensor readings and settings that the
                                device has sent. The reported shadow may also contain additional properties generated by HERE 
                                Tracking based on the device-ingested telemetry.
                                Such properties are stored in `system.computed` property of the shadow.

                                In case the most recent telemetry did not contain all the possible
                                fields, the last known information will remain in the shadow. This means that one can
                                see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                                even if the device did not send that information in the latest telemetry.
                              properties:
                                payload:
                                  description: |
                                    A free format JSON object.
                                    The maximum size is 1000B.
                                  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.
                                    `stateVersion` property contains the version of the last
                                    known `desired` state seen by the device.
                                  properties:
                                    client:
                                      description: |
                                        Information about the client device.
                                      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
                                            unit g (9.8 m/s^2). If more than one accelerometer is available,
                                            each element in the list will represent individual accelerometer.
                                            Each value represents a single "+/-" range.
                                            For example, value 2 means that sensor is capable to measure
                                            acceleration within the range of [-2 g, +2 g].
                                          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.
                                            Asset is considered moving if the positions of two consecutive trace points differ more
                                            than the combined positioning accuracy + 100 meters.
                                          format: date-time
                                          type: string
                                        moving:
                                          description: |
                                            Asset is considered moving if the positions of two consecutive trace points differ more
                                            than the combined positioning accuracy + 100 meters.
                                          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.
                                          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.
                                      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
                                        can send telemetry and, for example, use its GNSS receiver if it has one.
                                        A tracker switches into flight mode once it detects that it's in an
                                        airplane, and leaves that mode once airplane lands. Transport mode has to
                                        be triggered by the user, and it's used, for example, during shipping from
                                        continent to another. Sleep mode is used when a tracker is stored in
                                        a warehouse, and it's triggered by entering or leaving some defined
                                        geofence.
                                      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".
                                      example: "+491234567890"
                                      pattern: ^\+[1-9]\d{1,14}$
                                      type: string
                                    reportedSensorData:
                                      description: |
                                        The last known device sensor data reported by the device.
                                      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.
                                      minimum: 0
                                      type: integer
                                  type: object
                                timestamp:
                                  description: |
                                    This describes when the reported measurements were taken.
                                  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,
            and next page token if available. For virtual devices, a combination of app ID and external ID is provided instead of tracking ID.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        This endpoint starts the shipment report generation. One can specify which shipments to include
        in the shipments report by using the filters in the request body. The response contains the generated
        shipment report ID `shipmentReportId`.

        After the shipment report generation has been requested, the status of the shipment report generation
        can be checked by using the `/shipment-reports/v4/{shipmentReportId}/status` endpoint.
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                endedAfter:
                  description: |
                    Include successfully completed shipments of each shipment plan into the shipment report generation
                    which ended after the provided date.
                  format: date-time
                  type: string
                endedBefore:
                  description: |
                    Include successfully completed shipments of each shipment plan into the shipment report generation
                    which ended before the provided date.
                  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
                    given, then the shipment report will include only metrics and shipments for the given shipment plan. If none
                    is given, then the shipment report will include all shipment plans.
                  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
                    which started after the provided date.
                  format: date-time
                  type: string
                startedBefore:
                  description: |
                    Include successfully completed shipments of each shipment plan into the shipment report generation
                    which started before the provided date.
                  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

            The shipment reports generation started successfully. Use the `shipmentReportId` for checking
            the status of the generation, and once it's generated, it can be used for fetching the metrics.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Shipment Reports
  /shipment-reports/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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
        shipment report.
      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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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
        `shipmentReportId` as a path parameter for fetching
        the summary of the shipment report.

        The summary contains general information about the locations, shipments, shipment plans,
        segments, and segment plans which were used in the generation of the shipment report. It also includes the time
        when the shipment report generation started, and when it ended.
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  completedAt:
                    description: |
                      When generation of the shipment report was completed.
                    format: date-time
                    type: string
                  createdAt:
                    description: |
                      When generation of the shipment report was started.
                    format: date-time
                    type: string
                  totalLocationCount:
                    description: |
                      Count of locations over all segment plans in the shipment report.
                    type: integer
                  totalSegmentPlanCount:
                    description: |
                      Count of segment plans in the shipments report.
                    type: integer
                  totalSegmentsCount:
                    description: |
                      Count of segments over all segment plans in the shipment report.
                    type: integer
                  totalShipmentPlanCount:
                    description: |
                      Count of shipment plans in the shipments report.
                    type: integer
                  totalShipmentsCount:
                    description: |
                      Count of shipments over all shipment plans in the shipment report.
                    type: integer
                required:
                  - totalShipmentPlanCount
                  - totalSegmentPlanCount
                  - totalShipmentsCount
                  - totalSegmentsCount
                  - totalLocationCount
                  - createdAt
                  - completedAt
                type: object
          description: |
            Success
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      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.

        Shipment report metrics can be requested only after the shipment
        report generation has been completed.
      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
                            the given metric.
                          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.
                          properties:
                            avg:
                              description: |
                                Average value taken over metric values.
                              type: number
                            val:
                              description: |
                                Value of a metric.
                              type: number
                          type: object
                        statisticsCount:
                          description: |
                            How many inputs were used to calculate the given metric.
                          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
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            User has sent too many requests in a given amount of time.
      security:
        - Bearer: []
      summary: Gets metrics of the shipment report
      tags:
        - Shipment Reports
    parameters:
      - description: |
          Metric for which results to include in the response.
        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
          `shipmentPlanPunctualityAtOrigin` it could be `avg:desc`.
          Default is ascending sort order.
        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.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion.
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content).

            All shipments were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Deletes all shipments
      tags:
        - Shipments
    get:
      description: |
        Gets all shipments of the project.
      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.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          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`
            Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          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.
            The following format can be used:
            'name:asc' sort by name in ascending order,
            'shipmentId:desc' sort by shipmentId in descending order.
            Allowed fields to sort by:
            shipmentId, name, status, startedAt, createdAt, endedAt, providedEtd,
            providedEta, calculatedEtd.
          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: 2020-05-27T11:40:01Z
                          name: Truck transport
                          origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                          segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                          startedAt: 2020-05-27T11:40:01Z
                          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: 2020-05-27T11:40:01Z
                            name: Truck transport
                            origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                            segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                            startedAt: 2020-05-27T11:40:01Z
                            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
                            location.
                          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.
                            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: 2020-05-27T11:40:01Z
                              name: Truck transport
                              origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                              segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                              startedAt: 2020-05-27T11:40:01Z
                              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
            returned items, `limit` indicates the requested maximum amount of records to be returned
            and `pageToken` is the next page token if available.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Gets all shipments
      tags:
        - Shipments
    parameters:
      - description: |
          ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Creates a new shipment. A shipment consists of segments each representing a part of the
        logistics journey. A segment spans from a location to another and each segment may be
        assigned a different tracking device.

        The segments of the shipment must form a continuous chain of locations, that is the origin of a
        segment must match the destination of a previous segment.
      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
                        location.
                      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.
                        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: 2020-10-23T11:40:01Z
                    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.

            The shipment has been successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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
        persist, but the references to the parent plans will be removed.

        Note that one needs to supply an HTTP header `x-confirm` with the value `true` to force the deletion.
        If the header is not provided, the request will fail.
      parameters:
        - description: |
            A safety measure that prevents one from accidentally deleting data.

            To confirm that all entries should be deleted, set the value to `true`.
          in: header
          name: x-confirm
          required: true
          schema:
            enum:
              - "true"
            type: string
      responses:
        "204":
          description: |
            Successful (no content).

            All shipment plans were successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      security:
        - Bearer: []
      summary: Deletes all shipment plans
      tags:
        - Shipments
    get:
      description: |
        Gets all shipment plans of the project.
      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.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          example: "*portugal*"
          in: query
          name: name
          required: false
          schema:
            type: string
        - description: |
            Return only shipment plans that have been instantiated from the specified `shipmentPlanId`
            Matching is case-insensitive.
            The following wildcards can be used:
            '*' matches any number of any characters,
            '?' matches any single character.
          in: query
          name: shipmentPlanId
          required: false
          schema:
            type: string
        - description: |
            Return only shipments that have been instantiated from the specified `locationId`
          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.
            Allowed fields to sort by: shipmentPlanId, name, createdAt
          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: 2020-05-27T11:40:01Z
                        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
                            location.
                          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.
                            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
            returned items, `limit` indicates the requested maximum amount of records to be returned
            and `pageToken` is the next page token if available.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        in: header
        name: X-Request-Id
        required: false
        schema:
          format: uuid
          type: string
      - in: query
        name: projectId
        required: false
        schema:
          description: |
            Project ID.
            Any HERE Tracking user must be a member of a Tracking project.
            The project ID can be implicitly resolved if the user calling the API is a member of a single project.
            If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
          maxLength: 50
          minLength: 1
          type: string
    post:
      description: |
        Creates a new shipment plan. A shipment plan is a structure that holds information about a
        recurring shipment. Like a shipment, a shipment plan also consists of segments each
        representing a part of the logistics journey. A segment spans from a location to another and
        each segment may be assigned a different tracking device. The segments of the shipment must form a
        continuous chain of locations, that is the origin of a segment must match the destination of a
        previous segment.

        In addition to shipments, a predefined duration can be assigned to each segment in the plan.
        This information will be used to calculate the Estimated Time of Departure (ETD) and
        Estimated Time of Arrival (ETA) when instantiating a shipment from a shipment plan.
      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
                        location.
                      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.
                        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.

            The shipment plan has been successfully created.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Creates a shipment plan
      tags:
        - Shipments
  "/shipments/v4/plans/{shipmentPlanId}":
    delete:
      description: |
        Deletes a shipment plan identified by the `shipmentPlanId`.

        Any shipment instantiated from the plan will persist, but the
        reference to the parent plan will be removed.
      responses:
        "204":
          description: |
            Successful (no content).

            The shipment plan was successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Deletes a shipment plan
      tags:
        - Shipments
    get:
      description: |
        Gets details of a shipment plan identified by the `shipmentPlanId`.
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties: false
                example:
                  autoStart: true
                  createdAt: 2020-05-27T11:40:01Z
                  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
                      location.
                    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.
                      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.

            The shipment plan information was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
        This is a partial update, meaning that only the provided
        fields will be updated. If `ruleIds` field is specified, it will replace
        the existing rules currently associated with the shipment plan.

        ***Note***:
        `segments` cannot be edited through this API. Changing the order of the segments in a plan
        would cause shipments created from earlier versions of the plan diverge from a shipment
        instantiated from the new plan with different segment structure. Individual segments can
        still be updated via the `shipments/v4/plans/{shipmentPlanId}/{segmentPlanId}` endpoint.
      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
                    location.
                  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.
                    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)

            The shipment plan information was updated
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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.

            The segment plan information was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.

        This is a partial update, meaning that only the provided
        fields will be updated.

        ***Note***: Updating `origin` and `destination` is prohibited to prevent breaking the chain
        of locations.
      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)

            The segment plan information was updated
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Updates a segment plan details
      tags:
        - Shipments
  /shipments/v4/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Shipments
  "/shipments/v4/{shipmentId}":
    delete:
      description: |
        Deletes a shipment identified by the `shipmentId`.
        All the data related to the shipment (such as events, associations) will be removed.
      responses:
        "204":
          description: |
            Successful (no content).

            The shipment was successfully deleted.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Deletes a shipment
      tags:
        - Shipments
    get:
      description: |
        Gets details of a specific shipment identified by the `shipmentId`.
      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: 2020-05-27T11:40:01Z
                      name: Truck transport
                      origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                      segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                      startedAt: 2020-05-27T11:40:01Z
                      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
                      location.
                    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.
                      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: 2020-05-27T11:40:01Z
                        name: Truck transport
                        origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                        segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                        startedAt: 2020-05-27T11:40:01Z
                        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.

            The shipment information was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
        This is a partial update, meaning that only the provided fields will be updated,
        except when updating segments, the whole segments will be replaced fully.

        Changing the status of the shipment affects the statuses of the segments. The following
        status changes are allowed:
        * `pending` → `ongoing`
          * changes the status of the first segment to `ongoing`
        * `pending` → `cancelled`
          * changes the status of all segments to `cancelled`
        * `ongoing` → `cancelled`
          * cancels the current `ongoing` segment and all the succeeding segments
        * `ongoing` → `completed`
          * completes the current `ongoing` segment and cancels all the succeeding segments

        ***Note***:
        `segments` and `autoStart` can be updated via this API call only if the shipment is in
        `pending` state.
      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
                    location.
                  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.
                    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)

            The shipment information was updated
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      security:
        - Bearer: []
      summary: Updates a shipment details
      tags:
        - Shipments
  "/shipments/v4/{shipmentId}/{segmentId}":
    get:
      description: |
        Gets details of a segment identified by the `segmentId`.
      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: 2020-05-27T11:40:01Z
                  name: Truck transport
                  origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                  segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                  startedAt: 2020-05-27T11:40:01Z
                  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.

            The segment information was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.

        This is a partial update, meaning that only the provided fields
        will be updated.

        Changing the status of a segment affects the statuses of other segments in the shipment. The
        following status changes are allowed:
        * `pending` → `ongoing`
          * changes previous `pending` segments to `cancelled`
          * changes previous `ongoing` segment to `completed` (only for the immediate predecessor of
            this segment)
          * changes previous `ongoing` segment to `cancelled` (for segments that are not immediate
            predecessors of this segment)
          * previous segments in `cancelled` or `completed` states are not affected
        * `pending` || `ongoing` → `cancelled`
          * no changes for other segments
        * `ongoing` → `completed`
          * next segment with status `pending` is changed to `ongoing`

        ***Note***:
        `trackingId` can be updated through this API call only if the segment is in `pending` state.
      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)

            The segment information was updated
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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`.
      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.

            The segment information was returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Traces
  /traces/v2/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Traces
  "/traces/v2/{trackingId}":
    delete:
      description: |
        Deletes all the device `trackingId` traces.

        This will also trigger deletion of the entire event history of the device.
      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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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. 
        The range is defined with `before` and `after` parameters.
        The returned traces are sorted in descending order based on their timestamps.

        NOTE:
        By default, the `after` parameter value is 0, and the `before` parameter is set to the current
        system time.
        Always make sure to specify `before` and `after` parameters explicitly, as otherwise it may take 
        a very long time for the API call to complete.

        If the `trackingId` is substituted with a valid `shipmentId`, the response
        contains a composition of traces of each shipment segment. 
        Traces are only fetched for those segments that are either in `ongoing` or `completed` state.

        The `outliers` parameter can be used to select only traces that have
        been marked as outliers (if the parameter value is `true`), or only traces
        that have not been marked as outliers (if the parameter value is `false`).
        If the `outliers` parameter is not present, all the traces will be returned.

        The `count` and `pageToken` parameters are used for pagination.
      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.
            The accepted range is from 1 to the current time.
          in: query
          name: before
          required: false
          schema:
            minimum: 1
            type: number
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 0 to the current time.
          in: query
          name: after
          required: false
          schema:
            minimum: 0
            type: number
        - description: |
            Flag specifying if only outliers (`true`) or only nonoutliers (`false`)
            are to be returned. If the parameter is not present both nonoutlier
            and outlier traces are returned.
          in: query
          name: outliers
          required: false
          schema:
            type: boolean
        - description: |
            Tracker mode.
          in: query
          name: mode
          required: false
          schema:
            description: |
              Tracker mode status of the device. When a tracker is in a normal mode, it
              can send telemetry and, for example, use its GNSS receiver if it has one.
              A tracker switches into flight mode once it detects that it's in an
              airplane, and leaves that mode once airplane lands. Transport mode has to
              be triggered by the user, and it's used, for example, during shipping from
              continent to another. Sleep mode is used when a tracker is stored in
              a warehouse, and it's triggered by entering or leaving some defined
              geofence.
            enum:
              - unknown
              - normal
              - flight
              - transport
              - sleep
            type: string
        - description: |
            Flag telling if smoothed traces (true) or non-smoothed (false)
            traces should get returned. By default the traces are not smoothed.

            The smoothing will have an effect on to the stationary trace points only.
          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.
                                The maximum size is 1000B.
                              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.

                                This describes when the measurements were processed by the backend.
                              maximum: 4102448400000
                              minimum: 2
                              type: integer
                            system:
                              description: |
                                Contains device-reported sensor data and device configuration settings.
                                `stateVersion` property contains the version of the last
                                known `desired` state seen by the device.
                              properties:
                                client:
                                  description: |
                                    Information about the client device.
                                  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
                                        unit g (9.8 m/s^2). If more than one accelerometer is available,
                                        each element in the list will represent individual accelerometer.
                                        Each value represents a single "+/-" range.
                                        For example, value 2 means that sensor is capable to measure
                                        acceleration within the range of [-2 g, +2 g].
                                      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
                                        than the combined positioning accuracy + 100 meters.
                                      type: boolean
                                    outlier:
                                      description: |
                                        Indicates that HERE Tracking detected position to be a possible outlier.
                                      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.
                                  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
                                    can send telemetry and, for example, use its GNSS receiver if it has one.
                                    A tracker switches into flight mode once it detects that it's in an
                                    airplane, and leaves that mode once airplane lands. Transport mode has to
                                    be triggered by the user, and it's used, for example, during shipping from
                                    continent to another. Sleep mode is used when a tracker is stored in
                                    a warehouse, and it's triggered by entering or leaving some defined
                                    geofence.
                                  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".
                                  example: "+491234567890"
                                  pattern: ^\+[1-9]\d{1,14}$
                                  type: string
                                reportedSensorData:
                                  description: |
                                    The last known device sensor data reported by the device.
                                  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.
                                  minimum: 0
                                  type: integer
                              type: object
                            timestamp:
                              description: |
                                Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                                Specifies the time the device telemetry measurements were taken.
                              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.
                              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
                  returned items and `pageToken` is the next page token if available.

                  If no traces are found, an object with an empty data array is returned.

                  Traces are sorted in descending order based on their timestamps.
                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.

            The response body contains an array of traces within the
            given time range (`after` <= timestamp <= `before`).

            Traces are sorted in descending order based on their timestamps.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      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.

          Must be a valid UUIDv4.
        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.
        Define the range with `before` and `after` parameters.
        The returned transitions are listed in descending order based on their timestamps.

        Note:
        ---
        By default, the `after` parameter value is 0, and the `before` parameter is set to the current
        system time. 
        Always make sure to specify `before` and `after` parameters explicitly, as otherwise it may 
        take a very long time for an API call to complete.

        The `count` and `pageToken` parameters are used for pagination.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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.
            The accepted range is from 1 to the current time.
          in: query
          name: before
          required: false
          schema:
            minimum: 1
            type: number
        - description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.
            The accepted range is from 0 to the current time.
          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                                  |
                            | ------------------------ | ---------------------------------------- |
                            | PING_OUTSIDE_FENCE       | The device has transitioned outside the geofence. |
                            | PING_IN_FENCE            | The device has transitioned inside the geofence. |
                          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.
                              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
                  returned items and `pageToken` is the next page token if available.

                  If no transitions are found, an object with an empty data array is
                  returned.

                  Transitions are sorted in descending order based on their timestamps.
                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

            The response body contains an array of transitions, `count` is the number of
            returned items and `pageToken` is the next page token if available.

            If no transitions are found, an object with an empty data array is
            returned.

            Transitions are sorted in descending order based on their timestamps.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Transitions
  /transitions/v2/version:
    get:
      deprecated: true
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.
              Any HERE Tracking user must be a member of a Tracking project.
              The project ID can be implicitly resolved if the user calling the API is a member of a single project.
              If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
            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.
                              properties:
                                desired:
                                  description: |
                                    The desired shadow of the device.
                                  properties:
                                    payload:
                                      description: |
                                        A free format JSON object.
                                        The maximum size is 1000B.
                                      type: object
                                    system:
                                      description: |
                                        Contains device configuration settings.
                                      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.
                                            In order to disable tracking, one must at least provide the begin time of the disabling
                                            period and define either position or sensor properties one wants to disable. One can also
                                            disable both position and sensors at the same time. By default tracking is enabled.
                                          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.
                                              items:
                                                properties:
                                                  begin:
                                                    description: |
                                                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                                      Begin time of the tracking disabling period.

                                                      Begin must be smaller than end. Begin must be greater or equal to current time.
                                                      Begin can be set without end. If there exists already end time which is earlier
                                                      than given new begin time, the existing end time will be deleted.
                                                    maximum: 4102448400000
                                                    minimum: 2
                                                    type: integer
                                                  end:
                                                    description: |
                                                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                                      End time of the tracking disabling period.

                                                      End must be greater than begin. End must be greater or equal to current time.
                                                      End can be set without begin if begin is already set.
                                                    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
                                                  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.
                                                    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.
                                                  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.
                                                  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.
                                                    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.
                                                  enum:
                                                    - ""
                                                  title: re-enable
                                                  type: string
                                          type: object
                                        lastModifiedGeofenceTimestamp:
                                          description: |
                                            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                                            The time of the last update to geofences that device is associated
                                            with. This value is zero when device hasn't yet been associated with
                                            any geofence. This is set by HERE Tracking when any geofences
                                            associated with the device is modified or removed. Also adding and
                                            removing geofence associations update this value.
                                          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.
                                          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.
                                          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.

                                        The time of the last update to the desired shadow.
                                      maximum: 4102448400000
                                      minimum: 2
                                      type: integer
                                  type: object
                                reported:
                                  description: |
                                    The `reported` shadow contains the most recent position, sensor readings and settings that the
                                    device has sent. The reported shadow may also contain additional properties generated by HERE 
                                    Tracking based on the device-ingested telemetry.
                                    Such properties are stored in `system.computed` property of the shadow.

                                    In case the most recent telemetry did not contain all the possible
                                    fields, the last known information will remain in the shadow. This means that one can
                                    see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                                    even if the device did not send that information in the latest telemetry.
                                  properties:
                                    payload:
                                      description: |
                                        A free format JSON object.
                                        The maximum size is 1000B.
                                      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.
                                        `stateVersion` property contains the version of the last
                                        known `desired` state seen by the device.
                                      properties:
                                        client:
                                          description: |
                                            Information about the client device.
                                          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
                                                unit g (9.8 m/s^2). If more than one accelerometer is available,
                                                each element in the list will represent individual accelerometer.
                                                Each value represents a single "+/-" range.
                                                For example, value 2 means that sensor is capable to measure
                                                acceleration within the range of [-2 g, +2 g].
                                              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.
                                                Asset is considered moving if the positions of two consecutive trace points differ more
                                                than the combined positioning accuracy + 100 meters.
                                              type: integer
                                            moving:
                                              description: |
                                                Asset is considered moving if the positions of two consecutive trace points differ more
                                                than the combined positioning accuracy + 100 meters.
                                              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.
                                              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.
                                          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
                                            can send telemetry and, for example, use its GNSS receiver if it has one.
                                            A tracker switches into flight mode once it detects that it's in an
                                            airplane, and leaves that mode once airplane lands. Transport mode has to
                                            be triggered by the user, and it's used, for example, during shipping from
                                            continent to another. Sleep mode is used when a tracker is stored in
                                            a warehouse, and it's triggered by entering or leaving some defined
                                            geofence.
                                          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".
                                          example: "+491234567890"
                                          pattern: ^\+[1-9]\d{1,14}$
                                          type: string
                                        reportedSensorData:
                                          description: |
                                            The last known device sensor data reported by the device.
                                          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.
                                          minimum: 0
                                          type: integer
                                      type: object
                                    timestamp:
                                      description: |
                                        Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                                        The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                                        the timestamp of all the reported values in the reported shadow since the shadow retains
                                        values from previous ingestions if the latest telemetry did not conatain them.
                                      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

            The search was performed and the results were returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.

          Must be a valid UUIDv4.
        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.
        The user email must be registered with a valid [HERE Account](https://account.here.com).
        Optionally user can provide requested realm ID.
      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.
                      For example 86400 means the token will expire in 24 hours from the time the response was generated.
                    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

            The authentication was successful and a valid access token was returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        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.
                      For example 86400 means the token will expire in 24 hours from the time the response was generated.
                    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

            The authentication was successful and a valid access token was returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      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.

          Must be a valid UUIDv4.
        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.
      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.
                      For example 86400 means the token will expire in 24 hours from the time the response was generated.
                    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

            The exchange was successful and a valid scoped access token was returned.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
      summary: Gets a project-scoped user access token
      tags:
        - Users
  /users/v2/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Users
  /v2/:
    post:
      description: |
        Devices can use this end point to ingest data into HERE Tracking,
        in the same way as via the `/v3` endpoint.

        A device uses its access token obtained via the the `/v2/token` endpoint
        to send telemetry – GPS position, sensor readings, WLAN or Bluetooth scans - to HERE Tracking.

        By default the request is synchronous and the response will be
        the device `desired` shadow. If the request is set
        to be asynchronous, the response will be empty.

        The device position gets resolved based on the `position` and `scan` objects
        provided in the request body (see the objects definitions for details).
        If only `position` is provided, it will be used as the device position.
        If only `scan` is provided, the position will be resolved asynchronously
        via the HERE Positioning API after returning a response.
        If both are provided, `scan` is resolved to a position via the HERE Positioning API,
        and the better of the two positions (provided vs. resolved) will be selected.
        If neither `position` nor `scan` is provided, or if the HERE Positioning API is not able to
        resolve the position, the device position will be left empty.

        The `reported` shadow will be updated with the device latest position information,
        sensor readings and settings ingested by the device.
        The reported shadow may also contain additional properties generated by HERE
        Tracking based on the device-ingested telemetry.
        Such properties are stored in the `system.computed` property of the shadow.
        The device shadow can be queried via the `shadows/v2/{trackingId}` endpoint.

        The data ingested by the device will be available as a device trace via the `traces/v2/{trackingId}` endpoint.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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.
                      The maximum size is 1000B.
                    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.
                    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
                          contributing the scan data along with a GPS position.
                        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.
                      `stateVersion` property contains the version of the last
                      known `desired` state seen by the device.
                    properties:
                      client:
                        description: |
                          Information about the client device.
                        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
                              unit g (9.8 m/s^2). If more than one accelerometer is available,
                              each element in the list will represent individual accelerometer.
                              Each value represents a single "+/-" range.
                              For example, value 2 means that sensor is capable to measure
                              acceleration within the range of [-2 g, +2 g].
                            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.
                        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
                          can send telemetry and, for example, use its GNSS receiver if it has one.
                          A tracker switches into flight mode once it detects that it's in an
                          airplane, and leaves that mode once airplane lands. Transport mode has to
                          be triggered by the user, and it's used, for example, during shipping from
                          continent to another. Sleep mode is used when a tracker is stored in
                          a warehouse, and it's triggered by entering or leaving some defined
                          geofence.
                        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".
                        example: "+491234567890"
                        pattern: ^\+[1-9]\d{1,14}$
                        type: string
                      reportedSensorData:
                        description: |
                          The last known device sensor data reported by the device.
                        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.
                        minimum: 0
                        type: integer
                    type: object
                  timestamp:
                    description: |
                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                      Specifies the time the device telemetry measurements were taken.
                    maximum: 4102448400000
                    minimum: 2
                    type: integer
                required:
                  - timestamp
                type: object
              type: array
        description: |
          A device telemetry data.

          The timestamp specifies the time in milliseconds at which the device telemetry measurements were taken.
          This must be within 10 seconds of the timestamp returned by the `/v2/timestamp` endpoint.

          Example of a GSM telemetry
          ---

          ```
          [{
              "scan": {
                  "gsm": [{
                      "mcc": 262,
                      "mnc": 1,
                      "lac": 5126,
                      "cid": 16504,
                      "nmr": [
                          { "bsic": 6, "bcch": 82 },
                          { "bsic": 7, "bcch": 85 },
                          { "bsic": 12, "bcch": 93 },
                          { "bsic": 13, "bcch": 88 },
                          { "bsic": 19, "bcch": 88 }
                      ]
                  }]
              },
              "payload": {
                  "sensor": "data"
              },
              "timestamp": 1515169948976
          }]
          ```

          Example of a WLAN telemetry
          ---

          ```
          [{
              "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 }
                  ]
              },
              "payload": {
                  "sensor": "data"
              },
              "timestamp": 1515169948976
          }]
          ```
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  The desired shadow of the device.
                properties:
                  payload:
                    description: |
                      A free format JSON object.
                      The maximum size is 1000B.
                    type: object
                  system:
                    description: |
                      Contains device configuration settings.
                    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.
                          In order to disable tracking, one must at least provide the begin time of the disabling
                          period and define either position or sensor properties one wants to disable. One can also
                          disable both position and sensors at the same time. By default tracking is enabled.
                        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.
                            items:
                              properties:
                                begin:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                    Begin time of the tracking disabling period.

                                    Begin must be smaller than end. Begin must be greater or equal to current time.
                                    Begin can be set without end. If there exists already end time which is earlier
                                    than given new begin time, the existing end time will be deleted.
                                  maximum: 4102448400000
                                  minimum: 2
                                  type: integer
                                end:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                    End time of the tracking disabling period.

                                    End must be greater than begin. End must be greater or equal to current time.
                                    End can be set without begin if begin is already set.
                                  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
                                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.
                                  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.
                                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.
                                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.
                                  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.
                                enum:
                                  - ""
                                title: re-enable
                                type: string
                        type: object
                      lastModifiedGeofenceTimestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          The time of the last update to geofences that device is associated
                          with. This value is zero when device hasn't yet been associated with
                          any geofence. This is set by HERE Tracking when any geofences
                          associated with the device is modified or removed. Also adding and
                          removing geofence associations update this value.
                        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.
                        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.
                        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.

                      The time of the last update to the desired shadow.
                    maximum: 4102448400000
                    minimum: 2
                    type: integer
                type: object
          description: |
            Successful

            The device data was ingested and processed successfully and the `desired` shadow
            was returned.

            This response is returned if the `async` query parameter was not set to `true`.
        "204":
          description: |
            Successful (no content).

            The device data was ingested successfully and the response is empty.
            This response is returned if the `async` query parameter was set to `true`.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The request size exceeds the maximum size limit for payloads.
        "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.

            When 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:

            | header                    | description                               |
            | ------------------------  | ----------------------------------------- |
            | X-RateLimit-Remaining     | The remaining number of requests          |
            | X-RateLimit-Limit         | The allowed number of requests for the `appId` plan |
            | Retry-After               | The number of seconds the device needs to wait before retrying the data ingestion |
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Ingestion
  /v2/timestamp:
    get:
      description: |
        Returns the current server time in seconds since the UNIX epoch.
        The server time is used to check the validity of the OAuth 1.0 header of a device data ingestion request.
        Devices must synchronise with the server time to avoid a clock skew.

        > Note that in the data ingestion request the timestamp is specified in milliseconds.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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

            The server timestamp was successfully returned
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
      summary: Gets the current timestamp
      tags:
        - Ingestion
  /v2/token:
    post:
      description: |
        Authenticates a device to HERE Tracking and requests a device access token.

        A device must provide a valid device access token when it sends telemetry to HERE Tracking.
        Tokens can be obtained upon a successful device authentication.

        The device token requests must be signed. 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.

        Tokens can be requested only by claimed devices.
        A claimed device license, that is ```deviceId``` and ```deviceSecret``` credential pair, is used for creating a signed token request.

        > See the Authentication section for details on how to generate a signed token request.
        > A new signature must be created for each device access token request.
        > Signatures can only be used once.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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*

            When the request timestamp is skewed by more than 10 second from the
            server time, the `x-here-timestamp` header with the current server
            timestamp is added to the response.

            *Incorrect Signature*

            If the OAuth signature is incorrect, the response code will be 401,
            and *no* `x-here-timestamp` header will be added.
          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

            The account does not have the correct privileges
        "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

            If the device ID is valid but the device has not yet been claimed by an owner, an error response will be returned.
      security:
        - signedRequest: []
      summary: Requests a token for a registered device
      tags:
        - Ingestion
  /v2/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service version
      tags:
        - Ingestion
  /v3/:
    post:
      description: |
        Devices can use this end point to ingest data into HERE Tracking.

        A device uses its access token obtained via the the `/v2/token` endpoint
        to send telemetry – GPS position, sensor readings, WLAN or Bluetooth scans - to HERE Tracking.

        Also device owners use this end point to ingest data on behalf of a device.

        The device can be either a real or a virtual device.
        A real device is identified by a `trackingId` assigned to it when the device was claimed.
        A virtual device is identified by an external device ID and the owner's project `appId`.

        In case the ingestion is done by a device owner, the owner should first authenticate himself with
        HERE Tracking and obtain a user access token via the `/users/v2/login` endpoint.
        The user access token will then be used in this API call.

        By default the request is synchronous and the response will be
        the device `desired` shadow. If the request is set
        to be asynchronous, the response will be empty.

        The device position gets resolved based on the `position` and `scan` objects
        provided in the request body (see the objects definitions for details).
        If only `position` is provided, it will be used as the device position.
        If only `scan` is provided, the position will be resolved asynchronously
        via the HERE Positioning API after returning a response.
        If both are provided, `scan` is resolved to a position via the HERE Positioning API,
        and the better of the two positions (provided vs. resolved) will be selected.
        If neither `position` nor `scan` is provided, or if the HERE Positioning API is not able to
        resolve the position, the device position will be left empty.

        The `reported` shadow will be updated with the device latest position information,
        sensor readings and settings ingested by the device.
        The reported shadow may also contain additional properties generated by HERE
        Tracking based on the device-ingested telemetry.
        Such properties are stored in the `system.computed` property of the shadow.
        The device shadow can be queried via the `shadows/v2/{trackingId}` endpoint.

        The data ingested by the device will be available as a device trace via the `traces/v2/{trackingId}` endpoint.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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.
                          The maximum size is 1000B.
                        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.
                        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
                              contributing the scan data along with a GPS position.
                            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.
                          `stateVersion` property contains the version of the last
                          known `desired` state seen by the device.
                        properties:
                          client:
                            description: |
                              Information about the client device.
                            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
                                  unit g (9.8 m/s^2). If more than one accelerometer is available,
                                  each element in the list will represent individual accelerometer.
                                  Each value represents a single "+/-" range.
                                  For example, value 2 means that sensor is capable to measure
                                  acceleration within the range of [-2 g, +2 g].
                                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.
                            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
                              can send telemetry and, for example, use its GNSS receiver if it has one.
                              A tracker switches into flight mode once it detects that it's in an
                              airplane, and leaves that mode once airplane lands. Transport mode has to
                              be triggered by the user, and it's used, for example, during shipping from
                              continent to another. Sleep mode is used when a tracker is stored in
                              a warehouse, and it's triggered by entering or leaving some defined
                              geofence.
                            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".
                            example: "+491234567890"
                            pattern: ^\+[1-9]\d{1,14}$
                            type: string
                          reportedSensorData:
                            description: |
                              The last known device sensor data reported by the device.
                            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.
                            minimum: 0
                            type: integer
                        type: object
                      timestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          Specifies the time the device telemetry measurements were taken.
                        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.

          The timestamp specifies the time in milliseconds at which the device telemetry measurements were taken.
          This must be within 10 seconds of the timestamp returned by the `/v2/timestamp` endpoint.

          Example of a GSM telemetry
          ---

          ```
          [{
              "scan": {
                  "gsm": [{
                      "mcc": 262,
                      "mnc": 1,
                      "lac": 5126,
                      "cid": 16504,
                      "nmr": [
                          { "bsic": 6, "bcch": 82 },
                          { "bsic": 7, "bcch": 85 },
                          { "bsic": 12, "bcch": 93 },
                          { "bsic": 13, "bcch": 88 },
                          { "bsic": 19, "bcch": 88 }
                      ]
                  }]
              },
              "payload": {
                  "sensor": "data"
              },
              "timestamp": 1515169948976
          }]
          ```

          Example of a WLAN telemetry
          ---

          ```
          [{
              "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 }
                  ]
              },
              "payload": {
                  "sensor": "data"
              },
              "timestamp": 1515169948976
          }]
          ```
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  The desired shadow of the device.
                properties:
                  payload:
                    description: |
                      A free format JSON object.
                      The maximum size is 1000B.
                    type: object
                  system:
                    description: |
                      Contains device configuration settings.
                    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.
                          In order to disable tracking, one must at least provide the begin time of the disabling
                          period and define either position or sensor properties one wants to disable. One can also
                          disable both position and sensors at the same time. By default tracking is enabled.
                        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.
                            items:
                              properties:
                                begin:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                    Begin time of the tracking disabling period.

                                    Begin must be smaller than end. Begin must be greater or equal to current time.
                                    Begin can be set without end. If there exists already end time which is earlier
                                    than given new begin time, the existing end time will be deleted.
                                  maximum: 4102448400000
                                  minimum: 2
                                  type: integer
                                end:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                    End time of the tracking disabling period.

                                    End must be greater than begin. End must be greater or equal to current time.
                                    End can be set without begin if begin is already set.
                                  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
                                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.
                                  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.
                                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.
                                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.
                                  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.
                                enum:
                                  - ""
                                title: re-enable
                                type: string
                        type: object
                      lastModifiedGeofenceTimestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          The time of the last update to geofences that device is associated
                          with. This value is zero when device hasn't yet been associated with
                          any geofence. This is set by HERE Tracking when any geofences
                          associated with the device is modified or removed. Also adding and
                          removing geofence associations update this value.
                        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.
                        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.
                        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.

                      The time of the last update to the desired shadow.
                    maximum: 4102448400000
                    minimum: 2
                    type: integer
                type: object
          description: |
            Successful

            The device data was ingested and processed successfully and the `desired` shadow
            was returned.

            This response is returned if the `async` query parameter was not set to `true`.
        "204":
          description: |
            Successful (no content).

            The device data was ingested successfully and the response is empty.
            This response is returned if the `async` query parameter was set to `true`.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The request size exceeds the maximum size limit for payloads.
        "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.

            When 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:

            | header                    | description                               |
            | ------------------------  | ----------------------------------------- |
            | X-RateLimit-Remaining     | The remaining number of requests          |
            | X-RateLimit-Limit         | The allowed number of requests for the `appId` plan |
            | Retry-After               | The number of seconds the device needs to wait before retrying the data ingestion |
      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.

        A single request can contain data for multiple devices.
        The devices can be either real or virtual.
        A real device is identified by a `trackingId` assigned to it when the device was claimed.
        A virtual device is identified by an external device ID and the owner's project `appId`.

        Prior to making the request, the device owner should first authenticate himself with
        HERE Tracking and obtain a user access token.
        The user access token will then be used in this API call.

        For more information on the device position resolution, and the device shadow and trace updates,
        see the `/v3` endpoint description.
      parameters:
        - description: |
            ID used for correlating requests within HERE Tracking. Used for logging and error reporting.

            Must be a valid UUIDv4.
          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.
                              The maximum size is 1000B.
                            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.
                            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
                                  contributing the scan data along with a GPS position.
                                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.
                              `stateVersion` property contains the version of the last
                              known `desired` state seen by the device.
                            properties:
                              client:
                                description: |
                                  Information about the client device.
                                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
                                      unit g (9.8 m/s^2). If more than one accelerometer is available,
                                      each element in the list will represent individual accelerometer.
                                      Each value represents a single "+/-" range.
                                      For example, value 2 means that sensor is capable to measure
                                      acceleration within the range of [-2 g, +2 g].
                                    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.
                                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
                                  can send telemetry and, for example, use its GNSS receiver if it has one.
                                  A tracker switches into flight mode once it detects that it's in an
                                  airplane, and leaves that mode once airplane lands. Transport mode has to
                                  be triggered by the user, and it's used, for example, during shipping from
                                  continent to another. Sleep mode is used when a tracker is stored in
                                  a warehouse, and it's triggered by entering or leaving some defined
                                  geofence.
                                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".
                                example: "+491234567890"
                                pattern: ^\+[1-9]\d{1,14}$
                                type: string
                              reportedSensorData:
                                description: |
                                  The last known device sensor data reported by the device.
                                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.
                                minimum: 0
                                type: integer
                            type: object
                          timestamp:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                              Specifies the time the device telemetry measurements were taken.
                            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)

            The device data was ingested successfully.
        "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

            The request object is in an incorrect format or has values that are invalid or out of range.

            If available, further error details are provided in the response body.
        "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

            The request did not provide correct authentication details
        "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

            The account does not have the correct privileges
        "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

            The specified resource was not found
        "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

            The request size exceeds the maximum size limit for payloads.
        "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.

            When 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:

            | header                    | description                               |
            | ------------------------  | ----------------------------------------- |
            | X-RateLimit-Remaining     | The remaining number of requests          |
            | X-RateLimit-Limit         | The allowed number of requests for the `appId` plan |
            | Retry-After               | The number of seconds the device needs to wait before retrying the data ingestion |
      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

            The service is performing as expected
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      security: []
      summary: Gets service health
      tags:
        - Ingestion
  /v3/version:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                description: |
                  OK
                  Service returns its current version number
                  schema:
                      type: object
                      properties:
                          "service-name":
                              type: string
                              description: Version of service
                      example:
                          servicename: "1.0.0"
          description: |
            Success
        "500":
          description: |
            Service unavailable

            The service is not performing as expected
      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.
                  Area based mode can be set to true only if device has maximum of 3 associated geofences.
                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
                  selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                  * `Phone`
                  * `Heavy Machinery`
                  * `Tracker`
                  * `Airport / Air Cargo`
                  * `Warehouse`
                  * `Returnable / Reusable`
                  * `Generic`
                  * `Hospital`
                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.
                  Area based mode can be set to true only if device has maximum of 3 associated geofences.
                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
                  selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                  * `Phone`
                  * `Heavy Machinery`
                  * `Tracker`
                  * `Airport / Air Cargo`
                  * `Warehouse`
                  * `Returnable / Reusable`
                  * `Generic`
                  * `Hospital`
                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.
                  Area based mode can be set to true only if device has maximum of 3 associated geofences.
                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
                  selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                  * `Phone`
                  * `Heavy Machinery`
                  * `Tracker`
                  * `Airport / Air Cargo`
                  * `Warehouse`
                  * `Returnable / Reusable`
                  * `Generic`
                  * `Hospital`
                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.
                  Area based mode can be set to true only if device has maximum of 3 associated geofences.
                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
                  selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

                  * `Phone`
                  * `Heavy Machinery`
                  * `Tracker`
                  * `Airport / Air Cargo`
                  * `Warehouse`
                  * `Returnable / Reusable`
                  * `Generic`
                  * `Hospital`
                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.
            Area based mode can be set to true only if device has maximum of 3 associated geofences.
          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
            selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

            * `Phone`
            * `Heavy Machinery`
            * `Tracker`
            * `Airport / Air Cargo`
            * `Warehouse`
            * `Returnable / Reusable`
            * `Generic`
            * `Hospital`
          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.
            Area based mode can be set to true only if device has maximum of 3 associated geofences.
          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
            selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

            * `Phone`
            * `Heavy Machinery`
            * `Tracker`
            * `Airport / Air Cargo`
            * `Warehouse`
            * `Returnable / Reusable`
            * `Generic`
            * `Hospital`
          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.
            Area based mode can be set to true only if device has maximum of 3 associated geofences.
          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
            selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

            * `Phone`
            * `Heavy Machinery`
            * `Tracker`
            * `Airport / Air Cargo`
            * `Warehouse`
            * `Returnable / Reusable`
            * `Generic`
            * `Hospital`
          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.
            Area based mode can be set to true only if device has maximum of 3 associated geofences.
          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
            selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

            * `Phone`
            * `Heavy Machinery`
            * `Tracker`
            * `Airport / Air Cargo`
            * `Warehouse`
            * `Returnable / Reusable`
            * `Generic`
            * `Hospital`
          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.
        Area based mode can be set to true only if device has maximum of 3 associated geofences.
      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.
            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
        location.
      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.
                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.
            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.
            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
        (oldRules) from and associate (newRules) to the devices identified
        in trackingIds array.
      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.
                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.
                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
        (oldRules) from and associate (newRules) to the shipments identified
        in shipmentIds array.
      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.
                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.
                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.
              type: number
            TRUE_TO_FALSE:
              description: |
                Number of devices currently in this event state.
              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.
              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.
          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.
                Any HERE Tracking user must be a member of a Tracking project.
                The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
              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
                will not execute periodically.
              type: boolean
            externalCloudInfo:
              description: |
                An external cloud-specific object that the driver will use to login to the
                external cloud. The structure of this object varies per driver
                implementation.
                It is recommended to have dedicated credentials for logging in to
                the external cloud in order not to violate possible concurrent users
                policies of the external cloud.
                In case of the HERE Tracking loopback driver, the maximum
                allowed concurrent user account tokens is 3 per account,
                therefore it is recommended to create a separate HERE account
                and grant it the required privilege to update the connector's
                project, and use that account in externalCloudInfo.
              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
                between the connector's external cloud and HERE Tracking project.
                The maximum and at the same time default value for callback-type connectors is 900 seconds.
                The default value for other type of connectors is 3600 seconds and there is no maximum value set.
              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.
              It also contains an error object if the device failed provisioning.
            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.
              "provisioning": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.
              "provisioned": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.
              "failed": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.
            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
            will not execute periodically.
          type: boolean
        externalCloudInfo:
          description: |
            An external cloud-specific object that the driver will use to login to the
            external cloud. The structure of this object varies per driver
            implementation.
            It is recommended to have dedicated credentials for logging in to
            the external cloud in order not to violate possible concurrent users
            policies of the external cloud.
            In case of the HERE Tracking loopback driver, the maximum
            allowed concurrent user account tokens is 3 per account,
            therefore it is recommended to create a separate HERE account
            and grant it the required privilege to update the connector's
            project, and use that account in externalCloudInfo.
          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
            between the connector's external cloud and HERE Tracking project.
            The maximum and at the same time default value for callback-type connectors is 900 seconds.
            The default value for other type of connectors is 3600 seconds and there is no maximum value set.
          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
                location.
              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.
                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: 2020-10-23T11:40:01Z
            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
                location.
              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.
                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
            which ended after the provided date.
          format: date-time
          type: string
        endedBefore:
          description: |
            Include successfully completed shipments of each shipment plan into the shipment report generation
            which ended before the provided date.
          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
            given, then the shipment report will include only metrics and shipments for the given shipment plan. If none
            is given, then the shipment report will include all shipment plans.
          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
            which started after the provided date.
          format: date-time
          type: string
        startedBefore:
          description: |
            Include successfully completed shipments of each shipment plan into the shipment report generation
            which started before the provided date.
          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
      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`
                  to true in case you want to use the already existing deviceId and deviceSecret of the device
                  to claim the device in this or other project in the future.
                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`
                  to true in case you want to use the already existing deviceId and deviceSecret of the device
                  to claim the device in this or other project in the future.
                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
                  will remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c
                  device, i.e. when `externalDeviceId` and `connectorId` are provided.
                type: boolean
              unclaimOnly:
                default: false
                description: |
                  If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`
                  to true in case you want to use the already existing deviceId and deviceSecret of the device
                  to claim the device in this or other project in the future.
                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
            will remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c
            device, i.e. when `externalDeviceId` and `connectorId` are provided.
          type: boolean
        unclaimOnly:
          default: false
          description: |
            If set to true, the device will only be unclaimed but not unprovisioned. Set `unclaimOnly`
            to true in case you want to use the already existing deviceId and deviceSecret of the device
            to claim the device in this or other project in the future.
          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`
            to true in case you want to use the already existing deviceId and deviceSecret of the device
            to claim the device in this or other project in the future.
          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`
            to true in case you want to use the already existing deviceId and deviceSecret of the device
            to claim the device in this or other project in the future.
          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.
              type: number
            DETENTION_STARTED:
              description: |
                Number of devices currently in this event state.
              type: number
            eventSource:
              enum:
                - detention
              type: string
          required:
            - eventSource
            - DETENTION_STARTED
            - DETENTION_ENDED
          type: object
        - properties:
            ruleId:
              description: |
                Must be a valid UUIDv4.
              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.
      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.
                            type: number
                          TRUE_TO_FALSE:
                            description: |
                              Number of devices currently in this event state.
                            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.
                            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.
                            type: number
                          BELOW_RANGE:
                            description: |
                              Number of devices currently in this event state.
                            type: number
                          IN_RANGE:
                            description: |
                              Number of devices currently in this event state.
                            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.
                            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.
                            type: number
                          eventSource:
                            enum:
                              - acceleration
                            type: string
                        required:
                          - eventSource
                          - EVENT
                        type: object
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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.
                            type: number
                          OUTSIDE_GEOFENCE:
                            description: |
                              Number of devices currently in this event state.
                            type: number
                          eventSource:
                            enum:
                              - geofence
                            type: string
                        required:
                          - eventSource
                          - INSIDE_GEOFENCE
                          - OUTSIDE_GEOFENCE
                        type: object
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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.
                            type: number
                          DWELLING_STARTED:
                            description: |
                              Number of devices currently in this event state.
                            type: number
                          eventSource:
                            enum:
                              - dwelling
                            type: string
                        required:
                          - eventSource
                          - DWELLING_STARTED
                          - DWELLING_ENDED
                        type: object
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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.
                            type: number
                          DETENTION_STARTED:
                            description: |
                              Number of devices currently in this event state.
                            type: number
                          eventSource:
                            enum:
                              - detention
                            type: string
                        required:
                          - eventSource
                          - DETENTION_STARTED
                          - DETENTION_ENDED
                        type: object
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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.
                            type: number
                          UTILIZED:
                            description: |
                              Number of devices currently in this event state.
                            type: number
                          eventSource:
                            enum:
                              - utilization
                            type: string
                        required:
                          - eventSource
                          - UTILIZED
                          - UNUTILIZED
                        type: object
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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.
                            type: number
                          SHIPMENT_EARLY:
                            description: |
                              Number of devices currently in this event state.
                            type: number
                          SHIPMENT_ON_TIME:
                            description: |
                              Number of devices currently in this event state.
                            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.
                            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.
          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.
              type: number
            DWELLING_STARTED:
              description: |
                Number of devices currently in this event state.
              type: number
            eventSource:
              enum:
                - dwelling
              type: string
          required:
            - eventSource
            - DWELLING_STARTED
            - DWELLING_ENDED
          type: object
        - properties:
            ruleId:
              description: |
                Must be a valid UUIDv4.
              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
        emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
        to be deleted and created again after the email has been changed in HERE Account.
      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
        which ended after the provided date.
      format: date-time
      type: string
    endedBefore:
      description: |
        Include successfully completed shipments of each shipment plan into the shipment report generation
        which ended before the provided date.
      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
        each file:

        * epoSlice 1 for days 1-3,
        * epoSlice 2 for days 4-6,
        * ...
        * epoSlice 10 for days 28-30.
      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.
      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.
      type: number
    externalCloudInfo:
      description: |
        An external cloud-specific object that the driver will use to login to the
        external cloud. The structure of this object varies per driver
        implementation.
        It is recommended to have dedicated credentials for logging in to
        the external cloud in order not to violate possible concurrent users
        policies of the external cloud.
        In case of the HERE Tracking loopback driver, the maximum
        allowed concurrent user account tokens is 3 per account,
        therefore it is recommended to create a separate HERE account
        and grant it the required privilege to update the connector's
        project, and use that account in externalCloudInfo.
      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.
            It also contains an error object if the device failed provisioning.
          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.
            "provisioning": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.
            "provisioned": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.
            "failed": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.
          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.
              type: number
            OUTSIDE_GEOFENCE:
              description: |
                Number of devices currently in this event state.
              type: number
            eventSource:
              enum:
                - geofence
              type: string
          required:
            - eventSource
            - INSIDE_GEOFENCE
            - OUTSIDE_GEOFENCE
          type: object
        - properties:
            ruleId:
              description: |
                Must be a valid UUIDv4.
              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
          format: uuid
          type: string
        value:
          description: |
            The value of the report metric, which was specified in the `measure` parameter.

            * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
            * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
            * `measure`: `day` => `value`: the number of days the event lasted over the time frame
            * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

            When `value` is provided along with `timestamp`, the time frame is the specified interval.
            When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

            Additionally, if `method` parameter was given, the `value` represents
            average/cumulative/percentage of the calculated metric.
          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.
                  It also contains an error object if the device failed provisioning.
                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.
                  "provisioning": The device is currently being provisioned at HERE Tracking Cloud. Its data still cannot be mirrored when at this state.
                  "provisioned": The device has been provisioned successfully at HERE Tracking Cloud. Its data can be mirrored when at this state.
                  "failed": The device has failed provisioning at HERE Tracking Cloud. Its data cannot be mirrored when at this state.
                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: 2021-05-28T12:10:00Z
        createdAt: 2021-05-28T11:40:00Z
        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
                  the given metric.
                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.
                properties:
                  avg:
                    description: |
                      Average value taken over metric values.
                    type: number
                  val:
                    description: |
                      Value of a metric.
                    type: number
                type: object
              statisticsCount:
                description: |
                  How many inputs were used to calculate the given metric.
                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.
          format: date-time
          type: string
        createdAt:
          description: |
            When generation of the shipment report was started.
          format: date-time
          type: string
        totalLocationCount:
          description: |
            Count of locations over all segment plans in the shipment report.
          type: integer
        totalSegmentPlanCount:
          description: |
            Count of segment plans in the shipments report.
          type: integer
        totalSegmentsCount:
          description: |
            Count of segments over all segment plans in the shipment report.
          type: integer
        totalShipmentPlanCount:
          description: |
            Count of shipment plans in the shipments report.
          type: integer
        totalShipmentsCount:
          description: |
            Count of shipments over all shipment plans in the shipment report.
          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.
      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.
                  Any HERE Tracking user must be a member of a Tracking project.
                  The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                  If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                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: 2021-05-28T12:10:00Z
              createdAt: 2021-05-28T11:40:00Z
              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
          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
            each file:

            * epoSlice 1 for days 1-3,
            * epoSlice 2 for days 4-6,
            * ...
            * epoSlice 10 for days 28-30.
          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.
          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.
          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: 2021-05-28T12:10:00Z
        createdAt: 2021-05-28T11:40:00Z
        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.
          type: number
        val:
          description: |
            Value of a metric.
          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
            location.
          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.
            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
            defines the start of the interval day, week or month.

            For example, to make the report week start on Monday midnight 1st March 2021 in timezone UTC+1:00,
            set the `start` parameter to be `2021-02-28T23:00:00.000Z` (GMT). Now when getting interval reports,
            the first week would contain data between `2021-02-28T23:00:00.000Z` and `2021-03-07T23:00:00.000Z` (GMT).
          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.
          Any HERE Tracking user must be a member of a Tracking project.
          The project ID can be implicitly resolved if the user calling the API is a member of a single project.
          If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
        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.
              type: number
            BELOW_RANGE:
              description: |
                Number of devices currently in this event state.
              type: number
            IN_RANGE:
              description: |
                Number of devices currently in this event state.
              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.
              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.
          enum:
            - attach
            - battery
            - geofence
            - humidity
            - pressure
            - tamper
            - temperature
            - acceleration
            - dwelling
            - stock
            - detention
            - utilization
            - online
            - shipmentSchedule
          type: string
        eventType:
          description: |
            Type of the event.

            An event is created every time an associated rule or geofence is triggered by a device ingestion.
            The event type depends on the data the device sends.

            Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
            generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
            This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

            Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
            transitions from one state to another, either from `false` to `true` or vice versa.
            This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
            The same event types are also generated by the online rule when the device state changes from `offline` 
            (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
            or vice versa.

            The acceleration sensor generates events whenever the reported sensor reading 
            crosses the acceleration threshold (for example, when the device was dropped).
            This produces events of the type EVENT. 
            Such events are stateless.

            Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
            a geofence associated with the device.

            Events of DWELLING_STARTED type are generated when the device has
            stayed inside an associated geofence for longer than the threshold duration. 
            DWELLING_ENDED type events are generated when dwelling of the device has ended.

            Events of DETENTION_STARTED type are generated when the device has been
            stationary for longer than the threshold duration, regardless whether the device is inside 
            or outside of any geofence. 
            DETENTION_ENDED type events will be generated when the device starts moving again.

            Events of UNUTILIZED type are generated when the device has been stationary for longer than the
            threshold duration.
            UTILIZED type events are generated when the device starts moving again after having been stationary.

            Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
            inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

            Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
            is too early, on time or delayed.
          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 
            evaluated for the first time. It indicates the fact that this is the initial evaluation 
            state, which would serve as a starting point for the subsequent rule evaluations.
            The rest of the rule events would represent a transition of a device or a shipment or 
            a geofence from one state to another and their `initialState` property will be set to `false`.
          type: boolean
        ruleId:
          description: |
            Must be a valid UUIDv4.
          format: uuid
          type: string
        url:
          description: |
            A webhook URL that will receive notifications POST requests.
          type: string
      required:
        - channelType
      type: object
    registerResponseBodyV3:
      properties:
        registration:
          oneOf:
            - properties:
                channelId:
                  description: |
                    channel ID
                  format: uuid
                  type: string
                channelType:
                  enum:
                    - webhook
                  type: string
                eventSource:
                  description: |
                    The event source rule type.
                  enum:
                    - attach
                    - battery
                    - geofence
                    - humidity
                    - pressure
                    - tamper
                    - temperature
                    - acceleration
                    - dwelling
                    - stock
                    - detention
                    - utilization
                    - online
                    - shipmentSchedule
                  type: string
                eventType:
                  description: |
                    Type of the event.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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 
                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                    state, which would serve as a starting point for the subsequent rule evaluations.
                    The rest of the rule events would represent a transition of a device or a shipment or 
                    a geofence from one state to another and their `initialState` property will be set to `false`.
                  type: boolean
                ruleId:
                  description: |
                    Must be a valid UUIDv4.
                  format: uuid
                  type: string
                url:
                  description: |
                    A URL for webhook notifications capable of receiving POST requests.
                  type: string
              required:
                - channelType
                - url
                - channelId
              title: webhook
              type: object
            - properties:
                channelId:
                  description: |
                    channel ID
                  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
                    emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                    to be deleted and created again after the email has been changed in HERE Account.
                  type: boolean
                eventSource:
                  description: |
                    The event source rule type.
                  enum:
                    - attach
                    - battery
                    - geofence
                    - humidity
                    - pressure
                    - tamper
                    - temperature
                    - acceleration
                    - dwelling
                    - stock
                    - detention
                    - utilization
                    - online
                    - shipmentSchedule
                  type: string
                eventType:
                  description: |
                    Type of the event.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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 
                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                    state, which would serve as a starting point for the subsequent rule evaluations.
                    The rest of the rule events would represent a transition of a device or a shipment or 
                    a geofence from one state to another and their `initialState` property will be set to `false`.
                  type: boolean
                ruleId:
                  description: |
                    Must be a valid UUIDv4.
                  format: uuid
                  type: string
                userId:
                  description: |
                    User Id.
                  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
                  format: uuid
                  type: string
                channelType:
                  enum:
                    - browserPull
                  type: string
                eventSource:
                  description: |
                    The event source rule type.
                  enum:
                    - attach
                    - battery
                    - geofence
                    - humidity
                    - pressure
                    - tamper
                    - temperature
                    - acceleration
                    - dwelling
                    - stock
                    - detention
                    - utilization
                    - online
                    - shipmentSchedule
                  type: string
                eventType:
                  description: |
                    Type of the event.

                    An event is created every time an associated rule or geofence is triggered by a device ingestion.
                    The event type depends on the data the device sends.

                    Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                    generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                    This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                    Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                    transitions from one state to another, either from `false` to `true` or vice versa.
                    This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                    The same event types are also generated by the online rule when the device state changes from `offline` 
                    (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                    or vice versa.

                    The acceleration sensor generates events whenever the reported sensor reading 
                    crosses the acceleration threshold (for example, when the device was dropped).
                    This produces events of the type EVENT. 
                    Such events are stateless.

                    Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                    a geofence associated with the device.

                    Events of DWELLING_STARTED type are generated when the device has
                    stayed inside an associated geofence for longer than the threshold duration. 
                    DWELLING_ENDED type events are generated when dwelling of the device has ended.

                    Events of DETENTION_STARTED type are generated when the device has been
                    stationary for longer than the threshold duration, regardless whether the device is inside 
                    or outside of any geofence. 
                    DETENTION_ENDED type events will be generated when the device starts moving again.

                    Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                    threshold duration.
                    UTILIZED type events are generated when the device starts moving again after having been stationary.

                    Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                    inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                    Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                    is too early, on time or delayed.
                  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 
                    evaluated for the first time. It indicates the fact that this is the initial evaluation 
                    state, which would serve as a starting point for the subsequent rule evaluations.
                    The rest of the rule events would represent a transition of a device or a shipment or 
                    a geofence from one state to another and their `initialState` property will be set to `false`.
                  type: boolean
                ruleId:
                  description: |
                    Must be a valid UUIDv4.
                  format: uuid
                  type: string
                userId:
                  description: |
                    User Id.
                  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
              format: uuid
              type: string
            channelType:
              enum:
                - webhook
              type: string
            eventSource:
              description: |
                The event source rule type.
              enum:
                - attach
                - battery
                - geofence
                - humidity
                - pressure
                - tamper
                - temperature
                - acceleration
                - dwelling
                - stock
                - detention
                - utilization
                - online
                - shipmentSchedule
              type: string
            eventType:
              description: |
                Type of the event.

                An event is created every time an associated rule or geofence is triggered by a device ingestion.
                The event type depends on the data the device sends.

                Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                transitions from one state to another, either from `false` to `true` or vice versa.
                This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                The same event types are also generated by the online rule when the device state changes from `offline` 
                (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                or vice versa.

                The acceleration sensor generates events whenever the reported sensor reading 
                crosses the acceleration threshold (for example, when the device was dropped).
                This produces events of the type EVENT. 
                Such events are stateless.

                Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                a geofence associated with the device.

                Events of DWELLING_STARTED type are generated when the device has
                stayed inside an associated geofence for longer than the threshold duration. 
                DWELLING_ENDED type events are generated when dwelling of the device has ended.

                Events of DETENTION_STARTED type are generated when the device has been
                stationary for longer than the threshold duration, regardless whether the device is inside 
                or outside of any geofence. 
                DETENTION_ENDED type events will be generated when the device starts moving again.

                Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                threshold duration.
                UTILIZED type events are generated when the device starts moving again after having been stationary.

                Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                is too early, on time or delayed.
              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 
                evaluated for the first time. It indicates the fact that this is the initial evaluation 
                state, which would serve as a starting point for the subsequent rule evaluations.
                The rest of the rule events would represent a transition of a device or a shipment or 
                a geofence from one state to another and their `initialState` property will be set to `false`.
              type: boolean
            ruleId:
              description: |
                Must be a valid UUIDv4.
              format: uuid
              type: string
            url:
              description: |
                A URL for webhook notifications capable of receiving POST requests.
              type: string
          required:
            - channelType
            - url
            - channelId
          title: webhook
          type: object
        - properties:
            channelId:
              description: |
                channel ID
              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
                emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                to be deleted and created again after the email has been changed in HERE Account.
              type: boolean
            eventSource:
              description: |
                The event source rule type.
              enum:
                - attach
                - battery
                - geofence
                - humidity
                - pressure
                - tamper
                - temperature
                - acceleration
                - dwelling
                - stock
                - detention
                - utilization
                - online
                - shipmentSchedule
              type: string
            eventType:
              description: |
                Type of the event.

                An event is created every time an associated rule or geofence is triggered by a device ingestion.
                The event type depends on the data the device sends.

                Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                transitions from one state to another, either from `false` to `true` or vice versa.
                This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                The same event types are also generated by the online rule when the device state changes from `offline` 
                (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                or vice versa.

                The acceleration sensor generates events whenever the reported sensor reading 
                crosses the acceleration threshold (for example, when the device was dropped).
                This produces events of the type EVENT. 
                Such events are stateless.

                Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                a geofence associated with the device.

                Events of DWELLING_STARTED type are generated when the device has
                stayed inside an associated geofence for longer than the threshold duration. 
                DWELLING_ENDED type events are generated when dwelling of the device has ended.

                Events of DETENTION_STARTED type are generated when the device has been
                stationary for longer than the threshold duration, regardless whether the device is inside 
                or outside of any geofence. 
                DETENTION_ENDED type events will be generated when the device starts moving again.

                Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                threshold duration.
                UTILIZED type events are generated when the device starts moving again after having been stationary.

                Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                is too early, on time or delayed.
              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 
                evaluated for the first time. It indicates the fact that this is the initial evaluation 
                state, which would serve as a starting point for the subsequent rule evaluations.
                The rest of the rule events would represent a transition of a device or a shipment or 
                a geofence from one state to another and their `initialState` property will be set to `false`.
              type: boolean
            ruleId:
              description: |
                Must be a valid UUIDv4.
              format: uuid
              type: string
            userId:
              description: |
                User Id.
              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
              format: uuid
              type: string
            channelType:
              enum:
                - browserPull
              type: string
            eventSource:
              description: |
                The event source rule type.
              enum:
                - attach
                - battery
                - geofence
                - humidity
                - pressure
                - tamper
                - temperature
                - acceleration
                - dwelling
                - stock
                - detention
                - utilization
                - online
                - shipmentSchedule
              type: string
            eventType:
              description: |
                Type of the event.

                An event is created every time an associated rule or geofence is triggered by a device ingestion.
                The event type depends on the data the device sends.

                Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                transitions from one state to another, either from `false` to `true` or vice versa.
                This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                The same event types are also generated by the online rule when the device state changes from `offline` 
                (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                or vice versa.

                The acceleration sensor generates events whenever the reported sensor reading 
                crosses the acceleration threshold (for example, when the device was dropped).
                This produces events of the type EVENT. 
                Such events are stateless.

                Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                a geofence associated with the device.

                Events of DWELLING_STARTED type are generated when the device has
                stayed inside an associated geofence for longer than the threshold duration. 
                DWELLING_ENDED type events are generated when dwelling of the device has ended.

                Events of DETENTION_STARTED type are generated when the device has been
                stationary for longer than the threshold duration, regardless whether the device is inside 
                or outside of any geofence. 
                DETENTION_ENDED type events will be generated when the device starts moving again.

                Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                threshold duration.
                UTILIZED type events are generated when the device starts moving again after having been stationary.

                Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                is too early, on time or delayed.
              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 
                evaluated for the first time. It indicates the fact that this is the initial evaluation 
                state, which would serve as a starting point for the subsequent rule evaluations.
                The rest of the rule events would represent a transition of a device or a shipment or 
                a geofence from one state to another and their `initialState` property will be set to `false`.
              type: boolean
            ruleId:
              description: |
                Must be a valid UUIDv4.
              format: uuid
              type: string
            userId:
              description: |
                User Id.
              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
        will remain claimed and provisioned in Tracking Cloud. Can be true only when removing c2c
        device, i.e. when `externalDeviceId` and `connectorId` are provided.
      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
              format: date-time
              type: string
            value:
              description: |
                The value of the report metric, which was specified in the `measure` parameter.

                * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                When `value` is provided along with `timestamp`, the time frame is the specified interval.
                When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                Additionally, if `method` parameter was given, the `value` represents
                average/cumulative/percentage of the calculated metric.
              type: number
          required:
            - timestamp
            - value
          title: timestamp-value
          type: object
        - properties:
            trackingId:
              description: |
                Tracking ID on which the `value` is calculated
              maxLength: 50
              minLength: 1
              type: string
            value:
              description: |
                The value of the report metric, which was specified in the `measure` parameter.

                * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                When `value` is provided along with `timestamp`, the time frame is the specified interval.
                When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                Additionally, if `method` parameter was given, the `value` represents
                average/cumulative/percentage of the calculated metric.
              type: number
          required:
            - trackingId
            - value
          title: trackingId-value
          type: object
        - properties:
            geofenceId:
              description: |
                Geofence ID on which the `value` is calculated
              format: uuid
              type: string
            value:
              description: |
                The value of the report metric, which was specified in the `measure` parameter.

                * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                When `value` is provided along with `timestamp`, the time frame is the specified interval.
                When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                Additionally, if `method` parameter was given, the `value` represents
                average/cumulative/percentage of the calculated metric.
              type: number
          required:
            - geofenceId
            - value
          title: geofenceId-value
          type: object
        - properties:
            timestamp:
              description: |
                Timestamp of the beginning of the event
              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.
      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
                and the value is an array of `externalId`s.
              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
                      and the value is an array of externalIds.
                    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.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        type: object
                      system:
                        description: |
                          Contains device configuration settings.
                        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.
                              In order to disable tracking, one must at least provide the begin time of the disabling
                              period and define either position or sensor properties one wants to disable. One can also
                              disable both position and sensors at the same time. By default tracking is enabled.
                            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.
                                items:
                                  properties:
                                    begin:
                                      description: |
                                        Begin time of the tracking disabling period.

                                        Begin must be smaller than end. Begin must be greater or equal to current time.
                                        Begin can be set without end. If there exists already end time which is earlier
                                        than given new begin time, the existing end time will be deleted.
                                      format: date-time
                                      type: string
                                    end:
                                      description: |
                                        End time of the tracking disabling period.

                                        End must be greater than begin. End must be greater or equal to current time.
                                        End can be set without begin if begin is already set.
                                      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
                                    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.
                                      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.
                                    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.
                                    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.
                                      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.
                                    enum:
                                      - ""
                                    title: re-enable
                                    type: string
                            type: object
                          lastModifiedGeofenceTimestamp:
                            description: |
                              The time of the last update to geofences that device is associated
                              with. This value is zero when device hasn't yet been associated with
                              any geofence. This is set by HERE Tracking when any geofences
                              associated with the device is modified or removed. Also adding and
                              removing geofence associations update this value.
                            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.
                            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.
                            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.
                        format: date-time
                        type: string
                    type: object
                  reported:
                    description: |
                      The `reported` shadow contains the most recent position, sensor readings and settings that the
                      device has sent. The reported shadow may also contain additional properties generated by HERE 
                      Tracking based on the device-ingested telemetry.
                      Such properties are stored in `system.computed` property of the shadow.

                      In case the most recent telemetry did not contain all the possible
                      fields, the last known information will remain in the shadow. This means that one can
                      see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                      even if the device did not send that information in the latest telemetry.
                    properties:
                      payload:
                        description: |
                          A free format JSON object.
                          The maximum size is 1000B.
                        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.
                          `stateVersion` property contains the version of the last
                          known `desired` state seen by the device.
                        properties:
                          client:
                            description: |
                              Information about the client device.
                            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
                                  unit g (9.8 m/s^2). If more than one accelerometer is available,
                                  each element in the list will represent individual accelerometer.
                                  Each value represents a single "+/-" range.
                                  For example, value 2 means that sensor is capable to measure
                                  acceleration within the range of [-2 g, +2 g].
                                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.
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                format: date-time
                                type: string
                              moving:
                                description: |
                                  Asset is considered moving if the positions of two consecutive trace points differ more
                                  than the combined positioning accuracy + 100 meters.
                                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.
                                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.
                            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
                              can send telemetry and, for example, use its GNSS receiver if it has one.
                              A tracker switches into flight mode once it detects that it's in an
                              airplane, and leaves that mode once airplane lands. Transport mode has to
                              be triggered by the user, and it's used, for example, during shipping from
                              continent to another. Sleep mode is used when a tracker is stored in
                              a warehouse, and it's triggered by entering or leaving some defined
                              geofence.
                            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".
                            example: "+491234567890"
                            pattern: ^\+[1-9]\d{1,14}$
                            type: string
                          reportedSensorData:
                            description: |
                              The last known device sensor data reported by the device.
                            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.
                            minimum: 0
                            type: integer
                        type: object
                      timestamp:
                        description: |
                          This describes when the reported measurements were taken.
                        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: 2020-05-27T11:40:01Z
              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
                  location.
                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.
                  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: 2020-05-27T11:40:01Z
                name: Truck transport
                origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                startedAt: 2020-05-27T11:40:01Z
                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: 2020-05-27T11:40:01Z
                  name: Truck transport
                  origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                  segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                  startedAt: 2020-05-27T11:40:01Z
                  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
                  location.
                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.
                  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: 2020-05-27T11:40:01Z
                    name: Truck transport
                    origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
                    segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
                    startedAt: 2020-05-27T11:40:01Z
                    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
                    than the threshold duration.
                  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
                    for longer than the threshold duration.
                  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
                    indicating that the asset is utilized, and also when the asset stops
                    moving and has been stationary for longer than the threshold duration
                    indicating that the asset is unutilized.
                  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.
          format: uuid
          type: string
      required:
        - ruleId
        - rule
      type: object
    responseCount:
      additionalProperties: false
      example:
        count: 1337
        updatedAt: 2018-04-03T12:08:56.501Z
      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.
          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.
                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,
        and `pageToken` is the next page token if available. 
        If no devices are found, an object with an empty data array is returned.
      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
                    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
                    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
                    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
          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
          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
          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
          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.
                      Any HERE Tracking user must be a member of a Tracking project.
                      The project ID can be implicitly resolved if the user calling the API is a member of a single project.
                      If the user is a member of multiple projects, the `projectId` query parameter needs to be specified explicitly.
                    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
                      will not execute periodically.
                    type: boolean
                  externalCloudInfo:
                    description: |
                      An external cloud-specific object that the driver will use to login to the
                      external cloud. The structure of this object varies per driver
                      implementation.
                      It is recommended to have dedicated credentials for logging in to
                      the external cloud in order not to violate possible concurrent users
                      policies of the external cloud.
                      In case of the HERE Tracking loopback driver, the maximum
                      allowed concurrent user account tokens is 3 per account,
                      therefore it is recommended to create a separate HERE account
                      and grant it the required privilege to update the connector's
                      project, and use that account in externalCloudInfo.
                    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
                      between the connector's external cloud and HERE Tracking project.
                      The maximum and at the same time default value for callback-type connectors is 900 seconds.
                      The default value for other type of connectors is 3600 seconds and there is no maximum value set.
                    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.
          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.
                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.
                    properties:
                      desired:
                        description: |
                          The desired shadow of the device.
                        properties:
                          payload:
                            description: |
                              A free format JSON object.
                              The maximum size is 1000B.
                            type: object
                          system:
                            description: |
                              Contains device configuration settings.
                            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.
                                  In order to disable tracking, one must at least provide the begin time of the disabling
                                  period and define either position or sensor properties one wants to disable. One can also
                                  disable both position and sensors at the same time. By default tracking is enabled.
                                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.
                                    items:
                                      properties:
                                        begin:
                                          description: |
                                            Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                            Begin time of the tracking disabling period.

                                            Begin must be smaller than end. Begin must be greater or equal to current time.
                                            Begin can be set without end. If there exists already end time which is earlier
                                            than given new begin time, the existing end time will be deleted.
                                          maximum: 4102448400000
                                          minimum: 2
                                          type: integer
                                        end:
                                          description: |
                                            Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                            End time of the tracking disabling period.

                                            End must be greater than begin. End must be greater or equal to current time.
                                            End can be set without begin if begin is already set.
                                          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
                                        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.
                                          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.
                                        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.
                                        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.
                                          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.
                                        enum:
                                          - ""
                                        title: re-enable
                                        type: string
                                type: object
                              lastModifiedGeofenceTimestamp:
                                description: |
                                  Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                                  The time of the last update to geofences that device is associated
                                  with. This value is zero when device hasn't yet been associated with
                                  any geofence. This is set by HERE Tracking when any geofences
                                  associated with the device is modified or removed. Also adding and
                                  removing geofence associations update this value.
                                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.
                                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.
                                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.

                              The time of the last update to the desired shadow.
                            maximum: 4102448400000
                            minimum: 2
                            type: integer
                        type: object
                      reported:
                        description: |
                          The `reported` shadow contains the most recent position, sensor readings and settings that the
                          device has sent. The reported shadow may also contain additional properties generated by HERE 
                          Tracking based on the device-ingested telemetry.
                          Such properties are stored in `system.computed` property of the shadow.

                          In case the most recent telemetry did not contain all the possible
                          fields, the last known information will remain in the shadow. This means that one can
                          see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                          even if the device did not send that information in the latest telemetry.
                        properties:
                          payload:
                            description: |
                              A free format JSON object.
                              The maximum size is 1000B.
                            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.
                              `stateVersion` property contains the version of the last
                              known `desired` state seen by the device.
                            properties:
                              client:
                                description: |
                                  Information about the client device.
                                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
                                      unit g (9.8 m/s^2). If more than one accelerometer is available,
                                      each element in the list will represent individual accelerometer.
                                      Each value represents a single "+/-" range.
                                      For example, value 2 means that sensor is capable to measure
                                      acceleration within the range of [-2 g, +2 g].
                                    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.
                                      Asset is considered moving if the positions of two consecutive trace points differ more
                                      than the combined positioning accuracy + 100 meters.
                                    type: integer
                                  moving:
                                    description: |
                                      Asset is considered moving if the positions of two consecutive trace points differ more
                                      than the combined positioning accuracy + 100 meters.
                                    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.
                                    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.
                                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
                                  can send telemetry and, for example, use its GNSS receiver if it has one.
                                  A tracker switches into flight mode once it detects that it's in an
                                  airplane, and leaves that mode once airplane lands. Transport mode has to
                                  be triggered by the user, and it's used, for example, during shipping from
                                  continent to another. Sleep mode is used when a tracker is stored in
                                  a warehouse, and it's triggered by entering or leaving some defined
                                  geofence.
                                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".
                                example: "+491234567890"
                                pattern: ^\+[1-9]\d{1,14}$
                                type: string
                              reportedSensorData:
                                description: |
                                  The last known device sensor data reported by the device.
                                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.
                                minimum: 0
                                type: integer
                            type: object
                          timestamp:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                              The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                              the timestamp of all the reported values in the reported shadow since the shadow retains
                              values from previous ingestions if the latest telemetry did not conatain them.
                            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.
            For example 86400 means the token will expire in 24 hours from the time the response was generated.
          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
                        format: uuid
                        type: string
                      channelType:
                        enum:
                          - webhook
                        type: string
                      eventSource:
                        description: |
                          The event source rule type.
                        enum:
                          - attach
                          - battery
                          - geofence
                          - humidity
                          - pressure
                          - tamper
                          - temperature
                          - acceleration
                          - dwelling
                          - stock
                          - detention
                          - utilization
                          - online
                          - shipmentSchedule
                        type: string
                      eventType:
                        description: |
                          Type of the event.

                          An event is created every time an associated rule or geofence is triggered by a device ingestion.
                          The event type depends on the data the device sends.

                          Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                          generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                          This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                          Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                          transitions from one state to another, either from `false` to `true` or vice versa.
                          This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                          The same event types are also generated by the online rule when the device state changes from `offline` 
                          (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                          or vice versa.

                          The acceleration sensor generates events whenever the reported sensor reading 
                          crosses the acceleration threshold (for example, when the device was dropped).
                          This produces events of the type EVENT. 
                          Such events are stateless.

                          Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                          a geofence associated with the device.

                          Events of DWELLING_STARTED type are generated when the device has
                          stayed inside an associated geofence for longer than the threshold duration. 
                          DWELLING_ENDED type events are generated when dwelling of the device has ended.

                          Events of DETENTION_STARTED type are generated when the device has been
                          stationary for longer than the threshold duration, regardless whether the device is inside 
                          or outside of any geofence. 
                          DETENTION_ENDED type events will be generated when the device starts moving again.

                          Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                          threshold duration.
                          UTILIZED type events are generated when the device starts moving again after having been stationary.

                          Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                          inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                          Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                          is too early, on time or delayed.
                        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 
                          evaluated for the first time. It indicates the fact that this is the initial evaluation 
                          state, which would serve as a starting point for the subsequent rule evaluations.
                          The rest of the rule events would represent a transition of a device or a shipment or 
                          a geofence from one state to another and their `initialState` property will be set to `false`.
                        type: boolean
                      ruleId:
                        description: |
                          Must be a valid UUIDv4.
                        format: uuid
                        type: string
                      url:
                        description: |
                          A URL for webhook notifications capable of receiving POST requests.
                        type: string
                    required:
                      - channelType
                      - url
                      - channelId
                    title: webhook
                    type: object
                  - properties:
                      channelId:
                        description: |
                          channel ID
                        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
                          emails the notifications can no longer be sent. Such channel cannot be re-activated but it needs
                          to be deleted and created again after the email has been changed in HERE Account.
                        type: boolean
                      eventSource:
                        description: |
                          The event source rule type.
                        enum:
                          - attach
                          - battery
                          - geofence
                          - humidity
                          - pressure
                          - tamper
                          - temperature
                          - acceleration
                          - dwelling
                          - stock
                          - detention
                          - utilization
                          - online
                          - shipmentSchedule
                        type: string
                      eventType:
                        description: |
                          Type of the event.

                          An event is created every time an associated rule or geofence is triggered by a device ingestion.
                          The event type depends on the data the device sends.

                          Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                          generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                          This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                          Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                          transitions from one state to another, either from `false` to `true` or vice versa.
                          This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                          The same event types are also generated by the online rule when the device state changes from `offline` 
                          (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                          or vice versa.

                          The acceleration sensor generates events whenever the reported sensor reading 
                          crosses the acceleration threshold (for example, when the device was dropped).
                          This produces events of the type EVENT. 
                          Such events are stateless.

                          Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                          a geofence associated with the device.

                          Events of DWELLING_STARTED type are generated when the device has
                          stayed inside an associated geofence for longer than the threshold duration. 
                          DWELLING_ENDED type events are generated when dwelling of the device has ended.

                          Events of DETENTION_STARTED type are generated when the device has been
                          stationary for longer than the threshold duration, regardless whether the device is inside 
                          or outside of any geofence. 
                          DETENTION_ENDED type events will be generated when the device starts moving again.

                          Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                          threshold duration.
                          UTILIZED type events are generated when the device starts moving again after having been stationary.

                          Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                          inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                          Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                          is too early, on time or delayed.
                        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 
                          evaluated for the first time. It indicates the fact that this is the initial evaluation 
                          state, which would serve as a starting point for the subsequent rule evaluations.
                          The rest of the rule events would represent a transition of a device or a shipment or 
                          a geofence from one state to another and their `initialState` property will be set to `false`.
                        type: boolean
                      ruleId:
                        description: |
                          Must be a valid UUIDv4.
                        format: uuid
                        type: string
                      userId:
                        description: |
                          User Id.
                        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
                        format: uuid
                        type: string
                      channelType:
                        enum:
                          - browserPull
                        type: string
                      eventSource:
                        description: |
                          The event source rule type.
                        enum:
                          - attach
                          - battery
                          - geofence
                          - humidity
                          - pressure
                          - tamper
                          - temperature
                          - acceleration
                          - dwelling
                          - stock
                          - detention
                          - utilization
                          - online
                          - shipmentSchedule
                        type: string
                      eventType:
                        description: |
                          Type of the event.

                          An event is created every time an associated rule or geofence is triggered by a device ingestion.
                          The event type depends on the data the device sends.

                          Sensors that report numerical data (such as battery, humidity, pressure and temperature sensors),
                          generate an event when the reported sensor reading of the device goes in or out of range, which is configured in the rule.
                          This produces events of BELOW_RANGE, IN_RANGE and ABOVE_RANGE types.

                          Sensors that report boolean data (such as attach and tamper sensors), generate events when the device 
                          transitions from one state to another, either from `false` to `true` or vice versa.
                          This produces events of FALSE_TO_TRUE and TRUE_TO_FALSE types.
                          The same event types are also generated by the online rule when the device state changes from `offline` 
                          (when the device has stopped ingesting data) to `online` (when the device data ingestion has resumed) 
                          or vice versa.

                          The acceleration sensor generates events whenever the reported sensor reading 
                          crosses the acceleration threshold (for example, when the device was dropped).
                          This produces events of the type EVENT. 
                          Such events are stateless.

                          Events of INSIDE_GEOFENCE and OUTSIDE_GEOFENCE types are generated when the device enters or exits
                          a geofence associated with the device.

                          Events of DWELLING_STARTED type are generated when the device has
                          stayed inside an associated geofence for longer than the threshold duration. 
                          DWELLING_ENDED type events are generated when dwelling of the device has ended.

                          Events of DETENTION_STARTED type are generated when the device has been
                          stationary for longer than the threshold duration, regardless whether the device is inside 
                          or outside of any geofence. 
                          DETENTION_ENDED type events will be generated when the device starts moving again.

                          Events of UNUTILIZED type are generated when the device has been stationary for longer than the
                          threshold duration.
                          UTILIZED type events are generated when the device starts moving again after having been stationary.

                          Events of OVERSTOCK, NORMAL_VOLUME and UNDERSTOCK types are generated when the number of assets
                          inside a geofence crosses the `minVolume` and `maxVolume` thresholds of an associated stock rule.

                          Events of SHIPMENT_EARLY, SHIPMENT_ON_TIME and SHIPMENT_DELAYED types are generated when a shipment
                          is too early, on time or delayed.
                        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 
                          evaluated for the first time. It indicates the fact that this is the initial evaluation 
                          state, which would serve as a starting point for the subsequent rule evaluations.
                          The rest of the rule events would represent a transition of a device or a shipment or 
                          a geofence from one state to another and their `initialState` property will be set to `false`.
                        type: boolean
                      ruleId:
                        description: |
                          Must be a valid UUIDv4.
                        format: uuid
                        type: string
                      userId:
                        description: |
                          User Id.
                        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,
        and pageToken if available. If no registrations are found, an object with empty data array is returned.
      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
                    format: date-time
                    type: string
                  value:
                    description: |
                      The value of the report metric, which was specified in the `measure` parameter.

                      * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                      * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                      * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                      * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                      When `value` is provided along with `timestamp`, the time frame is the specified interval.
                      When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                      Additionally, if `method` parameter was given, the `value` represents
                      average/cumulative/percentage of the calculated metric.
                    type: number
                required:
                  - timestamp
                  - value
                title: timestamp-value
                type: object
              - properties:
                  trackingId:
                    description: |
                      Tracking ID on which the `value` is calculated
                    maxLength: 50
                    minLength: 1
                    type: string
                  value:
                    description: |
                      The value of the report metric, which was specified in the `measure` parameter.

                      * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                      * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                      * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                      * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                      When `value` is provided along with `timestamp`, the time frame is the specified interval.
                      When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                      Additionally, if `method` parameter was given, the `value` represents
                      average/cumulative/percentage of the calculated metric.
                    type: number
                required:
                  - trackingId
                  - value
                title: trackingId-value
                type: object
              - properties:
                  geofenceId:
                    description: |
                      Geofence ID on which the `value` is calculated
                    format: uuid
                    type: string
                  value:
                    description: |
                      The value of the report metric, which was specified in the `measure` parameter.

                      * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
                      * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
                      * `measure`: `day` => `value`: the number of days the event lasted over the time frame
                      * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

                      When `value` is provided along with `timestamp`, the time frame is the specified interval.
                      When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

                      Additionally, if `method` parameter was given, the `value` represents
                      average/cumulative/percentage of the calculated metric.
                    type: number
                required:
                  - geofenceId
                  - value
                title: geofenceId-value
                type: object
              - properties:
                  timestamp:
                    description: |
                      Timestamp of the beginning of the event
                    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. 
            When the status is `pending` or `started`, re-check the status later again. 
            The actual reports can be queried only when the report creation status is 'completed'.
          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.
            properties:
              desired:
                description: |
                  The desired shadow of the device.
                properties:
                  payload:
                    description: |
                      A free format JSON object.
                      The maximum size is 1000B.
                    type: object
                  system:
                    description: |
                      Contains device configuration settings.
                    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.
                          In order to disable tracking, one must at least provide the begin time of the disabling
                          period and define either position or sensor properties one wants to disable. One can also
                          disable both position and sensors at the same time. By default tracking is enabled.
                        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.
                            items:
                              properties:
                                begin:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                    Begin time of the tracking disabling period.

                                    Begin must be smaller than end. Begin must be greater or equal to current time.
                                    Begin can be set without end. If there exists already end time which is earlier
                                    than given new begin time, the existing end time will be deleted.
                                  maximum: 4102448400000
                                  minimum: 2
                                  type: integer
                                end:
                                  description: |
                                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                                    End time of the tracking disabling period.

                                    End must be greater than begin. End must be greater or equal to current time.
                                    End can be set without begin if begin is already set.
                                  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
                                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.
                                  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.
                                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.
                                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.
                                  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.
                                enum:
                                  - ""
                                title: re-enable
                                type: string
                        type: object
                      lastModifiedGeofenceTimestamp:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                          The time of the last update to geofences that device is associated
                          with. This value is zero when device hasn't yet been associated with
                          any geofence. This is set by HERE Tracking when any geofences
                          associated with the device is modified or removed. Also adding and
                          removing geofence associations update this value.
                        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.
                        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.
                        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.

                      The time of the last update to the desired shadow.
                    maximum: 4102448400000
                    minimum: 2
                    type: integer
                type: object
              reported:
                description: |
                  The `reported` shadow contains the most recent position, sensor readings and settings that the
                  device has sent. The reported shadow may also contain additional properties generated by HERE 
                  Tracking based on the device-ingested telemetry.
                  Such properties are stored in `system.computed` property of the shadow.

                  In case the most recent telemetry did not contain all the possible
                  fields, the last known information will remain in the shadow. This means that one can
                  see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                  even if the device did not send that information in the latest telemetry.
                properties:
                  payload:
                    description: |
                      A free format JSON object.
                      The maximum size is 1000B.
                    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.
                      `stateVersion` property contains the version of the last
                      known `desired` state seen by the device.
                    properties:
                      client:
                        description: |
                          Information about the client device.
                        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
                              unit g (9.8 m/s^2). If more than one accelerometer is available,
                              each element in the list will represent individual accelerometer.
                              Each value represents a single "+/-" range.
                              For example, value 2 means that sensor is capable to measure
                              acceleration within the range of [-2 g, +2 g].
                            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.
                              Asset is considered moving if the positions of two consecutive trace points differ more
                              than the combined positioning accuracy + 100 meters.
                            type: integer
                          moving:
                            description: |
                              Asset is considered moving if the positions of two consecutive trace points differ more
                              than the combined positioning accuracy + 100 meters.
                            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.
                            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.
                        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
                          can send telemetry and, for example, use its GNSS receiver if it has one.
                          A tracker switches into flight mode once it detects that it's in an
                          airplane, and leaves that mode once airplane lands. Transport mode has to
                          be triggered by the user, and it's used, for example, during shipping from
                          continent to another. Sleep mode is used when a tracker is stored in
                          a warehouse, and it's triggered by entering or leaving some defined
                          geofence.
                        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".
                        example: "+491234567890"
                        pattern: ^\+[1-9]\d{1,14}$
                        type: string
                      reportedSensorData:
                        description: |
                          The last known device sensor data reported by the device.
                        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.
                        minimum: 0
                        type: integer
                    type: object
                  timestamp:
                    description: |
                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                      The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                      the timestamp of all the reported values in the reported shadow since the shadow retains
                      values from previous ingestions if the latest telemetry did not conatain them.
                    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
                    indicating that the asset is utilized, and also when the asset stops
                    moving and has been stationary for longer than the threshold duration
                    indicating that the asset is unutilized.
                  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
                    than the threshold duration.
                  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
                    for longer than the threshold duration.
                  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.
          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
                          indicating that the asset is utilized, and also when the asset stops
                          moving and has been stationary for longer than the threshold duration
                          indicating that the asset is unutilized.
                        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
                          than the threshold duration.
                        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
                          for longer than the threshold duration.
                        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.
                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: 2020-05-27T11:40:01Z
        name: Truck transport
        origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
        segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
        startedAt: 2020-05-27T11:40:01Z
        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.
          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.
                    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,
        and `pageToken` is the next page token if available.

        If no sensor rules are found, an object with an empty data array is returned.
      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: 2020-05-27T11:40:01Z
            name: Truck transport
            origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
            segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
            startedAt: 2020-05-27T11:40:01Z
            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
            location.
          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.
            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: 2020-05-27T11:40:01Z
              name: Truck transport
              origin: LOC-54531862-f87a-4b70-99a4-0e8224a56be4
              segmentId: SEG-156986fa-1ed9-42ab-a022-9ac1a70ae137
              startedAt: 2020-05-27T11:40:01Z
              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: 2020-05-27T11:40:01Z
        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
            location.
          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.
            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,
        and pageToken if available. If no shipments are found, an object with empty data array is returned.
      type: object
    responseTelemetry:
      description: |
        The desired shadow of the device.
      properties:
        payload:
          description: |
            A free format JSON object.
            The maximum size is 1000B.
          type: object
        system:
          description: |
            Contains device configuration settings.
          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.
                In order to disable tracking, one must at least provide the begin time of the disabling
                period and define either position or sensor properties one wants to disable. One can also
                disable both position and sensors at the same time. By default tracking is enabled.
              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.
                  items:
                    properties:
                      begin:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                          Begin time of the tracking disabling period.

                          Begin must be smaller than end. Begin must be greater or equal to current time.
                          Begin can be set without end. If there exists already end time which is earlier
                          than given new begin time, the existing end time will be deleted.
                        maximum: 4102448400000
                        minimum: 2
                        type: integer
                      end:
                        description: |
                          Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                          End time of the tracking disabling period.

                          End must be greater than begin. End must be greater or equal to current time.
                          End can be set without begin if begin is already set.
                        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
                      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.
                        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.
                      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.
                      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.
                        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.
                      enum:
                        - ""
                      title: re-enable
                      type: string
              type: object
            lastModifiedGeofenceTimestamp:
              description: |
                Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                The time of the last update to geofences that device is associated
                with. This value is zero when device hasn't yet been associated with
                any geofence. This is set by HERE Tracking when any geofences
                associated with the device is modified or removed. Also adding and
                removing geofence associations update this value.
              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.
              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.
              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.

            The time of the last update to the desired shadow.
          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.
            For example 86400 means the token will expire in 24 hours from the time the response was generated.
          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.
                      The maximum size is 1000B.
                    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.

                      This describes when the measurements were processed by the backend.
                    maximum: 4102448400000
                    minimum: 2
                    type: integer
                  system:
                    description: |
                      Contains device-reported sensor data and device configuration settings.
                      `stateVersion` property contains the version of the last
                      known `desired` state seen by the device.
                    properties:
                      client:
                        description: |
                          Information about the client device.
                        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
                              unit g (9.8 m/s^2). If more than one accelerometer is available,
                              each element in the list will represent individual accelerometer.
                              Each value represents a single "+/-" range.
                              For example, value 2 means that sensor is capable to measure
                              acceleration within the range of [-2 g, +2 g].
                            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
                              than the combined positioning accuracy + 100 meters.
                            type: boolean
                          outlier:
                            description: |
                              Indicates that HERE Tracking detected position to be a possible outlier.
                            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.
                        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
                          can send telemetry and, for example, use its GNSS receiver if it has one.
                          A tracker switches into flight mode once it detects that it's in an
                          airplane, and leaves that mode once airplane lands. Transport mode has to
                          be triggered by the user, and it's used, for example, during shipping from
                          continent to another. Sleep mode is used when a tracker is stored in
                          a warehouse, and it's triggered by entering or leaving some defined
                          geofence.
                        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".
                        example: "+491234567890"
                        pattern: ^\+[1-9]\d{1,14}$
                        type: string
                      reportedSensorData:
                        description: |
                          The last known device sensor data reported by the device.
                        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.
                        minimum: 0
                        type: integer
                    type: object
                  timestamp:
                    description: |
                      Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                      Specifies the time the device telemetry measurements were taken.
                    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.
                    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
        returned items and `pageToken` is the next page token if available.

        If no traces are found, an object with an empty data array is returned.

        Traces are sorted in descending order based on their timestamps.
      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                                  |
                  | ------------------------ | ---------------------------------------- |
                  | PING_OUTSIDE_FENCE       | The device has transitioned outside the geofence. |
                  | PING_IN_FENCE            | The device has transitioned inside the geofence. |
                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.
                    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
        returned items and `pageToken` is the next page token if available.

        If no transitions are found, an object with an empty data array is
        returned.

        Transitions are sorted in descending order based on their timestamps.
      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.
              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
                indicating that the asset is utilized, and also when the asset stops
                moving and has been stationary for longer than the threshold duration
                indicating that the asset is unutilized.
              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
                than the threshold duration.
              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
                for longer than the threshold duration.
              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.
      format: uuid
      type: string
    ruleIds:
      description: Array of `ruleId`s to associate with the shipment
      items:
        description: |
          Must be a valid UUIDv4.
        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.
      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
            contributing the scan data along with a GPS position.
          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.
      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.
          properties:
            payload:
              description: |
                A free format JSON object.
                The maximum size is 1000B.
              type: object
            system:
              description: |
                Contains device configuration settings.
              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.
                    In order to disable tracking, one must at least provide the begin time of the disabling
                    period and define either position or sensor properties one wants to disable. One can also
                    disable both position and sensors at the same time. By default tracking is enabled.
                  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.
                      items:
                        properties:
                          begin:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                              Begin time of the tracking disabling period.

                              Begin must be smaller than end. Begin must be greater or equal to current time.
                              Begin can be set without end. If there exists already end time which is earlier
                              than given new begin time, the existing end time will be deleted.
                            maximum: 4102448400000
                            minimum: 2
                            type: integer
                          end:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                              End time of the tracking disabling period.

                              End must be greater than begin. End must be greater or equal to current time.
                              End can be set without begin if begin is already set.
                            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
                          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.
                            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.
                          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.
                          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.
                            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.
                          enum:
                            - ""
                          title: re-enable
                          type: string
                  type: object
                lastModifiedGeofenceTimestamp:
                  description: |
                    Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                    The time of the last update to geofences that device is associated
                    with. This value is zero when device hasn't yet been associated with
                    any geofence. This is set by HERE Tracking when any geofences
                    associated with the device is modified or removed. Also adding and
                    removing geofence associations update this value.
                  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.
                  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.
                  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.

                The time of the last update to the desired shadow.
              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
            device has sent. The reported shadow may also contain additional properties generated by HERE 
            Tracking based on the device-ingested telemetry.
            Such properties are stored in `system.computed` property of the shadow.

            In case the most recent telemetry did not contain all the possible
            fields, the last known information will remain in the shadow. This means that one can
            see, for example, the last reported temperature or tracker firmware information in the reported shadow,
            even if the device did not send that information in the latest telemetry.
          properties:
            payload:
              description: |
                A free format JSON object.
                The maximum size is 1000B.
              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.
                `stateVersion` property contains the version of the last
                known `desired` state seen by the device.
              properties:
                client:
                  description: |
                    Information about the client device.
                  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
                        unit g (9.8 m/s^2). If more than one accelerometer is available,
                        each element in the list will represent individual accelerometer.
                        Each value represents a single "+/-" range.
                        For example, value 2 means that sensor is capable to measure
                        acceleration within the range of [-2 g, +2 g].
                      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.
                        Asset is considered moving if the positions of two consecutive trace points differ more
                        than the combined positioning accuracy + 100 meters.
                      type: integer
                    moving:
                      description: |
                        Asset is considered moving if the positions of two consecutive trace points differ more
                        than the combined positioning accuracy + 100 meters.
                      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.
                      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.
                  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
                    can send telemetry and, for example, use its GNSS receiver if it has one.
                    A tracker switches into flight mode once it detects that it's in an
                    airplane, and leaves that mode once airplane lands. Transport mode has to
                    be triggered by the user, and it's used, for example, during shipping from
                    continent to another. Sleep mode is used when a tracker is stored in
                    a warehouse, and it's triggered by entering or leaving some defined
                    geofence.
                  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".
                  example: "+491234567890"
                  pattern: ^\+[1-9]\d{1,14}$
                  type: string
                reportedSensorData:
                  description: |
                    The last known device sensor data reported by the device.
                  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.
                  minimum: 0
                  type: integer
              type: object
            timestamp:
              description: |
                Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

                The timestamp of the newest telemetry sent by the device. Note that this is not necessarily
                the timestamp of all the reported values in the reported shadow since the shadow retains
                values from previous ingestions if the latest telemetry did not conatain them.
              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.
              properties:
                payload:
                  description: |
                    A free format JSON object.
                    The maximum size is 1000B.
                  type: object
                system:
                  description: |
                    Contains device configuration settings.
                  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.
                        In order to disable tracking, one must at least provide the begin time of the disabling
                        period and define either position or sensor properties one wants to disable. One can also
                        disable both position and sensors at the same time. By default tracking is enabled.
                      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.
                          items:
                            properties:
                              begin:
                                description: |
                                  Begin time of the tracking disabling period.

                                  Begin must be smaller than end. Begin must be greater or equal to current time.
                                  Begin can be set without end. If there exists already end time which is earlier
                                  than given new begin time, the existing end time will be deleted.
                                format: date-time
                                type: string
                              end:
                                description: |
                                  End time of the tracking disabling period.

                                  End must be greater than begin. End must be greater or equal to current time.
                                  End can be set without begin if begin is already set.
                                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
                              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.
                                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.
                              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.
                              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.
                                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.
                              enum:
                                - ""
                              title: re-enable
                              type: string
                      type: object
                    lastModifiedGeofenceTimestamp:
                      description: |
                        The time of the last update to geofences that device is associated
                        with. This value is zero when device hasn't yet been associated with
                        any geofence. This is set by HERE Tracking when any geofences
                        associated with the device is modified or removed. Also adding and
                        removing geofence associations update this value.
                      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.
                      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.
                      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.
                  format: date-time
                  type: string
              type: object
            reported:
              description: |
                The `reported` shadow contains the most recent position, sensor readings and settings that the
                device has sent. The reported shadow may also contain additional properties generated by HERE 
                Tracking based on the device-ingested telemetry.
                Such properties are stored in `system.computed` property of the shadow.

                In case the most recent telemetry did not contain all the possible
                fields, the last known information will remain in the shadow. This means that one can
                see, for example, the last reported temperature or tracker firmware information in the reported shadow,
                even if the device did not send that information in the latest telemetry.
              properties:
                payload:
                  description: |
                    A free format JSON object.
                    The maximum size is 1000B.
                  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.
                    `stateVersion` property contains the version of the last
                    known `desired` state seen by the device.
                  properties:
                    client:
                      description: |
                        Information about the client device.
                      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
                            unit g (9.8 m/s^2). If more than one accelerometer is available,
                            each element in the list will represent individual accelerometer.
                            Each value represents a single "+/-" range.
                            For example, value 2 means that sensor is capable to measure
                            acceleration within the range of [-2 g, +2 g].
                          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.
                            Asset is considered moving if the positions of two consecutive trace points differ more
                            than the combined positioning accuracy + 100 meters.
                          format: date-time
                          type: string
                        moving:
                          description: |
                            Asset is considered moving if the positions of two consecutive trace points differ more
                            than the combined positioning accuracy + 100 meters.
                          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.
                          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.
                      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
                        can send telemetry and, for example, use its GNSS receiver if it has one.
                        A tracker switches into flight mode once it detects that it's in an
                        airplane, and leaves that mode once airplane lands. Transport mode has to
                        be triggered by the user, and it's used, for example, during shipping from
                        continent to another. Sleep mode is used when a tracker is stored in
                        a warehouse, and it's triggered by entering or leaving some defined
                        geofence.
                      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".
                      example: "+491234567890"
                      pattern: ^\+[1-9]\d{1,14}$
                      type: string
                    reportedSensorData:
                      description: |
                        The last known device sensor data reported by the device.
                      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.
                      minimum: 0
                      type: integer
                  type: object
                timestamp:
                  description: |
                    This describes when the reported measurements were taken.
                  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.
          properties:
            payload:
              description: |
                A free format JSON object.
                The maximum size is 1000B.
              type: object
            system:
              additionalProperties: false
              description: |
                Contains values for the device configuration. HERE Tracking uses these values
                for various application flows.
              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.
                    In order to disable tracking, one must at least provide the begin time of the disabling
                    period and define either position or sensor properties one wants to disable. One can also
                    disable both position and sensors at the same time. By default tracking is enabled.
                  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.
                      items:
                        properties:
                          begin:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                              Begin time of the tracking disabling period.

                              Begin must be smaller than end. Begin must be greater or equal to current time.
                              Begin can be set without end. If there exists already end time which is earlier
                              than given new begin time, the existing end time will be deleted.
                            maximum: 4102448400000
                            minimum: 2
                            type: integer
                          end:
                            description: |
                              Milliseconds elapsed since 1 January 1970 00:00:00 UTC

                              End time of the tracking disabling period.

                              End must be greater than begin. End must be greater or equal to current time.
                              End can be set without begin if begin is already set.
                            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
                          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.
                            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.
                          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.
                          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.
                            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.
                          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.
      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
            location.
          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.
            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: 2020-10-23T11:40:01Z
        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
        given, then the shipment report will include only metrics and shipments for the given shipment plan. If none
        is given, then the shipment report will include all shipment plans.
      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.
            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.
              type: number
            SHIPMENT_EARLY:
              description: |
                Number of devices currently in this event state.
              type: number
            SHIPMENT_ON_TIME:
              description: |
                Number of devices currently in this event state.
              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.
              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
        which started after the provided date.
      format: date-time
      type: string
    startedBefore:
      description: |
        Include successfully completed shipments of each shipment plan into the shipment report generation
        which started before the provided date.
      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.
                            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.
                            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.
                            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.
                            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.
                            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
                            enum:
                              - acceleration
                            type: string
                          eventType:
                            enum:
                              - EVENT
                            type: string
                        required:
                          - eventSource
                          - eventType
                    title: acceleration
                  - allOf:
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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
                            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.
                            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
                            enum:
                              - dwelling
                            type: string
                          eventType:
                            enum:
                              - DWELLING_STARTED
                              - DWELLING_ENDED
                            type: string
                          geofenceId:
                            description: |
                              An ID of a geofence that triggered the dwelling event
                            format: uuid
                            type: string
                        required:
                          - eventSource
                          - eventType
                          - geofenceId
                    title: dwelling
                  - allOf:
                      - properties:
                          ruleId:
                            description: |
                              Must be a valid UUIDv4.
                            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
                            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.
                            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
                            enum:
                              - utilization
                            type: string
                          eventType:
                            enum:
                              - UTILIZED
                              - UNUTILIZED
                            type: string
                        required:
                          - eventSource
                          - eventType
                    title: utilization
                  - properties:
                      eventSource:
                        description: |
                          The event source: stock rule
                        enum:
                          - stock
                        type: string
                      eventType:
                        description: |
                          The "OVERSTOCK" type - Events are triggered when the number of assets
                          is over a maximum stock volume.

                          The "UNDERSTOCK" type - Events are triggered when the number of assets
                          is under a minimum stock volume.

                          The "NORMAL_VOLUME" type - Events are triggered when the number of assets
                          is between the minimum stock volume and the maximum stock volume.
                        enum:
                          - OVERSTOCK
                          - NORMAL_VOLUME
                          - UNDERSTOCK
                        type: string
                      ruleId:
                        description: |
                          Must be a valid UUIDv4.
                        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.
                            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
                            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.
            The maximum size is 1000B.
          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.
          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
                contributing the scan data along with a GPS position.
              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.
            `stateVersion` property contains the version of the last
            known `desired` state seen by the device.
          properties:
            client:
              description: |
                Information about the client device.
              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
                    unit g (9.8 m/s^2). If more than one accelerometer is available,
                    each element in the list will represent individual accelerometer.
                    Each value represents a single "+/-" range.
                    For example, value 2 means that sensor is capable to measure
                    acceleration within the range of [-2 g, +2 g].
                  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.
              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
                can send telemetry and, for example, use its GNSS receiver if it has one.
                A tracker switches into flight mode once it detects that it's in an
                airplane, and leaves that mode once airplane lands. Transport mode has to
                be triggered by the user, and it's used, for example, during shipping from
                continent to another. Sleep mode is used when a tracker is stored in
                a warehouse, and it's triggered by entering or leaving some defined
                geofence.
              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".
              example: "+491234567890"
              pattern: ^\+[1-9]\d{1,14}$
              type: string
            reportedSensorData:
              description: |
                The last known device sensor data reported by the device.
              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.
              minimum: 0
              type: integer
          type: object
        timestamp:
          description: |
            Milliseconds elapsed since 1 January 1970 00:00:00 UTC.

            Specifies the time the device telemetry measurements were taken.
          maximum: 4102448400000
          minimum: 2
          type: integer
      required:
        - timestamp
      type: object
    timestampValue:
      properties:
        timestamp:
          description: |
            Timestamp of the beginning of the interval
          format: date-time
          type: string
        value:
          description: |
            The value of the report metric, which was specified in the `measure` parameter.

            * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
            * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
            * `measure`: `day` => `value`: the number of days the event lasted over the time frame
            * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

            When `value` is provided along with `timestamp`, the time frame is the specified interval.
            When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

            Additionally, if `method` parameter was given, the `value` represents
            average/cumulative/percentage of the calculated metric.
          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
          maxLength: 50
          minLength: 1
          type: string
        value:
          description: |
            The value of the report metric, which was specified in the `measure` parameter.

            * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
            * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
            * `measure`: `day` => `value`: the number of days the event lasted over the time frame
            * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

            When `value` is provided along with `timestamp`, the time frame is the specified interval.
            When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

            Additionally, if `method` parameter was given, the `value` represents
            average/cumulative/percentage of the calculated metric.
          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                                  |
        | ------------------------ | ---------------------------------------- |
        | PING_OUTSIDE_FENCE       | The device has transitioned outside the geofence. |
        | PING_IN_FENCE            | The device has transitioned inside the geofence. |
      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.
          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
        selected, the asset icon in asset.tracking.here.com application will be changed accordingly:

        * `Phone`
        * `Heavy Machinery`
        * `Tracker`
        * `Airport / Air Cargo`
        * `Warehouse`
        * `Returnable / Reusable`
        * `Generic`
        * `Hospital`
      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`
        to true in case you want to use the already existing deviceId and deviceSecret of the device
        to claim the device in this or other project in the future.
      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
            location.
          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.
            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
            location.
          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.
            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.
              type: number
            UTILIZED:
              description: |
                Number of devices currently in this event state.
              type: number
            eventSource:
              enum:
                - utilization
              type: string
          required:
            - eventSource
            - UTILIZED
            - UNUTILIZED
          type: object
        - properties:
            ruleId:
              description: |
                Must be a valid UUIDv4.
              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.

        * `measure`: `duration` => `value`: duration of the event in seconds over the time frame
        * `measure`: `occurrence` => `value`: number of event occurrences during the time frame
        * `measure`: `day` => `value`: the number of days the event lasted over the time frame
        * `measure`: `asset` => `value`: the number of assets that generated the event over the time frame

        When `value` is provided along with `timestamp`, the time frame is the specified interval.
        When `value` is provided with `trackingId` or `geofenceId`, the time frame is the whole report period.

        Additionally, if `method` parameter was given, the `value` represents
        average/cumulative/percentage of the calculated metric.
      type: number
    valueCount:
      allOf:
        - properties:
            EVENT:
              description: |
                Number of devices currently in this event state.
              type: number
            eventSource:
              enum:
                - acceleration
              type: string
          required:
            - eventSource
            - EVENT
          type: object
        - properties:
            ruleId:
              description: |
                Must be a valid UUIDv4.
              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.

        Users are authenticated using an OAuth 1.0 bearer token obtained using the `/users/v2/login` endpoint.

        Devices are authenticated using an OAuth 1.0 bearer token obtained using the `/v2/token` endpoint.

        Make a request using the bearer token for authentication
        ---

        Make a request with an `Authorization` header containing the obtained bearer token.

        Example:

        ```
            Authorization: Bearer h1.yxPIksZ0ViLq77f1Nh-9cg.NVgGBZVlCU8G7kjV_...
        ```

        > **Note:** For the available authentication options, see the [Identity & Access Management Guide](https://developer.here.com/documentation/identity-access-management/dev_guide/index.html).
      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.

        > **Note:** You must create a new signature for each token request to HERE Tracking. Signatures can only be used once.

        Create the Signature Base String
        ---

        The first step in creating a signature is to create the signature base string. This string contains the parameters to use when generating the signature.

        *1. To begin, make sure you have the information listed in the following table.*

        | Parameter                | Description                              |
        | ------------------------ | -----------------------------------------|
        | oauth\_consumer\_key     | The device ID for which you want to generate a token. |
        | oauth\_signature\_method | Always use "HMAC-SHA256".                 |
        | 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. |
        | 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. |
        | oauth\_version           | Always use "1.0".                         |

        *2. Combine these values into a single string by following these steps:*

           1. URL encode every key and value.
           2. Sort the list of key-value pairs alphabetically by key.
           3. Concatenate each key/value pair, separating each with an ampersand character ("&").

        The result is a parameter string that looks like this (line breaks are added for legibility):

           ```
           oauth_consumer_key=47164fb0-b7b3-49e8-891b-650270b82cf2
           &oauth_nonce=LIIpk4
           &oauth_signature_method=HMAC-SHA256
           &oauth_timestamp=1513634609
           &oauth_version=1.0
           ```

        *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:*

           ```
           POST&https://tracking.api.here.com/v2/token&<URL encoded parameter string>
           ```

           The base string consists of:

           1. The HTTP method in caps (POST) followed by an ampersand ("&")
           2. The URL of the HERE Tracking token endpoint followed by an ampersand ("&")
           3. The URL-encoded parameter string.

           For example (line breaks are added for legibility):

           ```
           POST
            &https%3A%2F%2Ftracking.api.here.com%2Fv2%2Ftoken
            &oauth_consumer_key%3D47164fb0-b7b3-49e8-891b-650270b82cf2%26
            oauth_nonce%3DLIIpk4%26oauth_signature_method%3DHMAC-SHA256%26
            oauth_timestamp%3D1513634609%26oauth_version%3D1.0
           ```

           > **Note:** The URL-encoded base string should contain exactly two ampersands ("&").

        Create the signature
        ---

        The signing key used to sign the base string is the `deviceSecret` followed by an ampersand ("&").

        Create 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.

        Request the token
        ---

        Make a `POST` request to this endpoint with an `Authorization` header constructed from the above parameters and the generated signature.

        Example:

        ```
            Authorization: OAuth oauth_consumer_key="47164fb0-b7b3-49e8-891b-650270b82cf2",
                oauth_signature_method="HMAC-SHA256",
                oauth_timestamp="1513634609",
                oauth_nonce="LIIpk4",
                oauth_version="1.0",
                oauth_signature="pQ9EJX14L736B%2Br7uZl4yQlO6Xw%3D"
        ```
      scheme: oauth
      type: http
