diff --git a/aws-rds-cfn-common/pom.xml b/aws-rds-cfn-common/pom.xml index 0d5b0e97f..9056c682e 100644 --- a/aws-rds-cfn-common/pom.xml +++ b/aws-rds-cfn-common/pom.xml @@ -27,12 +27,12 @@ software.amazon.awssdk utils - 2.21.17 + 2.22.7 software.amazon.awssdk rds - 2.21.17 + 2.22.7 software.amazon.cloudformation diff --git a/aws-rds-customdbengineversion/aws-rds-customdbengineversion.json b/aws-rds-customdbengineversion/aws-rds-customdbengineversion.json index 4521af65b..807fd2405 100644 --- a/aws-rds-customdbengineversion/aws-rds-customdbengineversion.json +++ b/aws-rds-customdbengineversion/aws-rds-customdbengineversion.json @@ -76,6 +76,18 @@ "type": "string", "description": "The ARN of the custom engine version." }, + "SourceCustomDBEngineVersionIdentifier": { + "type": "string", + "description": "The identifier of the source custom engine version." + }, + "UseAwsProvidedLatestImage": { + "type": "boolean", + "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically." + }, + "ImageId": { + "type": "string", + "description": "The identifier of Amazon Machine Image (AMI) used for CEV." + }, "Status": { "type": "string", "description": "The availability status to be assigned to the CEV.", @@ -103,12 +115,13 @@ "/properties/KMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KMSKeyId])" }, "required": [ - "DatabaseInstallationFilesS3BucketName", "Engine", "EngineVersion" ], "writeOnlyProperties": [ - "/properties/Manifest" + "/properties/Manifest", + "/properties/SourceCustomDbEngineVersionIdentifier", + "/properties/UseAwsProvidedLatestImage" ], "readOnlyProperties": [ "/properties/DBEngineVersionArn" @@ -122,14 +135,23 @@ "/properties/EngineVersion", "/properties/DatabaseInstallationFilesS3BucketName", "/properties/DatabaseInstallationFilesS3Prefix", + "/properties/ImageId", "/properties/KMSKeyId", - "/properties/Manifest" + "/properties/Manifest", + "/properties/SourceCustomDbEngineVersionIdentifier", + "/properties/UseAwsProvidedLatestImage" ], "handlers": { "create": { "permissions": [ + "ec2:CopySnapshot", + "ec2:DeleteSnapshot", + "ec2:DescribeSnapshots", "kms:CreateGrant", + "kms:Decrypt", "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:ReEncrypt", "mediaimport:CreateDatabaseBinarySnapshot", "rds:AddTagsToResource", "rds:CreateCustomDBEngineVersion", diff --git a/aws-rds-customdbengineversion/docs/README.md b/aws-rds-customdbengineversion/docs/README.md index 7c1cd625a..42adc00f1 100644 --- a/aws-rds-customdbengineversion/docs/README.md +++ b/aws-rds-customdbengineversion/docs/README.md @@ -19,6 +19,9 @@ To declare this entity in your AWS CloudFormation template, use the following sy "EngineVersion" : String, "KMSKeyId" : String, "Manifest" : String, + "SourceCustomDBEngineVersionIdentifier" : String, + "UseAwsProvidedLatestImage" : Boolean, + "ImageId" : String, "Status" : String, "Tags" : [ Tag, ... ] } @@ -37,6 +40,9 @@ Properties: EngineVersion: String KMSKeyId: String Manifest: String + SourceCustomDBEngineVersionIdentifier: String + UseAwsProvidedLatestImage: Boolean + ImageId: String Status: String Tags: - Tag @@ -48,7 +54,7 @@ Properties: The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. -_Required_: Yes +_Required_: No _Type_: String @@ -142,6 +148,36 @@ _Maximum Length_: 51000 _Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) +#### SourceCustomDBEngineVersionIdentifier + +The identifier of the source custom engine version. + +_Required_: No + +_Type_: String + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### UseAwsProvidedLatestImage + +A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. + +_Required_: No + +_Type_: Boolean + +_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) + +#### ImageId + +The identifier of Amazon Machine Image (AMI) used for CEV. + +_Required_: No + +_Type_: String + +_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) + #### Status The availability status to be assigned to the CEV. @@ -175,3 +211,4 @@ For more information about using the `Fn::GetAtt` intrinsic function, see [Fn::G #### DBEngineVersionArn The ARN of the custom engine version. + diff --git a/aws-rds-customdbengineversion/pom.xml b/aws-rds-customdbengineversion/pom.xml index d28c3909a..d68d3a3ef 100644 --- a/aws-rds-customdbengineversion/pom.xml +++ b/aws-rds-customdbengineversion/pom.xml @@ -22,7 +22,7 @@ software.amazon.awssdk rds - 2.21.17 + 2.22.7 software.amazon.rds.common diff --git a/aws-rds-customdbengineversion/resource-role.yaml b/aws-rds-customdbengineversion/resource-role.yaml index 1e53ffb44..e6394b5d2 100644 --- a/aws-rds-customdbengineversion/resource-role.yaml +++ b/aws-rds-customdbengineversion/resource-role.yaml @@ -30,8 +30,14 @@ Resources: Statement: - Effect: Allow Action: + - "ec2:CopySnapshot" + - "ec2:DeleteSnapshot" + - "ec2:DescribeSnapshots" - "kms:CreateGrant" + - "kms:Decrypt" - "kms:DescribeKey" + - "kms:GenerateDataKey" + - "kms:ReEncrypt" - "mediaimport:CreateDatabaseBinarySnapshot" - "rds:AddTagsToResource" - "rds:CreateCustomDBEngineVersion" diff --git a/aws-rds-customdbengineversion/src/main/java/software/amazon/rds/customdbengineversion/Translator.java b/aws-rds-customdbengineversion/src/main/java/software/amazon/rds/customdbengineversion/Translator.java index f7a15c252..eb6022383 100644 --- a/aws-rds-customdbengineversion/src/main/java/software/amazon/rds/customdbengineversion/Translator.java +++ b/aws-rds-customdbengineversion/src/main/java/software/amazon/rds/customdbengineversion/Translator.java @@ -31,9 +31,12 @@ public static CreateCustomDbEngineVersionRequest createCustomDbEngineVersionRequ .description(model.getDescription()) .engine(model.getEngine()) .engineVersion(model.getEngineVersion()) + .imageId(model.getImageId()) .kmsKeyId(model.getKMSKeyId()) .manifest(model.getManifest()) + .sourceCustomDbEngineVersionIdentifier(model.getSourceCustomDBEngineVersionIdentifier()) .tags(Tagging.translateTagsToSdk(tags)) + .useAwsProvidedLatestImage(model.getUseAwsProvidedLatestImage()) .build(); } @@ -108,6 +111,7 @@ static ResourceModel translateFromSdk( .description(engineVersion.dbEngineVersionDescription()) .engine(engineVersion.engine()) .engineVersion(engineVersion.engineVersion()) + .imageId(engineVersion.image() != null ? engineVersion.image().imageId() : null) .kMSKeyId(engineVersion.kmsKeyId()) .status(engineVersion.status()) .tags(translateTagsFromSdk(engineVersion.tagList())) diff --git a/pom.xml b/pom.xml index 1051ec29c..5c4a7537c 100644 --- a/pom.xml +++ b/pom.xml @@ -11,6 +11,7 @@ aws-rds-cfn-test-common aws-rds-cfn-common + aws-rds-customdbengineversion aws-rds-dbcluster aws-rds-dbclusterparametergroup aws-rds-dbinstance