UpdateRepositoryEncryptionKey
Updates the AWS Key Management Service encryption key used to encrypt and decrypt a CodeCommit repository.
Request Syntax
{
"kmsKeyId": "string
",
"repositoryName": "string
"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- kmsKeyId
-
The ID of the encryption key. You can view the ID of an encryption key in the AWS KMS console, or use the AWS KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for keyID, see KeyId in the Decrypt API description in the AWS Key Management Service API Reference.
Type: String
Pattern:
^[a-zA-Z0-9:/_-]+$
Required: Yes
- repositoryName
-
The name of the repository for which you want to update the AWS KMS encryption key used to encrypt and decrypt the repository.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 100.
Pattern:
[\w\.-]+
Required: Yes
Response Syntax
{
"kmsKeyId": "string",
"originalKmsKeyId": "string",
"repositoryId": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- kmsKeyId
-
The ID of the encryption key.
Type: String
Pattern:
^[a-zA-Z0-9:/_-]+$
- originalKmsKeyId
-
The ID of the encryption key formerly used to encrypt and decrypt the repository.
Type: String
Pattern:
^[a-zA-Z0-9:/_-]+$
- repositoryId
-
The ID of the repository.
Type: String
Errors
For information about the errors that are common to all actions, see Common Errors.
- EncryptionIntegrityChecksFailedException
-
An encryption integrity check failed.
HTTP Status Code: 500
- EncryptionKeyAccessDeniedException
-
An encryption key could not be accessed.
HTTP Status Code: 400
- EncryptionKeyDisabledException
-
The encryption key is disabled.
HTTP Status Code: 400
- EncryptionKeyInvalidIdException
-
The AWS Key Management Service encryption key is not valid.
HTTP Status Code: 400
- EncryptionKeyInvalidUsageException
-
A AWS KMS encryption key was used to try and encrypt or decrypt a repository, but either the repository or the key was not in a valid state to support the operation.
HTTP Status Code: 400
- EncryptionKeyNotFoundException
-
No encryption key was found.
HTTP Status Code: 400
- EncryptionKeyRequiredException
-
A AWS KMS encryption key ID is required but was not specified.
HTTP Status Code: 400
- EncryptionKeyUnavailableException
-
The encryption key is not available.
HTTP Status Code: 400
- InvalidRepositoryNameException
-
A specified repository name is not valid.
Note
This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.
HTTP Status Code: 400
- RepositoryDoesNotExistException
-
The specified repository does not exist.
HTTP Status Code: 400
- RepositoryNameRequiredException
-
A repository name is required, but was not specified.
HTTP Status Code: 400
Examples
Example
The following example updates a repository named MyDemoRepo to use a AWS KMS key with the ID of a1b2c3d4-5678-90ab-cdef-EXAMPLE11111.
Sample Request
POST / HTTP/1.1
Host: codecommit.us-east-1.amazonaws.com
Accept-Encoding: identity
Content-Length: 79
X-Amz-Target: CodeCommit_20150413.UpdateRepositoryEncryptionKey
X-Amz-Date: 20231221T153512Z
User-Agent: aws-cli/1.32.0 Python/3.6.0 Windows/10
Content-Type: application/x-amz-json-1.1
Authorization: AWS4-HMAC-SHA256 Credential=AKIAI44QH8DHBEXAMPLE/20151029/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-date;x-amz-target, Signature=8d9b5998EXAMPLE
{
"kmsKeyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"repositoryName": "MyDemoRepo"
}
Sample Response
HTTP/1.1 200 OK
x-amzn-RequestId: 0728aaa8-EXAMPLE
Content-Type: application/x-amz-json-1.1
Content-Length: 0
Date: Thu, 21 Dec 2023 15:35:13 GMT
{
"kmsKeyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"originalKmsKeyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa",
"repositoryName": "MyDemoRepo"
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: