Skip to content

KMS Key

Operations for KMS Key lifecycle management.

Read more

enable-kms-key

[BETA] Enable KMS Key

POST /kms-key/{id}/enable

Enable a KMS Key"

Path parameters

NameInDescription
idpath

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
statusstringAllowed values: success.
Example output
{
  "status": "success"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for enable-kms-key: golang | Python | Java

CLI: exo api enable-kms-key

disable-kms-key

[BETA] Disable KMS Key

POST /kms-key/{id}/disable

Disable a KMS Key

Path parameters

NameInDescription
idpath

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
statusstringAllowed values: success.
Example output
{
  "status": "success"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for disable-kms-key: golang | Python | Java

CLI: exo api disable-kms-key

create-kms-key

[BETA] Create KMS Key

POST /kms-key

Create a KMS Key in a given zone with a given name.

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
descriptionstringyes
multi-zonebooleanyes
namestringyes
usagestringyesAllowed values: encrypt-decrypt.
Example
{
  "description": "string",
  "multi-zone": true,
  "name": "string",
  "usage": "encrypt-decrypt"
}

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
created-atstring
descriptionstring
idstring
multi-zoneboolean
namestring
origin-zonestring
policystring
revisionRevision Stamp
sourcestringAllowed values: exoscale-kms.
statusstringAllowed values: enabled, disabled, pending-deletion.
status-sincestring
usagestring
Example output
{
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "multi-zone": true,
  "name": "string",
  "origin-zone": "string",
  "policy": "string",
  "revision": {
    "at": "2024-01-01T12:00:00Z",
    "seq": 0
  },
  "source": "exoscale-kms",
  "status": "enabled",
  "status-since": "2024-01-01T12:00:00Z",
  "usage": "string"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

409: 409

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for create-kms-key: golang | Python | Java

CLI: exo api create-kms-key

get-kms-key

[BETA] Get KMS Key

GET /kms-key/{id}

Retrieve KMS Key details.

Path parameters

NameInDescription
idpath

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
created-atstring
descriptionstring
idstring
materialKey Material
multi-zoneboolean
namestring
origin-zonestring
policystring
replicasarray[string]
replicas-statusarray of Replica State
revisionRevision Stamp
rotationKey Rotation Config
sourcestringAllowed values: exoscale-kms.
statusstringAllowed values: enabled, disabled, pending-deletion.
status-sincestring
usagestring
Example output
{
  "created-at": "2024-01-01T12:00:00Z",
  "description": "string",
  "id": "string",
  "material": {
    "automatic": true,
    "created-at": "2024-01-01T12:00:00Z",
    "version": 0
  },
  "multi-zone": true,
  "name": "string",
  "origin-zone": "string",
  "policy": "string",
  "replicas": [
    "string"
  ],
  "replicas-status": [
    {
      "last-applied-watermark": 0,
      "last-failure": {
        "attempted-watermark": 0,
        "error": "string",
        "failed-at": "2024-01-01T12:00:00Z"
      },
      "zone": "string"
    }
  ],
  "revision": {
    "at": "2024-01-01T12:00:00Z",
    "seq": 0
  },
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  },
  "source": "exoscale-kms",
  "status": "enabled",
  "status-since": "2024-01-01T12:00:00Z",
  "usage": "string"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

404: 404

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for get-kms-key: golang | Python | Java

CLI: exo api get-kms-key

disable-kms-key-rotation

[BETA] Disable Key Rotation

POST /kms-key/{id}/disable-key-rotation

Disable the periodic rotation of a KMS Key.

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
idstringyes
Example
{
  "id": "string"
}

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
rotationKey Rotation Config
Example output
{
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  }
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for disable-kms-key-rotation: golang | Python | Java

CLI: exo api disable-kms-key-rotation

enable-kms-key-rotation

[BETA] Enable Key Rotation

POST /kms-key/{id}/enable-key-rotation

Enable the periodic rotation of a KMS Key.

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
idstringyes
rotation-periodintegerno
Example
{
  "id": "string",
  "rotation-period": 0
}

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
rotationKey Rotation Config
Example output
{
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  }
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for enable-kms-key-rotation: golang | Python | Java

CLI: exo api enable-kms-key-rotation


Other Operations

cancel-kms-key-deletion

[Beta] Cancel KMS Key Deletion

POST /kms-key/{id}/cancel-deletion

Cancel the scheduled deletion of a KMS Key.

Path parameters

NameInDescription
idpath

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
statusstringAllowed values: success.
Example output
{
  "status": "success"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for cancel-kms-key-deletion: golang | Python | Java

CLI: exo api cancel-kms-key-deletion

list-kms-key-rotations

[BETA] List KMS Key Rotations

GET /kms-key/{id}/list-key-rotations

List all the key material versions of a KMS Key.

Path parameters

NameInDescription
idpath

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
rotationsarray of List Kms Key Rotations Response Entry
Example output
{
  "rotations": [
    {
      "automatic": true,
      "rotated-at": "2024-01-01T12:00:00Z",
      "version": 0
    }
  ]
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for list-kms-key-rotations: golang | Python | Java

CLI: exo api list-kms-key-rotations

list-kms-keys

[BETA] List KMS Keys

GET /kms-key

List KMS Keys details for an organization in a given zone.

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
kms-keysarray of List Kms Keys Response Entry
Example output
{
  "kms-keys": [
    {
      "created-at": "2024-01-01T12:00:00Z",
      "description": "string",
      "id": "string",
      "material": {
        "automatic": true,
        "created-at": "2024-01-01T12:00:00Z",
        "version": 0
      },
      "multi-zone": true,
      "name": "string",
      "origin-zone": "string",
      "replicas": [
        "string"
      ],
      "revision": {
        "at": "2024-01-01T12:00:00Z",
        "seq": 0
      },
      "rotation": {
        "automatic": true,
        "manual-count": 0,
        "next-at": "2024-01-01T12:00:00Z",
        "rotation-period": 0
      },
      "source": "exoscale-kms",
      "status": "enabled",
      "status-since": "2024-01-01T12:00:00Z",
      "usage": "string"
    }
  ]
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for list-kms-keys: golang | Python | Java

CLI: exo api list-kms-keys

replicate-kms-key

[BETA] Replicate KMS Key

POST /kms-key/{id}/replicate

Replicate a KMS key to a target zone.

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
zonestringyes
Example
{
  "zone": "string"
}

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
idstringOperation ID
messagestringOperation message
reasonstringOperation failure reason

Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict.
referenceReferenceRelated resource reference
statestringOperation status

Allowed values: failure, pending, success, timeout.
Example output
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for replicate-kms-key: golang | Python | Java

CLI: exo api replicate-kms-key

rotate-kms-key

[BETA] Rotate Key

POST /kms-key/{id}/rotate

Perform a manual rotation of the key material for a symmetric key.

Path parameters

NameInDescription
idpath

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
rotationKey Rotation Config
Example output
{
  "rotation": {
    "automatic": true,
    "manual-count": 0,
    "next-at": "2024-01-01T12:00:00Z",
    "rotation-period": 0
  }
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for rotate-kms-key: golang | Python | Java

CLI: exo api rotate-kms-key

schedule-kms-key-deletion

[BETA] Schedule KMS Key Deletion

POST /kms-key/{id}/schedule-deletion

Schedule a KMS key for deletion after a delay.

Path parameters

NameInDescription
idpath

Request body

Content-Type: application/json

PropertyTypeRequiredDescription
delay-daysintegernoNumber of days to wait until deletion is final.
Example
{
  "delay-days": 0
}

Responses

200: 200

Content-Type: application/json

PropertyTypeDescription
statusstringAllowed values: success.
Example output
{
  "status": "success"
}

400: 400

Content-Type: application/json

PropertyTypeDescription
detailstring
errorsarray of Errors
instancestring
statusinteger
titlestring
typestring
Example output
{
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "location": "string",
      "path": "string",
      "pointer": "string"
    }
  ],
  "instance": "string",
  "status": 0,
  "title": "string",
  "type": "string"
}

SDK reference for schedule-kms-key-deletion: golang | Python | Java

CLI: exo api schedule-kms-key-deletion

Last updated on