# KMS

## create-kms-key

```
[`POST /kms-key`](https://community.exoscale.com/reference/api/kms/kms-key/#create-kms-key)
```

Create a customer-managed unique KMS Key in your organization. A KMS Key is a logical representation of a cryptographic key material. It also includes metadata such as a UUID, a name and its state. 

### Parameters:

* parameters.name
* parameters.description
* parameters.multi-zone
* parameters.usage

## disable-kms-key

```
[`POST kms-key/{id}/disable`](https://community.exoscale.com/reference/api/kms/kms-key/#disable-kms-key)
```

Disables a KMS Key by setting its state to "disabled". This prevents the use of the KMS key for cryptographic and key lifecycle operations.

### Parameters:

* parameters.id

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at

## enable-kms-key

```
[`POST /kms-key/<id>`](https://community.exoscale.com/reference/api/kms/kms-key/#enable-kms-key)
```

Enables a KMS Key by setting its state to "enabled". It restores the ability to fully use the KMS key for cryptographic operations and key lifecycle operations.

### Parameters:

* parameters.id


### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## list-kms-key

```
[`GET /kms-key`](https://community.exoscale.com/reference/api/kms/kms-key/#list-kms-keys)
```

Lists all KMS Keys in your organization in a given zone.


## get-kms-key

```
[`GET /kms-key/<id>`](https://community.exoscale.com/reference/api/kms/kms-key/#get-kms-key)
```

Retrieve KMS Key details.

### Parameters:

* parameters.id

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## rotate-kms-key

```
[`POST /kms-key/<id>/rotate`](https://community.exoscale.com/reference/api/kms/kms-key/#rotate-kms-key)
```

Performs an immediate rotation of the key material for a symmetric key.

### Parameters:

* parameters.id

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## encrypt

```
[`POST /kms-key/<id>/encrypt`](https://community.exoscale.com/reference/api/kms/cryptographic-operations/#encrypt)
```

Encrypts a plaintext.

### Parameters:

* parameters.id
* parameters.encryption_context
* parameters.plaintext

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at

## decrypt

```
[`POST /kms-key/<id>/decrypt`](https://community.exoscale.com/reference/api/kms/cryptographic-operations/#decrypt)
```

Decrypts a ciphertext.

### Parameters:

* parameters.id
* parameters.encryption_context
* parameters.ciphertext

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at

## replicate-kms-key

```
[`POST /kms-key/<id>/replicate`](https://community.exoscale.com/reference/api/kms/kms-key/#replicate-kms-key)
```

Replicate a KMS key to a target zone.

### Parameters:

* parameters.id
* parameters.zone

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## re-encrypt

```
[`POST /kms-key/<id>/re-encrypt`](https://community.exoscale.com/reference/api/kms/cryptographic-operations/#re-encrypt)
```

Decrypts an existing ciphertext using its original key material and re-encrypts the underlying plaintext using a specified KMS key or the latest key material of the same KMS Key.

### Parameters:

* parameters.id
* parameters.source
* parameters.destination

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at

## schedule-kms-key-deletion

```
[`POST /kms-key/<id>/schedule-deletion`](https://community.exoscale.com/reference/api/kms/kms-key/#schedule-kms-key-deletion)
```

Schedules a KMS key for deletion after a delay. You can specify a delay of 7-30 days.

### Parameters:

* parameters.id
* parameters.delay-days

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at

## cancel-kms-key-deletion

```
[`POST /kms-key/<id>/cancel-deletion`](https://community.exoscale.com/reference/api/kms/kms-key/#cancel-kms-key-deletion)
```

Cancels the scheduled deletion of a KMS Key.

### Parameters:

* parameters.id

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## generate-data-key

```
[`POST /kms-key/<id>/generate-data-key`](https://community.exoscale.com/reference/api/kms/cryptographic-operations/#generate-data-key)
```

Generate a Data Encryption Key from a given KMS Key.

### Parameters:

* parameters.id
* parameters.key_spec
* parameters.bytes_count
* parameters.encryption_context


### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## enable-kms-key-rotation

```
[`POST /kms-key/<id>/enable-key-rotation`](https://community.exoscale.com/reference/api/kms/kms-key/#enable-kms-key-rotation)
```

Enable the periodic rotation of a KMS Key.

### Parameters:

* parameters.id
* parameters.rotation_period

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at


## disable-kms-key-rotation

```
[`POST /kms-key/<id>/disable-key-rotation`](https://community.exoscale.com/reference/api/kms/kms-key/#disable-kms-key-rotation)
```

Disable the periodic rotation of a KMS Key.

### Parameters:

* parameters.id

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at

## list-kms-key-rotations

```
[`GET /kms-key/{id}/list-key-rotations`](https://community.exoscale.com/reference/api/kms/kms-key/#list-kms-key-rotations)
```

List all the key material versions of a KMS Key.

### Parameters:

* parameters.id

### Resources:

* resources.kms_key.id
* resources.kms_key.name
* resources.kms_key.description
* resources.kms_key.material
* resources.kms_key.multi_zone
* resources.kms_key.origin_zone
* resources.kms_key.replicas
* resources.kms_key.replicas_status
* resources.kms_key.revision
* resources.kms_key.rotation
* resources.kms_key.source
* resources.kms_key.status
* resources.kms_key.status_since
* resources.kms_key.usage
* resources.kms_key.state
* resources.kms_key.created_at
