HERE Authorization Information API

The Authorization Information API from HERE — 4 operation(s) for authorization information.

Operations 4

GET /user/me/authorization Get my authorization details #
GET /user/me/authorization/permissions Get my permissions #
GET /app/me/authorization Introspect application authorizations #
GET /app/me/authorization/permissions Get my app permissions #

Documentation

📖
Documentation
https://docs.here.com/identity-and-access-management/docs
📖
APIReference
https://docs.here.com/identity-and-access-management/reference
📖
Documentation
https://docs.here.com/data-api/docs
📖
APIReference
https://docs.here.com/data-api/reference
📖
Documentation
https://docs.here.com/usage/docs
📖
APIReference
https://docs.here.com/usage/reference
📖
Documentation
https://docs.here.com/destination-weather/docs
📖
APIReference
https://docs.here.com/destination-weather/reference
📖
Documentation
https://docs.here.com/ev-products/docs
📖
APIReference
https://docs.here.com/ev-products/reference
📖
Documentation
https://docs.here.com/fuel-prices/docs
📖
APIReference
https://docs.here.com/fuel-prices/reference
📖
Documentation
https://docs.here.com/geocoding-and-search/docs
📖
APIReference
https://docs.here.com/geocoding-and-search/reference
📖
Documentation
https://docs.here.com/routing/docs
📖
APIReference
https://docs.here.com/routing/reference
📖
Documentation
https://docs.here.com/positioning/docs
📖
APIReference
https://docs.here.com/positioning/reference
📖
Documentation
https://docs.here.com/indoor-map/docs
📖
APIReference
https://docs.here.com/indoor-map/reference
📖
Documentation
https://docs.here.com/transit/docs
📖
APIReference
https://docs.here.com/transit/reference
📖
Documentation
https://docs.here.com/map-attributes/docs
📖
APIReference
https://docs.here.com/map-attributes/reference
📖
Documentation
https://docs.here.com/map-rendering/docs
📖
APIReference
https://docs.here.com/map-rendering/reference
📖
Documentation
https://docs.here.com/workspace/docs
📖
APIReference
https://docs.here.com/workspace/reference
📖
Documentation
https://docs.here.com/tour-planning/docs
📖
APIReference
https://docs.here.com/tour-planning/reference
📖
Documentation
https://docs.here.com/tracking/docs
📖
APIReference
https://docs.here.com/tracking/reference
📖
Documentation
https://docs.here.com/traffic-api/docs
📖
APIReference
https://docs.here.com/traffic-api/reference
📖
Documentation
https://docs.here.com/wego-pro/docs
📖
APIReference
https://docs.here.com/wego-pro/reference

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/here-authorization-information-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

here-authorization-information-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Here Account v1 Authorization Information API
  version: 1.1.x
  description: This specification describes the Here Account v1 APIs
servers:
- url: https://account.api.here.com
security:
- Bearer: []
tags:
- name: Authorization Information
paths:
  /user/me/authorization:
    get:
      tags:
      - Authorization Information
      summary: Get my authorization details
      operationId: Here Account v1 APIs userAuthorizationDetails
      description: 'Get the authorization details of the user represented by the Authorization header.

        The response includes all roles and permissions of the user.'
      responses:
        '200':
          description: 'Ok

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationResponse'
        '404':
          description: '* 404600 - Authorization record is not found

            '
        default:
          description: "An error occurred while processing the request. The following common error codes apply to all endpoints.\n## General Error Codes\n* httpStatus 400, errorCode 400002: Invalid JSON.\n* httpStatus 400, errorCode 400003: Content-Type header missing.\n* httpStatus 400, errorCode 400004: Content-Type header something else than 'application/json'.\n* httpStatus 400, errorCode 400200: Received invalid data. See 'errorFields' for more information.\n  * errorFields.errorCode 400201: Missing required field. 'errorFields.name' describes which field was missing.\n  * errorFields.errorCode 400202: Value cannot be empty. 'errorFields.name' describes which field was empty.\n  * errorFields.errorCode 400203: Invalid value. 'errorFields.name' describes which field had illegal characters (Illegal characters are all control characters, non-breaking space, and * / < > \\ | )\n  * errorFields.errorCode 400204: Invalid system generated value. 'errorFields.name' describes which field had illegal characters.\n  * errorFields.errorCode 400216: Not a valid array value. 'errorFields.name' describes which field was expecting an array value.\n  * errorFields.errorCode 400217: Not a valid string value. 'errorFields.name' describes which field was expecting a string value.\n  * errorFields.errorCode 400218: Not a valid JSON object. 'errorFields.name' describes which field was expecting a JSON object value.\n* httpStatus 400, errorCode 400255: Invalid realm format.\n* httpStatus 400, errorCode 400917: Unable to perform request. Size limit exceeded.\n* httpStatus 401, errorCode 401300: Invalid client credentials.\n* httpStatus 401, errorCode 401302: Client does not have access to the endpoint.\n* httpStatus 401, errorCode 401424: Access key has been disabled.\n* httpStatus 429, errorCode 429002: Request blocked because too many requests were made. Please wait for a while before making a new request.\n## Token Validation Error Codes\n* httpStatus 401, errorCode 400300: Invalid characters in access token.\n* httpStatus 401, errorCode 400601: Unsupported token format.\n* httpStatus 401, errorCode 400600: Expired token.\n* httpStatus 401, errorCode 401200: Authorization header missing.\n* httpStatus 401, errorCode 401201: Invalid Authorization header format, expecting Bearer format.\n* httpStatus 401, errorCode 401303: Wrong token type. (example: passed user token in place of client token)\n* httpStatus 401, errorCode 401701: Access Token no longer valid.\n* httpStatus 401, errorCode 401600: No account found for given account Id.\n* httpStatus 401, errorCode 401510: User: {ID} has expired.\n* httpStatus 401, errorCode 401500: User: {ID} is not enabled.\n* httpStatus 401, errorCode 404660: No app exists with the given Id.\n* httpStatus 401, errorCode 401311: Requesting client status is not active.\n## Client Signed Request Error Codes\n* httpStatus 401, errorCode 401202: Malformed OAuth 1.0 header (ex. duplicated parameters, missing parameters).\n* httpStatus 401, errorCode 401204: Time stamp is outside the valid period.\n* httpStatus 401, errorCode 401205: Unsupported value for signature method.\n* httpStatus 401, errorCode 401206: Unsupported value for \"oauth_version\" parameter - should be 1.0.\n* httpStatus 401, errorCode 401207: Nonce already consumed.\n* httpStatus 401, errorCode 401300: Invalid client credentials / signature mismatch.\n* httpStatus 401, errorCode 401310: Invalid signature. Attempt to use client ID instead of access key identifier for consumer key.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
      - $ref: '#/components/parameters/includeAllPermissionsOrNoneParam'
  /user/me/authorization/permissions:
    get:
      tags:
      - Authorization Information
      summary: Get my permissions
      operationId: Here Account v1 APIs getMyPermissions
      description: Get a pageable list of permissions assigned to you
      parameters:
      - $ref: '#/components/parameters/countParam'
      - $ref: '#/components/parameters/pageTokenParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionsListPageToken'
        '400':
          description: '* 400001 - count must be Integer 0 or greater.

            * 400202 - Field ''pageToken'' cannot be empty.

            * 400203 - Invalid characters for page token query string.

            '
        default:
          description: "An error occurred while processing the request. The following common error codes apply to all endpoints.\n## General Error Codes\n* httpStatus 400, errorCode 400002: Invalid JSON.\n* httpStatus 400, errorCode 400003: Content-Type header missing.\n* httpStatus 400, errorCode 400004: Content-Type header something else than 'application/json'.\n* httpStatus 400, errorCode 400200: Received invalid data. See 'errorFields' for more information.\n  * errorFields.errorCode 400201: Missing required field. 'errorFields.name' describes which field was missing.\n  * errorFields.errorCode 400202: Value cannot be empty. 'errorFields.name' describes which field was empty.\n  * errorFields.errorCode 400203: Invalid value. 'errorFields.name' describes which field had illegal characters (Illegal characters are all control characters, non-breaking space, and * / < > \\ | )\n  * errorFields.errorCode 400204: Invalid system generated value. 'errorFields.name' describes which field had illegal characters.\n  * errorFields.errorCode 400216: Not a valid array value. 'errorFields.name' describes which field was expecting an array value.\n  * errorFields.errorCode 400217: Not a valid string value. 'errorFields.name' describes which field was expecting a string value.\n  * errorFields.errorCode 400218: Not a valid JSON object. 'errorFields.name' describes which field was expecting a JSON object value.\n* httpStatus 400, errorCode 400255: Invalid realm format.\n* httpStatus 400, errorCode 400917: Unable to perform request. Size limit exceeded.\n* httpStatus 401, errorCode 401300: Invalid client credentials.\n* httpStatus 401, errorCode 401302: Client does not have access to the endpoint.\n* httpStatus 401, errorCode 401424: Access key has been disabled.\n* httpStatus 429, errorCode 429002: Request blocked because too many requests were made. Please wait for a while before making a new request.\n## Token Validation Error Codes\n* httpStatus 401, errorCode 400300: Invalid characters in access token.\n* httpStatus 401, errorCode 400601: Unsupported token format.\n* httpStatus 401, errorCode 400600: Expired token.\n* httpStatus 401, errorCode 401200: Authorization header missing.\n* httpStatus 401, errorCode 401201: Invalid Authorization header format, expecting Bearer format.\n* httpStatus 401, errorCode 401303: Wrong token type. (example: passed user token in place of client token)\n* httpStatus 401, errorCode 401701: Access Token no longer valid.\n* httpStatus 401, errorCode 401600: No account found for given account Id.\n* httpStatus 401, errorCode 401510: User: {ID} has expired.\n* httpStatus 401, errorCode 401500: User: {ID} is not enabled.\n* httpStatus 401, errorCode 404660: No app exists with the given Id.\n* httpStatus 401, errorCode 401311: Requesting client status is not active.\n## Client Signed Request Error Codes\n* httpStatus 401, errorCode 401202: Malformed OAuth 1.0 header (ex. duplicated parameters, missing parameters).\n* httpStatus 401, errorCode 401204: Time stamp is outside the valid period.\n* httpStatus 401, errorCode 401205: Unsupported value for signature method.\n* httpStatus 401, errorCode 401206: Unsupported value for \"oauth_version\" parameter - should be 1.0.\n* httpStatus 401, errorCode 401207: Nonce already consumed.\n* httpStatus 401, errorCode 401300: Invalid client credentials / signature mismatch.\n* httpStatus 401, errorCode 401310: Invalid signature. Attempt to use client ID instead of access key identifier for consumer key.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /app/me/authorization:
    get:
      tags:
      - Authorization Information
      summary: Introspect application authorizations
      operationId: Here Account v1 APIs introspectApplicationAuthorization
      description: Retrieve the application authorization associated with the application.
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppAuthorizationResponse'
        '401':
          description: '* 404660 - No app exists with the given Id.

            '
        default:
          description: "An error occurred while processing the request. The following common error codes apply to all endpoints.\n## General Error Codes\n* httpStatus 400, errorCode 400002: Invalid JSON.\n* httpStatus 400, errorCode 400003: Content-Type header missing.\n* httpStatus 400, errorCode 400004: Content-Type header something else than 'application/json'.\n* httpStatus 400, errorCode 400200: Received invalid data. See 'errorFields' for more information.\n  * errorFields.errorCode 400201: Missing required field. 'errorFields.name' describes which field was missing.\n  * errorFields.errorCode 400202: Value cannot be empty. 'errorFields.name' describes which field was empty.\n  * errorFields.errorCode 400203: Invalid value. 'errorFields.name' describes which field had illegal characters (Illegal characters are all control characters, non-breaking space, and * / < > \\ | )\n  * errorFields.errorCode 400204: Invalid system generated value. 'errorFields.name' describes which field had illegal characters.\n  * errorFields.errorCode 400216: Not a valid array value. 'errorFields.name' describes which field was expecting an array value.\n  * errorFields.errorCode 400217: Not a valid string value. 'errorFields.name' describes which field was expecting a string value.\n  * errorFields.errorCode 400218: Not a valid JSON object. 'errorFields.name' describes which field was expecting a JSON object value.\n* httpStatus 400, errorCode 400255: Invalid realm format.\n* httpStatus 400, errorCode 400917: Unable to perform request. Size limit exceeded.\n* httpStatus 401, errorCode 401300: Invalid client credentials.\n* httpStatus 401, errorCode 401302: Client does not have access to the endpoint.\n* httpStatus 401, errorCode 401424: Access key has been disabled.\n* httpStatus 429, errorCode 429002: Request blocked because too many requests were made. Please wait for a while before making a new request.\n## Token Validation Error Codes\n* httpStatus 401, errorCode 400300: Invalid characters in access token.\n* httpStatus 401, errorCode 400601: Unsupported token format.\n* httpStatus 401, errorCode 400600: Expired token.\n* httpStatus 401, errorCode 401200: Authorization header missing.\n* httpStatus 401, errorCode 401201: Invalid Authorization header format, expecting Bearer format.\n* httpStatus 401, errorCode 401303: Wrong token type. (example: passed user token in place of client token)\n* httpStatus 401, errorCode 401701: Access Token no longer valid.\n* httpStatus 401, errorCode 401600: No account found for given account Id.\n* httpStatus 401, errorCode 401510: User: {ID} has expired.\n* httpStatus 401, errorCode 401500: User: {ID} is not enabled.\n* httpStatus 401, errorCode 404660: No app exists with the given Id.\n* httpStatus 401, errorCode 401311: Requesting client status is not active.\n## Client Signed Request Error Codes\n* httpStatus 401, errorCode 401202: Malformed OAuth 1.0 header (ex. duplicated parameters, missing parameters).\n* httpStatus 401, errorCode 401204: Time stamp is outside the valid period.\n* httpStatus 401, errorCode 401205: Unsupported value for signature method.\n* httpStatus 401, errorCode 401206: Unsupported value for \"oauth_version\" parameter - should be 1.0.\n* httpStatus 401, errorCode 401207: Nonce already consumed.\n* httpStatus 401, errorCode 401300: Invalid client credentials / signature mismatch.\n* httpStatus 401, errorCode 401310: Invalid signature. Attempt to use client ID instead of access key identifier for consumer key.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
      - $ref: '#/components/parameters/includeAllPermissionsOrNoneParam'
  /app/me/authorization/permissions:
    get:
      tags:
      - Authorization Information
      summary: Get my app permissions
      security:
      - clientToken: []
      operationId: Here Account v1 APIs getMyAppPermissions
      description: Get a pageable list of permissions directly assigned to your application. Permissions assigned indirectly via group memberships or policy or plans are not returned in this response.
      parameters:
      - $ref: '#/components/parameters/countParam'
      - $ref: '#/components/parameters/pageTokenParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionsListPageToken'
        '400':
          description: '* 400001 - count must be Integer 0 or greater.

            * 400202 - Field ''pageToken'' cannot be empty.

            * 400203 - Invalid characters for page token query string.

            * 404660 - No app exists with the given Id.

            '
        default:
          description: "An error occurred while processing the request. The following common error codes apply to all endpoints.\n## General Error Codes\n* httpStatus 400, errorCode 400002: Invalid JSON.\n* httpStatus 400, errorCode 400003: Content-Type header missing.\n* httpStatus 400, errorCode 400004: Content-Type header something else than 'application/json'.\n* httpStatus 400, errorCode 400200: Received invalid data. See 'errorFields' for more information.\n  * errorFields.errorCode 400201: Missing required field. 'errorFields.name' describes which field was missing.\n  * errorFields.errorCode 400202: Value cannot be empty. 'errorFields.name' describes which field was empty.\n  * errorFields.errorCode 400203: Invalid value. 'errorFields.name' describes which field had illegal characters (Illegal characters are all control characters, non-breaking space, and * / < > \\ | )\n  * errorFields.errorCode 400204: Invalid system generated value. 'errorFields.name' describes which field had illegal characters.\n  * errorFields.errorCode 400216: Not a valid array value. 'errorFields.name' describes which field was expecting an array value.\n  * errorFields.errorCode 400217: Not a valid string value. 'errorFields.name' describes which field was expecting a string value.\n  * errorFields.errorCode 400218: Not a valid JSON object. 'errorFields.name' describes which field was expecting a JSON object value.\n* httpStatus 400, errorCode 400255: Invalid realm format.\n* httpStatus 400, errorCode 400917: Unable to perform request. Size limit exceeded.\n* httpStatus 401, errorCode 401300: Invalid client credentials.\n* httpStatus 401, errorCode 401302: Client does not have access to the endpoint.\n* httpStatus 401, errorCode 401424: Access key has been disabled.\n* httpStatus 429, errorCode 429002: Request blocked because too many requests were made. Please wait for a while before making a new request.\n## Token Validation Error Codes\n* httpStatus 401, errorCode 400300: Invalid characters in access token.\n* httpStatus 401, errorCode 400601: Unsupported token format.\n* httpStatus 401, errorCode 400600: Expired token.\n* httpStatus 401, errorCode 401200: Authorization header missing.\n* httpStatus 401, errorCode 401201: Invalid Authorization header format, expecting Bearer format.\n* httpStatus 401, errorCode 401303: Wrong token type. (example: passed user token in place of client token)\n* httpStatus 401, errorCode 401701: Access Token no longer valid.\n* httpStatus 401, errorCode 401600: No account found for given account Id.\n* httpStatus 401, errorCode 401510: User: {ID} has expired.\n* httpStatus 401, errorCode 401500: User: {ID} is not enabled.\n* httpStatus 401, errorCode 404660: No app exists with the given Id.\n* httpStatus 401, errorCode 401311: Requesting client status is not active.\n## Client Signed Request Error Codes\n* httpStatus 401, errorCode 401202: Malformed OAuth 1.0 header (ex. duplicated parameters, missing parameters).\n* httpStatus 401, errorCode 401204: Time stamp is outside the valid period.\n* httpStatus 401, errorCode 401205: Unsupported value for signature method.\n* httpStatus 401, errorCode 401206: Unsupported value for \"oauth_version\" parameter - should be 1.0.\n* httpStatus 401, errorCode 401207: Nonce already consumed.\n* httpStatus 401, errorCode 401300: Invalid client credentials / signature mismatch.\n* httpStatus 401, errorCode 401310: Invalid signature. Attempt to use client ID instead of access key identifier for consumer key.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    pageTokenParam:
      in: query
      name: pageToken
      schema:
        type: string
      description: 'The pageToken to be used for search.  If omitted, the first

        page is returned.

        '
    countParam:
      in: query
      name: count
      schema:
        type: integer
      description: The number of records to be returned. Defaults to 100.
    includeAllPermissionsOrNoneParam:
      name: includeAllPermissions
      required: false
      in: query
      description: 'If true, include the permissions associated with the

        user inline in the response.  Otherwise, omit the permissions

        attribute from the response.

        '
      schema:
        type: boolean
        default: true
  schemas:
    Policy:
      type: object
      properties:
        policyId:
          type: string
          example: null
          description: 'Identifies the policy that is being attached to the client

            '
        contractId:
          type: string
          description: 'Identifies the contract that the permissions from the policy will be associated with.  This is required if the policy is a service scoped policy for a service that requires contracts.

            '
      required:
      - policyId
      example:
      - policyId: POLICY-e5e07c82-d6b5-417a-b180-076508a3a61d
        contractId: CONTRACT-f7d85359-3df9-47c2-8808-836cfb5ef258
      - policyId: POLICY-99b7c7d7-867a-4573-8730-4689be1718c9
        contractId: CONTRACT-82d1957f-f2a4-4188-a8dd-d35afb4a710b
    PermissionsListPageToken:
      type: object
      description: Permissions list response.
      properties:
        total:
          type: integer
          description: The total number of records that match the search criteria.
          example: 10
        count:
          type: integer
          description: The number of records returned.
          example: 3
        pageToken:
          type: string
          description: The page token used for pagination.
          example: 7afd7f8e94eb4844ba45
        data:
          type: array
          description: List of Permissions
          items:
            $ref: '#/components/schemas/PermissionsResponse'
    PolicyLink:
      type: object
      properties:
        id:
          type: string
        policyId:
          type: string
        contractId:
          type: string
        serviceId:
          type: string
        allowUpdates:
          type: boolean
    App:
      type: object
      properties:
        clientId:
          type: string
          description: 'Identifier for the client/application. If provided, identifier should be present and active in Druid

            '
        name:
          type: string
          description: 'Human readable name of the client.  This field is required unless a clientId is provided

            '
        description:
          type: string
          description: 'Prose description of the client

            '
        status:
          type: string
          description: 'Current status of the application.

            '
        hrn:
          type: string
          description: 'HRN of the application.

            '
        realm:
          type: string
          description: 'realm of the application.

            '
      example:
        clientId: DdcIHVVKuMvTQrdci1FW
        name: My Third Party App
        description: This is a longer description of My Third Party App.
        status: active
        hrn: hrn:here:account::HERE:app/DdcIHVVKuMvTQrdci1FW
    PlanLink:
      type: object
      properties:
        id:
          type: string
          description: 'The unique identifier of the linked plan.

            '
          example: PLANLINK-d5e0f0ca-d122-4810-88a5-08fcade9e2d9
        planId:
          type: string
          description: 'Identifies the plan that this attachment is associated with.

            '
          example: PLAN-348e6490-8c6a-4528-83de-0a00692c4a7c
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy'
          description: 'Policy contracts for each policy in the plan.

            '
        allowUpdates:
          type: boolean
          description: Identifies if plan is mutable
          example: true
      required:
      - id
      - planId
    RoleResponse:
      type: object
      properties:
        id:
          type: string
          description: 'The unique identifier of the role in the context of the user.  Begins with ROLE-

            '
        name:
          type: string
          description: 'The Role the user has in EUM. Valid values are hereadmin, reseller, serviceseller, customermanager, contractmanager

            '
        value:
          type: string
          description: 'For resellers, it''s the customer ID of the customer they manage. For customer admins, it''s the app ID of the app they administrate.

            '
      required:
      - name
      example:
      - id: ROLE-3742ed97-e80f-4b80-9c2a-2f2ef02c7cce
        name: contractmanager
        value: CONTRACT-cfe1d66c-86fa-4212-8751-b5048e1489a0
      - id: ROLE-a16ecb4b-ad74-4636-9c3a-02f2925ac9e7
        name: reseller
        value: CUST-d4ffefb0-0e13-11e5-a6c0-169ec7b7f925
    AuthorizationResponse:
      title: AuthorizationResponse
      type: object
      description: 'User Information, including assigned roles and permissions.

        '
      properties:
        user:
          $ref: '#/components/schemas/User'
        roles:
          type: array
          items:
            $ref: '#/components/schemas/RoleResponse'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/PermissionsResponse'
        status:
          type: string
          description: 'The status of this authorization.

            '
          enum:
          - created
          - invited
          - active
          - inactive
          example: active
        creatorUserId:
          type: string
          description: 'The unique identifier of the user that created the authorization.

            '
          example: HERE-1fc4a1dc-0deb-11e5-a6c0-1697f925da21
        creatorClientId:
          type: string
          description: 'Client ID from which the authorization was created.

            '
          example: bKmnBQVXCTxpP8A6Jp95a
        createdTime:
          type: integer
          format: int64
          description: 'Unix time (seconds) when the authorization was created.

            '
          example: 1433142351
        updatedTime:
          type: integer
          format: int64
          description: 'Unix time (seconds) when the authorization was last updated.

            '
          example: 1433144884
    User:
      type: object
      properties:
        userId:
          type: string
          description: 'The unique identifier of the user. Begins with AUTHINVITE if status is invited otherwise a HERE id.

            '
        realm:
          type: string
          description: 'Realm of the user. Since v2.74.

            '
        email:
          type: string
          description: 'Email address of the user. Present in all status states.

            '
        firstname:
          type: string
          description: 'The first name of the user. Only present if status is active.

            '
        lastname:
          type: string
          description: 'The last name of the user. Only present if status is active.

            '
        url:
          type: string
          description: 'The url from the authorization invite for this user. Only present if status is invited.

            '
        clientData:
          type: string
          description: 'The additional client data from the authorization invite for this user. Only present if status is invited.

            '
        hrn:
          type: string
          description: 'HRN of the user.

            '
      required:
      - userId
      - email
      example:
        userId: HERE-c184c17c-0deb-11e5-a6c0-1697f925ec7b
        realm: HERE
        firstname: Jack
        lastname: Sparrow
        email: jsparrow@example.com
        url: https://testUrl.com
        clientdata: Some Test Client Data
        hrn: hrn:here:account::HERE:user/HERE-c184c17c-0deb-11e5-a6c0-1697f925ec7b
    PermissionsResponse:
      type: object
      properties:
        id:
          type: string
          description: 'The unique identifier of the permission in the context of the user.  Begins with PERM-

            '
        effect:
          type: string
          description: 'Allow or Deny

            '
        action:
          type: string
          description: 'The specific action identifier that this permission is controlling access to for the specific associated service.

            '
        resource:
          type: string
          description: 'The resource identifier that this permission is controlling access to for the given action.  May identify multiple resources via wildcard syntax.

            '
        expiresAt:
          type: string
          format: date-time
          example: '2030-05-26T19:30:00Z'
          description: The UTC time when the permission expires.
        serviceId:
          type: string
          description: 'Identifies the service that this permission is associated with.

            '
        contractId:
          type: string
          description: 'Identifies the contract, and therefore the customer and service that this permission is associated with.

            '
        customerId:
          type: string
          description: 'Identifies the customer that this permission is associated with.

            '
      example:
      - id: PERM-5d595ef9-d081-4ea5-b404-4c7bd816aec6
        effect: allow
        action: share
        resource: hrn:here:datastore:::*
        expiresAt: '2022-10-18T03:20:33.352Z'
        serviceId: SERVICE-fe2fe02d-a16d-4dab-aacc-7605aa37294e
        contractId: CONTRACT-82d1957f-f2a4-4188-a8dd-d35afb4a710b
        customerId: CUST-0e13ffb0-fd4e-1697-11e5-a6c0f925ec7b
      - id: PERM-a72ab4a6-09bf-4960-9617-186976256f77
        effect: allow
        action: create
        serviceId: SERVICE-fe2fe02d-a16d-4dab-aacc-7605aa37294e
        contractId: CONTRACT-82d1957f-f2a4-4188-a8dd-d35afb4a710b
        customerId: CUST-0e13ffb0-fd4e-1697-11e5-a6c0f925ec7b
      - id: PERM-226aa70d-83f7-4c63-a9de-b99fa8bcb1a5
        effect: deny
        action: update
        serviceId: SERVICE-c425116a-03bf-40ce-9cef-7fa0ee122a65
        contractId: CONTRACT-77e05a82-f80b-4f85-ab03-69a8bb3830ce
        customerId: CUST-c34114a5-152f-4f82-b0ad-c90162471e95
    ErrorResponse:
      type: object
      properties:
        errorId:
          type: string
          description: Unique id for the error. This is searchable from HERE Account logs.
          example: ERROR-9d862c5a-4cfd-4780-8be4-2728b42849e1
        httpStatus:
          type: integer
          description: HTTP status code of the response
          example: 401
        errorCode:
          type: integer
          description: 'Error code representing the specific error. If the ''errorFields'' element is present, it will have precise error codes.

            '
          example: 401300
        message:
          type: string
          description: 'Descriptive message to help with development.  Note that the value of this field is **NOT** guaranteed to be consistent across releases and should **NOT** be coded against.

            '
          example: Invalid client credentials.
        errorFields:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: 'Name of the field that had an error. Will be blank in case the error was caused when comparing multiple fields.

                  '
                example: Received invalid data.  See json element 'errorFields' for more information.
              errorCode:
                type: integer
                description: 'More detailed error code. Needs to be paired with ''errorFields.name'' to get the exact error.

                  '
                example: 400201
              message:
                type: string
                description: 'Descriptive message to help with development.  Note that the value of this field is **NOT** guaranteed to be consistent across releases and should **NOT** be coded against.

                  '
                example: This field is required.
    AppAuthorizationResponse:
      type: object
      description: 'App authorization information.

        '
      properties:
        app:
          $ref: '#/components/schemas/App'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/PermissionsResponse'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/PolicyLink'
          example:
          - id: POLICYLINK-8d4dc5c1-bc0d-4b67-b90d-3b88d46013e0
            policyId: POLICY-99b7c7d7-867a-4573-8730-4689be1718c9
            contractId: CONTRACT-82d1957f-f2a4-4188-a8dd-d35afb4a710b
        plans:
          type: array
          description: 'Policy contracts for each policy in the plan

            '
          items:
            $ref: '#/components/schemas/PlanLink'
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer Access Token issued to either the User or Application.
externalDocs:
  description: The developer guide and related API references are available here.
  url: https://www.here.com/docs/category/identity-and-access-management