diff --git a/packages/@aws-cdk/core/lib/cfn-resource-policy.ts b/packages/@aws-cdk/core/lib/cfn-resource-policy.ts index 10e02b1d98801..f740c8a988626 100644 --- a/packages/@aws-cdk/core/lib/cfn-resource-policy.ts +++ b/packages/@aws-cdk/core/lib/cfn-resource-policy.ts @@ -136,6 +136,12 @@ export interface CfnUpdatePolicy { */ readonly useOnlineResharding?: boolean; + /** + * To upgrade an Amazon ES domain to a new version of Elasticsearch rather than replacing the entire + * AWS::Elasticsearch::Domain resource, use the EnableVersionUpgrade update policy. + */ + readonly enableVersionUpgrade?: boolean; + } /** diff --git a/packages/@aws-cdk/core/test/test.resource.ts b/packages/@aws-cdk/core/test/test.resource.ts index c69dbf658d378..dcca545ea04b0 100644 --- a/packages/@aws-cdk/core/test/test.resource.ts +++ b/packages/@aws-cdk/core/test/test.resource.ts @@ -682,6 +682,28 @@ export = { test.done(); }, + + 'enableVersionUpgrade can be set on a resource'(test: Test) { + const stack = new Stack(); + const r1 = new CfnResource(stack, 'Resource', { type: 'Type' }); + + r1.cfnOptions.updatePolicy = { + enableVersionUpgrade: true + }; + + test.deepEqual(toCloudFormation(stack), { + Resources: { + Resource: { + Type: 'Type', + UpdatePolicy: { + EnableVersionUpgrade: true + } + } + } + }); + + test.done(); + }, }; interface CounterProps {