Qlik Sense tenant key provider management API

The tenant key provider management API from Qlik Sense — 3 operation(s) for tenant key provider management.

Operations 4

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/v1/encryption/keyproviders List AWS KMS key providers · List AWS key providers registered for the tenant #
Ask an LLM
“Which customer-managed AWS KMS keys are registered for my tenant?”
“Does this list include the default Qlik managed key?”
Tell an agent
List the AWS key providers registered for my tenant.
Show my registered AWS-KMS keys only.
POST /api/v1/encryption/keyproviders Register an AWS KMS key · Register a new multi-region AWS-KMS key #
Ask an LLM
“Can I bring my own multi-region AWS KMS key to encrypt tenant data?”
“What region requirements must my KMS key meet?”
Tell an agent
Register AWS KMS key {arn} named {name} with provider {keyprovider}.
Add key {arn} as {name} with replica keys {replicaKeys}.
GET /api/v1/encryption/keyproviders/actions/list List all key providers including default · Lists all key providers registered for the tenant #
Ask an LLM
“Can I see every key provider on the tenant, including the Qlik default?”
“Which key provider is the tenant currently using?”
Tell an agent
List all key providers including the default Qlik one.
Show every encryption key provider on the tenant.
POST /api/v1/encryption/keyproviders/actions/reset-to-default-provider Revert to the Qlik managed encryption key · Reset tenant key provider to default Qlik managed provider #
Ask an LLM
“Can I switch my tenant back to the default Qlik managed key?”
“What happens if the tenant already uses the Qlik provider when I reset?”
Tell an agent
Reset tenant encryption to the default Qlik managed provider.
Stop using my own KMS key and go back to Qlik's key.

Documentation

📖
Documentation
https://qlik.dev/apis/rest/analytics/apps/
📖
APIReference
https://qlik.dev/apis/rest/analytics/apps/
📖
Documentation
https://qlik.dev/apis/rest/analytics/change-stores/
📖
APIReference
https://qlik.dev/apis/rest/analytics/change-stores/
📖
Documentation
https://qlik.dev/apis/rest/analytics/discovery-agent/adaptive-cards/
📖
APIReference
https://qlik.dev/apis/rest/analytics/discovery-agent/adaptive-cards/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-apps/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-apps/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-links/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-links/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-requests/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-requests/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-settings/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-settings/
📖
Documentation
https://qlik.dev/apis/rest/api-keys/
📖
APIReference
https://qlik.dev/apis/rest/api-keys/
📖
Documentation
https://qlik.dev/apis/rest/apps/
📖
APIReference
https://qlik.dev/apis/rest/apps/
📖
Documentation
https://qlik.dev/apis/rest/assistants/
📖
APIReference
https://qlik.dev/apis/rest/assistants/
📖
Documentation
https://qlik.dev/apis/rest/audits/
📖
APIReference
https://qlik.dev/apis/rest/audits/
📖
Documentation
https://qlik.dev/apis/rest/automation-connections/
📖
APIReference
https://qlik.dev/apis/rest/automation-connections/
📖
Documentation
https://qlik.dev/apis/rest/automation-connectors/
📖
APIReference
https://qlik.dev/apis/rest/automation-connectors/
📖
Documentation
https://qlik.dev/apis/rest/automations/
📖
APIReference
https://qlik.dev/apis/rest/automations/
📖
Documentation
https://qlik.dev/apis/rest/automl-deployments/
📖
APIReference
https://qlik.dev/apis/rest/automl-deployments/
📖
Documentation
https://qlik.dev/apis/rest/automl-predictions/
📖
APIReference
https://qlik.dev/apis/rest/automl-predictions/
📖
Documentation
https://qlik.dev/apis/rest/banners/
📖
APIReference
https://qlik.dev/apis/rest/banners/
📖
Documentation
https://qlik.dev/apis/rest/brands/
📖
APIReference
https://qlik.dev/apis/rest/brands/
📖
Documentation
https://qlik.dev/apis/rest/collections/
📖
APIReference
https://qlik.dev/apis/rest/collections/
📖
Documentation
https://qlik.dev/apis/rest/conditions/
📖
APIReference
https://qlik.dev/apis/rest/conditions/
📖
Documentation
https://qlik.dev/apis/rest/consumption/
📖
APIReference
https://qlik.dev/apis/rest/consumption/
📖
Documentation
https://qlik.dev/apis/rest/core/auth-settings/
📖
APIReference
https://qlik.dev/apis/rest/core/auth-settings/
📖
Documentation
https://qlik.dev/apis/rest/core/ip-policies/
📖
APIReference
https://qlik.dev/apis/rest/core/ip-policies/
📖
Documentation
https://qlik.dev/apis/rest/csp-origins/
📖
APIReference
https://qlik.dev/apis/rest/csp-origins/
📖
Documentation
https://qlik.dev/apis/rest/csrf-token/
📖
APIReference
https://qlik.dev/apis/rest/csrf-token/
📖
Documentation
https://qlik.dev/apis/rest/data-alerts/
📖
APIReference
https://qlik.dev/apis/rest/data-alerts/
📖
Documentation
https://qlik.dev/apis/rest/data-assets/
📖
APIReference
https://qlik.dev/apis/rest/data-assets/
📖
Documentation
https://qlik.dev/apis/rest/data-connections/
📖
APIReference
https://qlik.dev/apis/rest/data-connections/
📖
Documentation
https://qlik.dev/apis/rest/data-credentials/
📖
APIReference
https://qlik.dev/apis/rest/data-credentials/
📖
Documentation
https://qlik.dev/apis/rest/data-files/
📖
APIReference
https://qlik.dev/apis/rest/data-files/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/data-products/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/data-products/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/data-qualities/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/data-qualities/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/trust-scores/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/trust-scores/
📖
Documentation
https://qlik.dev/apis/rest/data-qualities/
📖
APIReference
https://qlik.dev/apis/rest/data-qualities/
📖
Documentation
https://qlik.dev/apis/rest/data-sets/
📖
APIReference
https://qlik.dev/apis/rest/data-sets/
📖
Documentation
https://qlik.dev/apis/rest/data-sources/
📖
APIReference
https://qlik.dev/apis/rest/data-sources/
📖
Documentation
https://qlik.dev/apis/rest/data-stores/
📖
APIReference
https://qlik.dev/apis/rest/data-stores/
📖
Documentation
https://qlik.dev/apis/rest/di-projects/
📖
APIReference
https://qlik.dev/apis/rest/di-projects/
📖
Documentation
https://qlik.dev/apis/rest/direct-access-agents/
📖
APIReference
https://qlik.dev/apis/rest/direct-access-agents/
📖
Documentation
https://qlik.dev/apis/rest/encryption/
📖
APIReference
https://qlik.dev/apis/rest/encryption/
📖
Documentation
https://qlik.dev/apis/rest/extensions/
📖
APIReference
https://qlik.dev/apis/rest/extensions/
📖
Documentation
https://qlik.dev/apis/rest/glossaries/
📖
APIReference
https://qlik.dev/apis/rest/glossaries/
📖
Documentation
https://qlik.dev/apis/rest/groups/
📖
APIReference
https://qlik.dev/apis/rest/groups/
📖
Documentation
https://qlik.dev/apis/rest/identity-providers/
📖
APIReference
https://qlik.dev/apis/rest/identity-providers/
📖
Documentation
https://qlik.dev/apis/rest/items/
📖
APIReference
https://qlik.dev/apis/rest/items/
📖
Documentation
https://qlik.dev/apis/rest/knowledgebases/
📖
APIReference
https://qlik.dev/apis/rest/knowledgebases/
📖
Documentation
https://qlik.dev/apis/rest/licenses/
📖
APIReference
https://qlik.dev/apis/rest/licenses/
📖
Documentation
https://qlik.dev/apis/rest/lineage-graphs/
📖
APIReference
https://qlik.dev/apis/rest/lineage-graphs/
📖
Documentation
https://qlik.dev/apis/rest/login/
📖
APIReference
https://qlik.dev/apis/rest/login/
📖
Documentation
https://qlik.dev/apis/rest/ml/
📖
APIReference
https://qlik.dev/apis/rest/ml/
📖
Documentation
https://qlik.dev/apis/rest/notes/
📖
APIReference
https://qlik.dev/apis/rest/notes/
📖
Documentation
https://qlik.dev/apis/rest/notifications/
📖
APIReference
https://qlik.dev/apis/rest/notifications/
📖
Documentation
https://qlik.dev/apis/rest/oauth-clients/
📖
APIReference
https://qlik.dev/apis/rest/oauth-clients/
📖
Documentation
https://qlik.dev/apis/rest/oauth-tokens/
📖
APIReference
https://qlik.dev/apis/rest/oauth-tokens/
📖
Documentation
https://qlik.dev/apis/rest/questions/
📖
APIReference
https://qlik.dev/apis/rest/questions/
📖
Documentation
https://qlik.dev/apis/rest/quotas/
📖
APIReference
https://qlik.dev/apis/rest/quotas/
📖
Documentation
https://qlik.dev/apis/rest/reload-tasks/
📖
APIReference
https://qlik.dev/apis/rest/reload-tasks/
📖
Documentation
https://qlik.dev/apis/rest/reloads/
📖
APIReference
https://qlik.dev/apis/rest/reloads/
📖
Documentation
https://qlik.dev/apis/rest/report-templates/
📖
APIReference
https://qlik.dev/apis/rest/report-templates/
📖
Documentation
https://qlik.dev/apis/rest/reports/
📖
APIReference
https://qlik.dev/apis/rest/reports/
📖
Documentation
https://qlik.dev/apis/rest/roles/
📖
APIReference
https://qlik.dev/apis/rest/roles/
📖
Documentation
https://qlik.dev/apis/rest/scheduling/tasks/
📖
APIReference
https://qlik.dev/apis/rest/scheduling/tasks/
📖
Documentation
https://qlik.dev/apis/rest/sharing-tasks/
📖
APIReference
https://qlik.dev/apis/rest/sharing-tasks/
📖
Documentation
https://qlik.dev/apis/rest/spaces/
📖
APIReference
https://qlik.dev/apis/rest/spaces/
📖
Documentation
https://qlik.dev/apis/rest/tasks/
📖
APIReference
https://qlik.dev/apis/rest/tasks/
📖
Documentation
https://qlik.dev/apis/rest/temp-contents/
📖
APIReference
https://qlik.dev/apis/rest/temp-contents/
📖
Documentation
https://qlik.dev/apis/rest/tenant-settings/
📖
APIReference
https://qlik.dev/apis/rest/tenant-settings/
📖
Documentation
https://qlik.dev/apis/rest/tenants/
📖
APIReference
https://qlik.dev/apis/rest/tenants/
📖
Documentation
https://qlik.dev/apis/rest/themes/
📖
APIReference
https://qlik.dev/apis/rest/themes/
📖
Documentation
https://qlik.dev/apis/rest/transports/
📖
APIReference
https://qlik.dev/apis/rest/transports/
📖
Documentation
https://qlik.dev/apis/rest/ui-config/
📖
APIReference
https://qlik.dev/apis/rest/ui-config/
📖
Documentation
https://qlik.dev/apis/rest/users/
📖
APIReference
https://qlik.dev/apis/rest/users/
📖
Documentation
https://qlik.dev/apis/rest/web-integrations/
📖
APIReference
https://qlik.dev/apis/rest/web-integrations/
📖
Documentation
https://qlik.dev/apis/rest/web-notifications/
📖
APIReference
https://qlik.dev/apis/rest/web-notifications/
📖
Documentation
https://qlik.dev/apis/rest/webhooks/
📖
APIReference
https://qlik.dev/apis/rest/webhooks/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automation-connections/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automation-connections/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automation-connectors/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automation-connectors/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automations/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automations/
📖
Documentation
https://qlik.dev/apis/rest
📖
Authentication
https://qlik.dev/authenticate

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/qliksense:qliksense-tenant-key-provider-management-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

qliksense-tenant-key-provider-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: encryption tenant key provider management API
  version: ''
servers:
- url: https://{tenant}.{region}.qlikcloud.com
  variables:
    region:
      default: us
      description: The region the tenant is hosted in
    tenant:
      default: your-tenant
      description: Name of the tenant that will be called
tags:
- name: tenant key provider management
paths:
  /api/v1/encryption/keyproviders:
    get:
      tags:
      - tenant key provider management
      summary: List AWS key providers registered for the tenant
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyProviders'
          description: Successfully retrieved list of key providers
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Bad Request
        '417':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Failed to load list of key providers
      parameters:
      - in: header
        name: Authorization
        schema:
          type: string
        example:
        - Authorization: Bearer jwt-token
        required: true
        description: The JWT used for authentication. Send the JWT in the request header using the Bearer schema.
      description: Returns a list of AWS key providers in the tenant. Use /actions/list to return all key providers.
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '1'
        limit: 1000
      operationId: getApiV1EncryptionKeyproviders
      x-operation-id-source: derived
    post:
      tags:
      - tenant key provider management
      summary: Register a new multi-region AWS-KMS key
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyProvider'
          description: Successfully registered the provided AWS-KMS key
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Unauthorized, invalid JWT
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Unable to access the provided AWS-KMS key, access is forbidden. Check if AWS key policy allows access from Qlik Cloud.
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Failed to register the provided AWS-KMS key
        '408':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Failed to return a response within the timeout window. The key provider (QlikVault, AWS-KMS) might be unavailable.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: The provided key is already registered
        '417':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Failed to validate AWS-KMS ARN structure
      parameters:
      - in: header
        name: Authorization
        schema:
          type: string
        example:
        - Authorization: Bearer jwt-token
        required: true
        description: The JWT used for authentication. Send the JWT in the request header using the Bearer schema.
      description: The AWS-KMS key configuration must match the Qlik Cloud region configuration requirements. Most regions should have a key deployed to the same AWS region as the Qlik Cloud tenant, with a replica key in the relevant Qlik Cloud DR region. Consult the documentation for DR region mappings.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeyProvider'
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
      operationId: postApiV1EncryptionKeyproviders
      x-operation-id-source: derived
  /api/v1/encryption/keyproviders/actions/list:
    get:
      tags:
      - tenant key provider management
      summary: Lists all key providers registered for the tenant
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListKeyProviders'
          description: Successfully retrieved list of key providers
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Bad Request
        '417':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Failed to load list of key providers
      parameters:
      - in: header
        name: Authorization
        schema:
          type: string
        example:
        - Authorization: Bearer jwt-token
        required: true
        description: The JWT used for authentication. Send the JWT in the request header using the Bearer schema.
      description: Returns a list of all key providers in the tenant, including the default Qlik key provider.
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '1'
        limit: 1000
      operationId: getApiV1EncryptionKeyprovidersActionsList
      x-operation-id-source: derived
  /api/v1/encryption/keyproviders/actions/reset-to-default-provider:
    post:
      tags:
      - tenant key provider management
      summary: Reset tenant key provider to default Qlik managed provider
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResetMigrationNotNeeded'
          description: Tenant is already using Qlik Managed provider, no action taken
        '205':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationInformation'
          description: Successfully initiated key migration to Qlik managed provider
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Unauthorized, invalid JWT
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: There is already an ongoing migration in progress for this tenant, this must complete before a new migration can be started
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Failed to initiate migration to Qlik managed provider
        '424':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
          description: Tenant is already using Qlik Managed provider
      parameters:
      - in: header
        name: Authorization
        schema:
          type: string
        example:
        - Authorization: Bearer jwt-token
        required: true
        description: The JWT used for authentication. Send the JWT in the request header using the Bearer schema.
      description: Reset the encryption key back to the default Qlik managed provider. No action will be taken if tenant is already using the Qlik provider.
      x-qlik-visibility: public
      x-qlik-stability: stable
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
      operationId: postApiV1EncryptionKeyprovidersActionsResetToDefaultProvider
      x-operation-id-source: derived
components:
  schemas:
    StandardError:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/StandardErrorItem'
    ListKeyProviders:
      type: object
      example:
      - arn: '#QLIK_MANAGED_KEY_PROVIDER#'
        name: Qlik Internal Kms
        tenantId: ImTRa-bkJTD-NZRYjNBa_rDhwSVA6Qo8
        createdAt: Qlik managed
        description: Default key management service
        keyprovider: Qlik
        arnFingerPrint: ImTRa-bkJTD-NZRYjNBa_rDhwSVA6Qo8
        promotedToCurrentAt: '2023-06-21T18:45:57Z'
        demotedFromCurrentAt: '0001-01-01T00:00:00Z'
      - arn: arn:aws:kms:eu-west-1:111222334455:key/mrk-1237c011a37erft67ei987c7612q456
        name: CMK - 01
        tenantId: ImTRa-bkJTD-NZRYjNBa_rDhwSVA6Qo8
        createdAt: '2023-06-21T18:43:49Z'
        drCompliant: true
        keyprovider: AWS-KMS
        multiRegion: true
        replicaKeys:
        - arn: arn:aws:kms:eu-west-3:111222334455:key/mrk-1237c011a37erft67ei987c7612q456
          region: eu-west-3
        arnFingerPrint: 9f352c5a9c1618485051892cb57467e4
        complianceError:
          code: ''
          region: ''
          message: ''
        promotedToCurrentAt: '2023-06-21T18:43:54Z'
        demotedFromCurrentAt: '2023-06-21T18:45:57Z'
      - arn: arn:aws:kms:eu-west-1:111222334455:key/mrk-2678f8123w236c3123469387dc2ce561
        name: CMK - 02
        current: true
        tenantId: ImTRa-bkJTD-NZRYjNBa_rDhwSVA6Qo8
        createdAt: '2023-06-21T18:59:17Z'
        description: CMK migration test
        drCompliant: false
        keyprovider: AWS-KMS
        multiRegion: true
        replicaKeys:
        - arn: arn:aws:kms:eu-west-3:111222334455:key/mrk-2678f8123w236c3123469387dc2ce561
          region: eu-west-3
        arnFingerPrint: 12342c83b25f9e36543bca28f69e4210
        complianceError:
          code: Encryption-88
          region: eu-west-3
          message: The policy of the provided key does not allow the required action [eu-west-3] [GenerateDataKey].
        promotedToCurrentAt: '2023-06-21T18:59:18Z'
        demotedFromCurrentAt: '0001-01-01T00:00:00Z'
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/KeyProvider'
    KeyProvider:
      type: object
      example:
        arn: arn:aws:kms:eu-west-1:111222334455:key/mrk-1237c011a37erft67ei987c7612q456
        name: test name
        current: false
        description: test description
        drCompliant: true
        keyprovider: AWS-KMS
        multiRegion: true
        replicaKeys:
        - arn: arn:aws:kms:eu-west-3:111222334455:key/mrk-1237c011a37erft67ei987c7612q456
          region: eu-west-3
        complianceError:
        - code: ''
          region: ''
          message: ''
      required:
      - name
      - arn
      - keyprovider
      properties:
        arn:
          type: string
          description: The provider resource notation for the key.
        name:
          type: string
          description: Name of key provider entry.
        current:
          type: boolean
          readOnly: true
          description: Indicates whether the key is being used to encrypt/decrypt secrets.
        tenantId:
          type: string
          readOnly: true
          description: Tenant ID.
        createdAt:
          type: string
          format: date-time
          readOnly: true
          description: When key entry was created.
        description:
          type: string
          description: Description of key provider entry.
        keyprovider:
          enum:
          - AWS-KMS
          type: string
          description: Key Provider type.
        multiRegion:
          type: boolean
          readOnly: true
          description: Indicates whether the key has multi-region configurations and has replica key in qcs secondary region.
        replicaKeys:
          type: array
          items:
            properties:
              arn:
                type: string
                description: Replica key keeps list of backup keys from the supported qcs secondary region.
              region:
                type: string
                description: Region indicates the backup qcs-region link to the primary region.
          readOnly: true
        arnFingerPrint:
          type: string
          readOnly: true
          description: The ARN fingerprint.
        promotedToCurrentAt:
          type: string
          format: date-time
          readOnly: true
          description: When the key was promoted to being the current active one.
        demotedFromCurrentAt:
          type: string
          format: date-time
          readOnly: true
          description: When the key was demoted from being current to non active.
    MigrationInformation:
      type: object
      properties:
        id:
          type: string
          format: uid
          description: Migration operation ID.
        state:
          enum:
          - New
          - InProgress
          - Completed
          type: string
          description: Migration operation state.
        progress:
          type: number
          description: Progress in percentage.
        tenantId:
          type: string
          format: uid
          description: Tenant ID.
        completedAt:
          type: string
          format: date-time
        initiatedAt:
          type: string
          format: date-time
        migratingTo:
          type: string
          description: The new key ARN that keys should be migrated to.
        migratingFrom:
          type: string
          description: The key ARN being migrated from (in case of QlikVault, could be a short name only).
        migratingToPrefix:
          type: string
          description: The new key prefix (to help services know which prefix should NOT be migrated).
        migratingToFingerprint:
          type: string
          description: The new key ARN fingerprint.
    ResetMigrationNotNeeded:
      type: object
      properties:
        message:
          type: string
          example: Tenant is already using Qlik KMS, no migration is required.
          description: Tenant is already using Qlik KMS, no migration is required.
    KeyProviders:
      type: object
      example:
      - arn: arn:aws:kms:eu-west-1:111222334455:key/mrk-1237c011a37erft67ei987c7612q456
        name: test name
        current: true
        description: test description
        drCompliant: true
        keyprovider: AWS-KMS
        multiRegion: true
        replicaKeys:
        - arn: arn:aws:kms:eu-west-3:111222334455:key/mrk-1237c011a37erft67ei987c7612q456
          region: eu-west-3
        complianceError:
          code: ''
          region: ''
          message: ''
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/KeyProvider'
    StandardErrorItem:
      type: object
      required:
      - code
      - title
      properties:
        code:
          type: string
          description: The error code.
        meta:
          type: object
          description: Additional error object metadata.
        title:
          type: string
          description: Description of the error.
        detail:
          type: string
          description: Extra information about the error.