# REST Resource: projects.locations.cmekConfigs

- [Resource: CmekConfig](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig)
  - [JSON representation](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.SCHEMA_REPRESENTATION)
  - [State](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.State)
  - [SingleRegionKey](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.SingleRegionKey)
    - [JSON representation](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.SingleRegionKey.SCHEMA_REPRESENTATION)
  - [NotebookLMState](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.NotebookLMState)
- [Methods](https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#METHODS_SUMMARY)

## Resource: CmekConfig

Configurations used to enable CMEK data encryption with Cloud KMS keys.

| JSON representation |
|---|
| ``` { "name": string, "kmsKey": string, "kmsKeyVersion": string, "state": enum (`https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.State`), "isDefault": boolean, "lastRotationTimestampMicros": string, "singleRegionKeys": [ { object (`https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.SingleRegionKey`) } ], "notebooklmState": enum (`https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.NotebookLMState`) } ``` |

| Fields ||
|---|---|
| `name` | `string` Required. The name of the CmekConfig of the form `projects/{project}/locations/{location}/cmekConfig` or `projects/{project}/locations/{location}/cmekConfigs/{cmekConfig}`. |
| `kmsKey` | `string` Required. KMS key resource name which will be used to encrypt resources `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId}`. |
| `kmsKeyVersion` | `string` Output only. KMS key version resource name which will be used to encrypt resources `<kmsKey>/cryptoKeyVersions/{keyVersion}`. |
| `state` | ``enum (`https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.State`)`` Output only. The states of the CmekConfig. |
| `isDefault` | `boolean` Output only. The default CmekConfig for the Customer. |
| `lastRotationTimestampMicros` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The timestamp of the last key rotation. |
| `singleRegionKeys[]` | ``object (`https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.SingleRegionKey`)`` Optional. Single-regional CMEKs that are required for some VAIS features. |
| `notebooklmState` | ``enum (`https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig.NotebookLMState`)`` Output only. Whether the NotebookLM Corpus is ready to be used. |

### State

States of the CmekConfig.

| Enums ||
|---|---|
| `STATE_UNSPECIFIED` | The CmekConfig state is unknown. |
| `CREATING` | The CmekConfig is creating. |
| `ACTIVE` | The CmekConfig can be used with DataStores. |
| `KEY_ISSUE` | The CmekConfig is unavailable, most likely due to the KMS Key being revoked. |
| `DELETING` | The CmekConfig is deleting. |
| `DELETE_FAILED` | The CmekConfig deletion process failed. |
| `UNUSABLE` | The CmekConfig is not usable, most likely due to some internal issue. |
| `ACTIVE_ROTATING` | The KMS key version is being rotated. |
| `DELETED` | The KMS key is soft deleted. Some cleanup policy will eventually be applied. |
| `EXPIRED` | The KMS key is expired, meaning the key has been disabled for 30+ days. The customer can call cmekConfigs.delete to change the state to DELETED. |

### SingleRegionKey

Metadata for single-regional CMEKs.

| JSON representation |
|---|
| ``` { "kmsKey": string } ``` |

| Fields ||
|---|---|
| `kmsKey` | `string` Required. Single-regional kms key resource name which will be used to encrypt resources `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId}`. |

### NotebookLMState

States of NotebookLM.

| Enums ||
|---|---|
| `NOTEBOOK_LM_STATE_UNSPECIFIED` | The NotebookLM state is unknown. |
| `NOTEBOOK_LM_NOT_READY` | The NotebookLM is not ready. |
| `NOTEBOOK_LM_READY` | The NotebookLM is ready to be used. |
| `NOTEBOOK_LM_NOT_ENABLED` | The NotebookLM is not enabled. |

| ## Methods ||
|---|---|
| ### `https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs/delete` | De-provisions a CmekConfig. |
| ### `https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs/get` | Gets the `https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig`. |
| ### `https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs/list` | Lists all the `https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs#CmekConfig`s with the project. |
| ### `https://docs.cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.cmekConfigs/patch` | Provisions a CMEK key for use in a location of a customer's project. |