diff --git a/packages/@aws-cdk/aws-cloudfront/lib/cache-policy.ts b/packages/@aws-cdk/aws-cloudfront/lib/cache-policy.ts index 0d851e8a886ef..d0dad353a8727 100644 --- a/packages/@aws-cdk/aws-cloudfront/lib/cache-policy.ts +++ b/packages/@aws-cdk/aws-cloudfront/lib/cache-policy.ts @@ -234,7 +234,7 @@ export class CacheHeaderBehavior { return new CacheHeaderBehavior('whitelist', headers); } - /** If the no headers will be passed, or an allow list of headers. */ + /** If no headers will be passed, or an allow list of headers. */ public readonly behavior: string; /** The headers for the allow/deny list, if applicable. */ public readonly headers?: string[]; diff --git a/packages/@aws-cdk/aws-ses/lib/receipt-rule-set.ts b/packages/@aws-cdk/aws-ses/lib/receipt-rule-set.ts index dcb3d011d4251..d8590216f2460 100644 --- a/packages/@aws-cdk/aws-ses/lib/receipt-rule-set.ts +++ b/packages/@aws-cdk/aws-ses/lib/receipt-rule-set.ts @@ -109,12 +109,12 @@ export class ReceiptRuleSet extends ReceiptRuleSetBase { this.receiptRuleSetName = resource.ref; if (props) { - const rules = props.rules || []; - rules.forEach((ruleOption, idx) => this.addRule(`Rule${idx}`, ruleOption)); - if (props.dropSpam) { this.addDropSpamRule(); } + + const rules = props.rules || []; + rules.forEach((ruleOption, idx) => this.addRule(`Rule${idx}`, ruleOption)); } } } diff --git a/packages/@aws-cdk/aws-ses/test/test.receipt-rule-set.ts b/packages/@aws-cdk/aws-ses/test/test.receipt-rule-set.ts index cf4b44f422371..458dacfcf311f 100644 --- a/packages/@aws-cdk/aws-ses/test/test.receipt-rule-set.ts +++ b/packages/@aws-cdk/aws-ses/test/test.receipt-rule-set.ts @@ -58,6 +58,41 @@ export = { test.done(); }, + 'drop spam rule should always appear first'(test: Test) { + // GIVEN + const stack = new Stack(); + + // WHEN + new ReceiptRuleSet(stack, 'RuleSet', { + dropSpam: true, + rules: [ + { + scanEnabled: true, + recipients: ['foo@example.com'], + }, + ], + }); + + // THEN + expect(stack).to(haveResource('AWS::SES::ReceiptRule', { + Rule: { + Enabled: true, + Recipients: [ + 'foo@example.com', + ], + ScanEnabled: true, + }, + // All "regular" rules should come after the drop spam rule + After: { + Ref: 'RuleSetDropSpamRule5809F51B', + }, + })); + + expect(stack).to(haveResource('AWS::Lambda::Function')); + + test.done(); + }, + 'import receipt rule set'(test: Test) { // GIVEN const stack = new Stack(); diff --git a/packages/@aws-cdk/cfnspec/CHANGELOG.md b/packages/@aws-cdk/cfnspec/CHANGELOG.md index 4f7501decae02..85274a4543fbf 100644 --- a/packages/@aws-cdk/cfnspec/CHANGELOG.md +++ b/packages/@aws-cdk/cfnspec/CHANGELOG.md @@ -1,3 +1,86 @@ +# CloudFormation Resource Specification v40.0.0 + +## New Resource Types + + +## Attribute Changes + +* AWS::EC2::DHCPOptions Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html +* AWS::EC2::DHCPOptions DhcpOptionsId (__added__) + +## Property Changes + +* AWS::AutoScaling::ScalingPolicy PredictiveScalingConfiguration (__added__) +* AWS::EC2::DHCPOptions DomainName.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-domainname + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-domainname +* AWS::EC2::DHCPOptions DomainNameServers.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-domainnameservers + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-domainnameservers +* AWS::EC2::DHCPOptions NetbiosNameServers.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-netbiosnameservers + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-netbiosnameservers +* AWS::EC2::DHCPOptions NetbiosNodeType.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-netbiosnodetype + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-netbiosnodetype +* AWS::EC2::DHCPOptions NtpServers.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-ntpservers + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ntpservers +* AWS::EC2::DHCPOptions Tags.Documentation (__changed__) + * Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-tags + * New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-tags +* AWS::Redshift::Cluster AquaConfigurationStatus (__added__) +* AWS::Redshift::Cluster AvailabilityZoneRelocation (__added__) +* AWS::Redshift::Cluster AvailabilityZoneRelocationStatus (__added__) +* AWS::Redshift::Cluster Classic (__added__) +* AWS::Redshift::Cluster DeferMaintenance (__added__) +* AWS::Redshift::Cluster DeferMaintenanceDuration (__added__) +* AWS::Redshift::Cluster DeferMaintenanceEndTime (__added__) +* AWS::Redshift::Cluster DeferMaintenanceIdentifier (__added__) +* AWS::Redshift::Cluster DeferMaintenanceStartTime (__added__) +* AWS::Redshift::Cluster DestinationRegion (__added__) +* AWS::Redshift::Cluster EnhancedVpcRouting (__added__) +* AWS::Redshift::Cluster MaintenanceTrackName (__added__) +* AWS::Redshift::Cluster ManualSnapshotRetentionPeriod (__added__) +* AWS::Redshift::Cluster ResourceAction (__added__) +* AWS::Redshift::Cluster RevisionTarget (__added__) +* AWS::Redshift::Cluster RotateEncryptionKey (__added__) +* AWS::Redshift::Cluster SnapshotCopyGrantName (__added__) +* AWS::Redshift::Cluster SnapshotCopyManual (__added__) +* AWS::Redshift::Cluster SnapshotCopyRetentionPeriod (__added__) +* AWS::Redshift::Cluster AvailabilityZone.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::Redshift::Cluster ElasticIp.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::Redshift::Cluster Encrypted.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::Redshift::Cluster KmsKeyId.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::Redshift::Cluster Port.UpdateType (__changed__) + * Old: Immutable + * New: Mutable +* AWS::SageMaker::EndpointConfig AsyncInferenceConfig (__added__) + +## Property Type Changes + +* AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration (__added__) +* AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification (__added__) +* AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric (__added__) +* AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair (__added__) +* AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric (__added__) +* AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig (__added__) +* AWS::SageMaker::EndpointConfig.AsyncInferenceConfig (__added__) +* AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig (__added__) +* AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig (__added__) +* AWS::WAFv2::WebACL.ManagedRuleGroupStatement Version (__added__) + + # CloudFormation Resource Specification v39.10.0 ## New Resource Types diff --git a/packages/@aws-cdk/cfnspec/build-tools/spec-diff.ts b/packages/@aws-cdk/cfnspec/build-tools/spec-diff.ts index f4aa0ee7daab3..6b5a0d6d466f9 100644 --- a/packages/@aws-cdk/cfnspec/build-tools/spec-diff.ts +++ b/packages/@aws-cdk/cfnspec/build-tools/spec-diff.ts @@ -106,6 +106,11 @@ async function main() { }); } break; + case 'Documentation': + describeChanges(resourceType, key, update.Documentation).forEach(change => { + attributeChanges.push(change); + }); + break; default: throw new Error(`Unexpected update to ${resourceType}: ${key}`); } diff --git a/packages/@aws-cdk/cfnspec/cfn.version b/packages/@aws-cdk/cfnspec/cfn.version index 3520fac4397ab..e9340fd6f7115 100644 --- a/packages/@aws-cdk/cfnspec/cfn.version +++ b/packages/@aws-cdk/cfnspec/cfn.version @@ -1 +1 @@ -39.10.0 +40.0.0 diff --git a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json index ebcff7129953c..1bb4dde7c70f4 100644 --- a/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json +++ b/packages/@aws-cdk/cfnspec/spec-source/000_CloudFormationResourceSpecification.json @@ -8641,6 +8641,123 @@ } } }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html", + "Properties": { + "MaxCapacityBreachBehavior": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-maxcapacitybreachbehavior", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "MaxCapacityBuffer": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-maxcapacitybuffer", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "MetricSpecifications": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-metricspecifications", + "DuplicatesAllowed": false, + "ItemType": "PredictiveScalingMetricSpecification", + "Required": true, + "Type": "List", + "UpdateType": "Mutable" + }, + "Mode": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-mode", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SchedulingBufferTime": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-schedulingbuffertime", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html", + "Properties": { + "PredefinedLoadMetricSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedloadmetricspecification", + "Required": false, + "Type": "PredictiveScalingPredefinedLoadMetric", + "UpdateType": "Mutable" + }, + "PredefinedMetricPairSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedmetricpairspecification", + "Required": false, + "Type": "PredictiveScalingPredefinedMetricPair", + "UpdateType": "Mutable" + }, + "PredefinedScalingMetricSpecification": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedscalingmetricspecification", + "Required": false, + "Type": "PredictiveScalingPredefinedScalingMetric", + "UpdateType": "Mutable" + }, + "TargetValue": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-targetvalue", + "PrimitiveType": "Double", + "Required": true, + "UpdateType": "Mutable" + } + } + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html", + "Properties": { + "PredefinedMetricType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric-predefinedmetrictype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ResourceLabel": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric-resourcelabel", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html", + "Properties": { + "PredefinedMetricType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair-predefinedmetrictype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ResourceLabel": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair-resourcelabel", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html", + "Properties": { + "PredefinedMetricType": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric-predefinedmetrictype", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Mutable" + }, + "ResourceLabel": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric-resourcelabel", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + } + } + }, "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html", "Properties": { @@ -56904,6 +57021,74 @@ } } }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceclientconfig.html", + "Properties": { + "MaxConcurrentInvocationsPerInstance": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceclientconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceclientconfig-maxconcurrentinvocationsperinstance", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Immutable" + } + } + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceconfig.html", + "Properties": { + "ClientConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceconfig-clientconfig", + "Required": false, + "Type": "AsyncInferenceClientConfig", + "UpdateType": "Immutable" + }, + "OutputConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceconfig-outputconfig", + "Required": true, + "Type": "AsyncInferenceOutputConfig", + "UpdateType": "Immutable" + } + } + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferencenotificationconfig.html", + "Properties": { + "ErrorTopic": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferencenotificationconfig.html#cfn-sagemaker-endpointconfig-asyncinferencenotificationconfig-errortopic", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "SuccessTopic": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferencenotificationconfig.html#cfn-sagemaker-endpointconfig-asyncinferencenotificationconfig-successtopic", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + } + } + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html", + "Properties": { + "KmsKeyId": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceoutputconfig-kmskeyid", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Immutable" + }, + "NotificationConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceoutputconfig-notificationconfig", + "Required": false, + "Type": "AsyncInferenceNotificationConfig", + "UpdateType": "Immutable" + }, + "S3OutputPath": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-asyncinferenceoutputconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceoutputconfig-s3outputpath", + "PrimitiveType": "String", + "Required": true, + "UpdateType": "Immutable" + } + } + }, "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-endpointconfig-datacaptureconfig-capturecontenttypeheader.html", "Properties": { @@ -60972,6 +61157,12 @@ "PrimitiveType": "String", "Required": true, "UpdateType": "Mutable" + }, + "Version": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupstatement.html#cfn-wafv2-webacl-managedrulegroupstatement-version", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" } } }, @@ -61705,7 +61896,7 @@ } } }, - "ResourceSpecificationVersion": "39.10.0", + "ResourceSpecificationVersion": "40.0.0", "ResourceTypes": { "AWS::ACMPCA::Certificate": { "Attributes": { @@ -66484,6 +66675,12 @@ "Required": false, "UpdateType": "Mutable" }, + "PredictiveScalingConfiguration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration", + "Required": false, + "Type": "PredictiveScalingConfiguration", + "UpdateType": "Mutable" + }, "ScalingAdjustment": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-scalingadjustment", "PrimitiveType": "Integer", @@ -73299,16 +73496,21 @@ } }, "AWS::EC2::DHCPOptions": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html", + "Attributes": { + "DhcpOptionsId": { + "PrimitiveType": "String" + } + }, + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html", "Properties": { "DomainName": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-domainname", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-domainname", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" }, "DomainNameServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-domainnameservers", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-domainnameservers", "DuplicatesAllowed": false, "PrimitiveItemType": "String", "Required": false, @@ -73316,7 +73518,7 @@ "UpdateType": "Immutable" }, "NetbiosNameServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-netbiosnameservers", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-netbiosnameservers", "DuplicatesAllowed": false, "PrimitiveItemType": "String", "Required": false, @@ -73324,13 +73526,13 @@ "UpdateType": "Immutable" }, "NetbiosNodeType": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-netbiosnodetype", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-netbiosnodetype", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Immutable" }, "NtpServers": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-ntpservers", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ntpservers", "DuplicatesAllowed": true, "PrimitiveItemType": "String", "Required": false, @@ -73338,7 +73540,7 @@ "UpdateType": "Immutable" }, "Tags": { - "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html#cfn-ec2-dhcpoptions-tags", + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-tags", "DuplicatesAllowed": true, "ItemType": "Tag", "Required": false, @@ -93067,6 +93269,12 @@ "Required": false, "UpdateType": "Mutable" }, + "AquaConfigurationStatus": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-aquaconfigurationstatus", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "AutomatedSnapshotRetentionPeriod": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-automatedsnapshotretentionperiod", "PrimitiveType": "Integer", @@ -93077,7 +93285,25 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-availabilityzone", "PrimitiveType": "String", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" + }, + "AvailabilityZoneRelocation": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-availabilityzonerelocation", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "AvailabilityZoneRelocationStatus": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-availabilityzonerelocationstatus", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "Classic": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-classic", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" }, "ClusterIdentifier": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-clusteridentifier", @@ -93123,17 +93349,53 @@ "Required": true, "UpdateType": "Immutable" }, + "DeferMaintenance": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-defermaintenance", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "DeferMaintenanceDuration": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-defermaintenanceduration", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, + "DeferMaintenanceEndTime": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-defermaintenanceendtime", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "DeferMaintenanceIdentifier": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-defermaintenanceidentifier", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "DeferMaintenanceStartTime": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-defermaintenancestarttime", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "DestinationRegion": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-destinationregion", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, "ElasticIp": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-elasticip", "PrimitiveType": "String", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" }, "Encrypted": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-encrypted", "PrimitiveType": "Boolean", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" }, "Endpoint": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-endpoint", @@ -93141,6 +93403,12 @@ "Type": "Endpoint", "UpdateType": "Mutable" }, + "EnhancedVpcRouting": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-enhancedvpcrouting", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, "HsmClientCertificateIdentifier": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-hsmclientcertificateidentifier", "PrimitiveType": "String", @@ -93165,7 +93433,7 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-kmskeyid", "PrimitiveType": "String", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" }, "LoggingProperties": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-loggingproperties", @@ -93173,6 +93441,18 @@ "Type": "LoggingProperties", "UpdateType": "Mutable" }, + "MaintenanceTrackName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-maintenancetrackname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "ManualSnapshotRetentionPeriod": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-manualsnapshotretentionperiod", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, "MasterUserPassword": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-masteruserpassword", "PrimitiveType": "String", @@ -93207,7 +93487,7 @@ "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-port", "PrimitiveType": "Integer", "Required": false, - "UpdateType": "Immutable" + "UpdateType": "Mutable" }, "PreferredMaintenanceWindow": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-preferredmaintenancewindow", @@ -93221,12 +93501,48 @@ "Required": false, "UpdateType": "Mutable" }, + "ResourceAction": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-resourceaction", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "RevisionTarget": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-revisiontarget", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "RotateEncryptionKey": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-rotateencryptionkey", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, "SnapshotClusterIdentifier": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotclusteridentifier", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" }, + "SnapshotCopyGrantName": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotcopygrantname", + "PrimitiveType": "String", + "Required": false, + "UpdateType": "Mutable" + }, + "SnapshotCopyManual": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotcopymanual", + "PrimitiveType": "Boolean", + "Required": false, + "UpdateType": "Mutable" + }, + "SnapshotCopyRetentionPeriod": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotcopyretentionperiod", + "PrimitiveType": "Integer", + "Required": false, + "UpdateType": "Mutable" + }, "SnapshotIdentifier": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html#cfn-redshift-cluster-snapshotidentifier", "PrimitiveType": "String", @@ -96592,6 +96908,12 @@ }, "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html", "Properties": { + "AsyncInferenceConfig": { + "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html#cfn-sagemaker-endpointconfig-asyncinferenceconfig", + "Required": false, + "Type": "AsyncInferenceConfig", + "UpdateType": "Immutable" + }, "DataCaptureConfig": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-endpointconfig.html#cfn-sagemaker-endpointconfig-datacaptureconfig", "Required": false,