What changed in CloudFormation
Latest version 271.0.0, issued
cfn.fyi compares each version of the AWS CloudFormation resource specification with the version before it. See new resource types and changed properties as AWS releases them.
- added
- modified
- removed
01Added resource types5
addedAWS:: Backup:: BackupAccessPointdocs ↗#Link to AWS::Backup::BackupAccessPoint
Type: AWS::Backup::BackupAccessPointProperties: AccessPointInTime: String RecoveryPointArn: String AccessPointPolicy: Json - Value: String Key: String Name: StringFn::GetAtt: AccessPointMetadata: AccessPointInTime: String S3AccessPointArn: String S3AccessPointAlias: String Status: String ResourceArn: String BackupVaultArn: String BackupVaultName: String AccessPointMetadata.S3AccessPointAlias: String CreationTime: String AccessPointMetadata.AccessPointInTime: String AccessPointMetadata.S3AccessPointArn: String ResourceType: String Arn: StringaddedAWS:: Bedrock:: DataAutomationLibraryIngestionJobdocs ↗#Link to AWS::Bedrock::DataAutomationLibraryIngestionJob
Type: AWS::Bedrock::DataAutomationLibraryIngestionJobProperties: EntityType: String OutputConfiguration: S3Uri: String OperationType: String - Value: String Key: String LibraryArn: StringFn::GetAtt: JobArn: String JobStatus: String CreationTime: StringaddedAWS:: DirectConnect:: ResiliencyGroupdocs ↗#Link to AWS::DirectConnect::ResiliencyGroup
Type: AWS::DirectConnect::ResiliencyGroupProperties: ResiliencyGroupName: String ConnectionArns: - String - Value: String Key: String IntendedResiliencyModel: StringFn::GetAtt: ResiliencyGroupId: String ResiliencyGroupArn: StringaddedAWS:: OSIS:: PipelineEndpointdocs ↗#Link to AWS::OSIS::PipelineEndpoint
Type: AWS::OSIS::PipelineEndpointProperties: PipelineArn: String VpcOptions: SubnetIds: - String SecurityGroupIds: - StringFn::GetAtt: Status: String IngestEndpointUrl: String VpcId: String EndpointId: String Arn: StringaddedAWS:: WorkSpaces:: WorkspaceImagedocs ↗#Link to AWS::WorkSpaces::WorkspaceImage
Type: AWS::WorkSpaces::WorkspaceImageProperties: Description: String - Value: String Key: String Name: StringFn::GetAtt: OperatingSystem: Type: String Updates.Description: String Updates: Description: String UpdateAvailable: Boolean State: String RequiredTenancy: String ImageId: String Arn: String OwnerAccountId: String Updates.UpdateAvailable: Boolean OperatingSystem.Type: String Created: String02Modified resource types22
modifiedAWS:: AppSync:: GraphQLApihistorydocs ↗#Link to AWS::AppSync::GraphQLApi
Type: AWS::AppSync::GraphQLApiProperties: # Duplicates allowed: Not specified → Nomodified: AdditionalAuthenticationProviders: # Update requires: No interruption → Some interruptionsmodified: AuthorizerResultTtlInSeconds: Double → Integer # Update requires: No interruption → Some interruptionsmodified: AuthorizerUri: String # Update requires: No interruption → Some interruptionsmodified: IdentityValidationExpression: String OpenIDConnectConfig: # Update requires: No interruption → Some interruptionsmodified: AuthTTL: Double # Update requires: No interruption → Some interruptionsmodified: ClientId: String # Update requires: No interruption → Some interruptionsmodified: IatTTL: Double # Update requires: No interruption → Some interruptionsmodified: Issuer: Stringmodified: EnvironmentVariables: Json → Map of String LambdaAuthorizerConfig: # LambdaAuthorizerConfig: see above OpenIDConnectConfig: # OpenIDConnectConfig: see above # Duplicates allowed: Not specified → No - Tag UserPoolConfig: # Update requires: No interruption → Some interruptionsmodified: AppIdClientRegex: String # Update requires: No interruption → Some interruptionsmodified: AwsRegion: String # Update requires: No interruption → Some interruptionsmodified: DefaultAction: String # Update requires: No interruption → Some interruptionsmodified: UserPoolId: StringmodifiedAWS:: CustomerProfiles:: CalculatedAttributeDefinitionhistorydocs ↗#Link to AWS::CustomerProfiles::CalculatedAttributeDefinition
Type: AWS::CustomerProfiles::CalculatedAttributeDefinitionProperties: # Update requires: No interruption → Replacementmodified: AttributeDetails: # Update requires: No interruption → Replacementmodified: Attributes: - # Update requires: No interruption → Replacementmodified: Name: String # Update requires: No interruption → Replacementmodified: Expression: String # Update requires: No interruption → Replacementmodified: Statistic: StringmodifiedAWS:: CustomerProfiles:: EventTriggerhistorydocs ↗#Link to AWS::CustomerProfiles::EventTrigger
Type: AWS::CustomerProfiles::EventTriggerProperties:added: IntentFilterDefinition:added: Groups:added: - LogicalOperator: Stringadded: Conditions:added: - ComparisonOperator: Stringadded: Values:added: - Stringadded: Intent:added: IntentDomain: Stringadded: Type: Stringadded: LogicalOperator: StringmodifiedAWS:: DAX:: Clusterhistorydocs ↗#Link to AWS::DAX::Cluster
Type: AWS::DAX::ClusterProperties: # Duplicates allowed: Not specified → Yesmodified: AvailabilityZones: - String SSESpecification: # Update requires: No interruption → Replacementmodified: SSEEnabled: Boolean # Duplicates allowed: Not specified → Yesmodified: SecurityGroupIds: - StringmodifiedAWS:: EC2:: ClientVpnEndpointhistorydocs ↗#Link to AWS::EC2::ClientVpnEndpoint
Type: AWS::EC2::ClientVpnEndpointProperties: # Duplicates allowed: Not specified → Yesmodified: AuthenticationOptions: - # Update requires: No interruption → Replacementmodified: ActiveDirectory: # Update requires: No interruption → Replacementmodified: DirectoryId: String # Update requires: No interruption → Replacementmodified: FederatedAuthentication: # Update requires: No interruption → Replacementmodified: SAMLProviderArn: String # Update requires: No interruption → Replacementmodified: SelfServiceSAMLProviderArn: String # Update requires: No interruption → Replacementmodified: MutualAuthentication: # Update requires: No interruption → Replacementmodified: ClientRootCertificateChainArn: String # Update requires: No interruption → Replacementmodified: Type: String DevicePostureOptions: # Duplicates allowed: Not specified → Yesmodified: TrustProviders: - DevicePostureTrustProvider # Duplicates allowed: Not specified → Yesmodified: DnsServers: - String # Duplicates allowed: Not specified → Yesmodified: SecurityGroupIds: - String # Duplicates allowed: Not specified → Yes - # Update requires: No interruption → Replacementmodified: ResourceType: String # Update requires: No interruption → Replacement # Duplicates allowed: Not specified → Yes - Tag TransitGatewayConfiguration: # Update requires: No interruption → Replacement # Duplicates allowed: Not specified → Yesmodified: AvailabilityZoneIds: - String # Update requires: No interruption → Replacement # Duplicates allowed: Not specified → Yesmodified: AvailabilityZones: - String # Update requires: No interruption → Replacementmodified: TransitGatewayId: StringFn::GetAtt:added: Id: StringmodifiedAWS:: EC2:: ClientVpnTargetNetworkAssociationhistorydocs ↗#Link to AWS::EC2::ClientVpnTargetNetworkAssociation
Type: AWS::EC2::ClientVpnTargetNetworkAssociationFn::GetAtt:added: AssociationId: StringmodifiedAWS:: ECS:: CapacityProviderhistorydocs ↗#Link to AWS::ECS::CapacityProvider
Type: AWS::ECS::CapacityProviderProperties: ManagedInstancesProvider: InstanceLaunchTemplate:added: NitroEnclavesEnabled: BooleanmodifiedAWS:: ECS:: DaemonTaskDefinitionhistorydocs ↗#Link to AWS::ECS::DaemonTaskDefinition
Type: AWS::ECS::DaemonTaskDefinitionProperties: Volumes:added: - LogDriverVolumeConfiguration:added: Driver: StringmodifiedAWS:: EMR:: Clusterhistorydocs ↗#Link to AWS::EMR::Cluster
Type: AWS::EMR::ClusterProperties: # Duplicates allowed: No → Yesmodified: Applications: - # Update requires: No interruption → Replacement # Duplicates allowed: No → Not specifiedmodified: AdditionalInfo: <key>: String # Update requires: No interruption → Replacement # Duplicates allowed: No → Yesmodified: Args: - String # Update requires: No interruption → Replacementmodified: Name: String # Update requires: No interruption → Replacementmodified: Version: String AutoTerminationPolicy:modified: IdleTimeout: Long → Integer # Duplicates allowed: No → Yesmodified: BootstrapActions: - # Update requires: No interruption → Replacementmodified: Name: String # Update requires: No interruption → Replacementmodified: ScriptBootstrapAction: # Update requires: No interruption → Replacement # Duplicates allowed: No → Yesmodified: Args: - String # Update requires: No interruption → Replacementmodified: Path: String # Duplicates allowed: No → Yesmodified: Configurations: List of Configuration → List of EMRConfiguration # Update requires: No interruption → Some interruptionsmodified: Classification: String # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Not specifiedmodified: ConfigurationProperties: <key>: String # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Yesmodified: Configurations: List of Configuration → List of EMRConfiguration # EMRConfiguration: see above Instances: # Update requires: Replacement → Some interruptions # Duplicates allowed: No → Yesmodified: AdditionalMasterSecurityGroups: - String # Update requires: Replacement → Some interruptions # Duplicates allowed: No → Yesmodified: AdditionalSlaveSecurityGroups: - String # Update requires: Replacement → Some interruptionsmodified: CoreInstanceFleet: # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Yesmodified: InstanceTypeConfigs: - # Update requires: No interruption → Some interruptionsmodified: BidPrice: String # Update requires: No interruption → Some interruptionsmodified: BidPriceAsPercentageOfOnDemandPrice: Double # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Yesmodified: Configurations: List of Configuration → List of EMRConfiguration # EMRConfiguration: see above # Update requires: Replacement → Some interruptionsmodified: CustomAmiId: String # Update requires: No interruption → Some interruptionsmodified: EbsConfiguration: # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Yesmodified: EbsBlockDeviceConfigs: - # Update requires: No interruption → Some interruptionsmodified: VolumeSpecification: # Update requires: No interruption → Some interruptionsmodified: Iops: Integer # Update requires: No interruption → Some interruptionsmodified: SizeInGB: Integer # Update requires: No interruption → Some interruptionsmodified: Throughput: Integer # Update requires: No interruption → Some interruptionsmodified: VolumeType: String # Update requires: No interruption → Some interruptionsmodified: VolumesPerInstance: Integer # Update requires: No interruption → Some interruptionsmodified: EbsOptimized: Boolean # Update requires: No interruption → Some interruptionsmodified: InstanceType: String # Update requires: No interruption → Some interruptionsmodified: Priority: Double # Update requires: No interruption → Some interruptionsmodified: WeightedCapacity: Integer # Update requires: Replacement → Some interruptionsmodified: LaunchSpecifications: # Update requires: No interruption → Some interruptionsmodified: OnDemandSpecification: # Update requires: No interruption → Some interruptionsmodified: AllocationStrategy: String # Update requires: No interruption → Some interruptionsmodified: CapacityReservationOptions: # Update requires: No interruption → Some interruptionsmodified: CapacityReservationPreference: String # Update requires: No interruption → Some interruptionsmodified: CapacityReservationResourceGroupArn: String # Update requires: No interruption → Some interruptionsmodified: UsageStrategy: String # Update requires: No interruption → Some interruptionsmodified: SpotSpecification: # Update requires: No interruption → Some interruptionsmodified: AllocationStrategy: String # Update requires: No interruption → Some interruptionsmodified: BlockDurationMinutes: Integer # Update requires: No interruption → Some interruptionsmodified: TimeoutAction: String # Update requires: No interruption → Some interruptionsmodified: TimeoutDurationMinutes: Integer # Update requires: Replacement → Some interruptionsmodified: Name: String # Update requires: No interruption → Some interruptionsmodified: ResizeSpecifications: # Update requires: No interruption → Some interruptionsmodified: OnDemandResizeSpecification: # Update requires: No interruption → Some interruptionsmodified: AllocationStrategy: String # Update requires: No interruption → Some interruptionsmodified: CapacityReservationOptions: # OnDemandCapacityReservationOptions: see above # Update requires: No interruption → Some interruptionsmodified: TimeoutDurationMinutes: Integer # Update requires: No interruption → Some interruptionsmodified: SpotResizeSpecification: # Update requires: No interruption → Some interruptionsmodified: AllocationStrategy: String # Update requires: No interruption → Some interruptionsmodified: TimeoutDurationMinutes: Integer # Update requires: No interruption → Some interruptionsmodified: TargetOnDemandCapacity: Integer # Update requires: No interruption → Some interruptionsmodified: TargetSpotCapacity: Integer # Update requires: Replacement → Some interruptionsmodified: CoreInstanceGroup: # Update requires: No interruption → Some interruptionsmodified: AutoScalingPolicy: # Update requires: No interruption → Some interruptionsmodified: Constraints: # Update requires: No interruption → Some interruptionsmodified: MaxCapacity: Integer # Update requires: No interruption → Some interruptionsmodified: MinCapacity: Integer # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Yesmodified: Rules: - # Update requires: No interruption → Some interruptionsmodified: Action: # Update requires: No interruption → Some interruptionsmodified: Market: String # Update requires: No interruption → Some interruptionsmodified: SimpleScalingPolicyConfiguration: # Update requires: No interruption → Some interruptionsmodified: AdjustmentType: String # Update requires: No interruption → Some interruptionsmodified: CoolDown: Integer # Update requires: No interruption → Some interruptionsmodified: ScalingAdjustment: Integer # Update requires: No interruption → Some interruptionsmodified: Description: String # Update requires: No interruption → Some interruptionsmodified: Name: String # Update requires: No interruption → Some interruptionsmodified: Trigger: # Update requires: No interruption → Some interruptionsmodified: CloudWatchAlarmDefinition: # Update requires: No interruption → Some interruptionsmodified: ComparisonOperator: String # Update requires: No interruption → Some interruptions # Duplicates allowed: No → Yesmodified: Dimensions: - # Update requires: No interruption → Some interruptionsmodified: Key: String # Update requires: No interruption → Some interruptionsmodified: Value: String # Update requires: No interruption → Some interruptionsmodified: EvaluationPeriods: Integer # Update requires: No interruption → Some interruptionsmodified: MetricName: String # Update requires: No interruption → Some interruptionsmodified: Namespace: String # Update requires: No interruption → Some interruptionsmodified: Period: Integer # Update requires: No interruption → Some interruptionsmodified: Statistic: String # Update requires: No interruption → Some interruptionsmodified: Threshold: Double # Update requires: No interruption → Some interruptionsmodified: Unit: String # Update requires: Replacement → Some interruptionsmodified: BidPrice: String # Update requires: Replacement → Some interruptions # Duplicates allowed: No → Yesmodified: Configurations: List of Configuration → List of EMRConfiguration # EMRConfiguration: see above # Update requires: Replacement → Some interruptionsmodified: CustomAmiId: String # Update requires: Replacement → Some interruptionsmodified: EbsConfiguration: # EbsConfiguration: see above # Update requires: No interruption → Some interruptionsmodified: InstanceCount: Integer # Update requires: Replacement → Some interruptionsmodified: InstanceType: String # Update requires: Replacement → Some interruptionsmodified: Market: String # Update requires: Replacement → Some interruptionsmodified: Name: String # Update requires: Replacement → Some interruptionsmodified: Ec2KeyName: String # Update requires: Replacement → Some interruptionsmodified: Ec2SubnetId: String # Update requires: Replacement → Some interruptions # Duplicates allowed: No → Yesmodified: Ec2SubnetIds: - String # Update requires: Replacement → Some interruptionsmodified: EmrManagedMasterSecurityGroup: String # Update requires: Replacement → Some interruptionsmodified: EmrManagedSlaveSecurityGroup: String # Update requires: Replacement → Some interruptionsmodified: HadoopVersion: String # Update requires: Replacement → Some interruptionsmodified: KeepJobFlowAliveWhenNoSteps: Boolean # Update requires: Replacement → Some interruptionsmodified: MasterInstanceFleet: # InstanceFleetConfig: see above # Update requires: Replacement → Some interruptionsmodified: MasterInstanceGroup: # InstanceGroupConfig: see above # Update requires: Replacement → Some interruptionsmodified: Placement: # Update requires: Replacement → Some interruptionsmodified: AvailabilityZone: String # Update requires: Replacement → Some interruptionsmodified: ServiceAccessSecurityGroup: String # Duplicates allowed: No → Yesmodified: TaskInstanceFleets: # InstanceFleetConfig: see above # Duplicates allowed: No → Yesmodified: TaskInstanceGroups: # InstanceGroupConfig: see above # Update requires: No interruption → Some interruptionsmodified: TerminationProtected: Boolean # Update requires: No interruption → Some interruptionsmodified: UnhealthyNodeReplacement: Boolean KerberosAttributes: # Update requires: No interruption → Replacementmodified: ADDomainJoinPassword: String # Update requires: No interruption → Replacementmodified: ADDomainJoinUser: String # Update requires: No interruption → Replacementmodified: CrossRealmTrustPrincipalPassword: String # Update requires: No interruption → Replacementmodified: KdcAdminPassword: String # Update requires: No interruption → Replacementmodified: Realm: Stringadded: MonitoringConfiguration:added: CloudWatchLogConfiguration:added: EncryptionKeyArn: Stringadded: Enabled: Booleanadded: LogStreamNamePrefix: Stringadded: LogGroupName: Stringadded: LogTypes: Json # Duplicates allowed: No → Yesmodified: PlacementGroupConfigs: - # Update requires: No interruption → Replacementmodified: InstanceRole: String # Update requires: No interruption → Replacementmodified: PlacementStrategy: Stringadded: SessionEnabled: Boolean # Duplicates allowed: No → Yesmodified: Steps: - # Update requires: No interruption → Replacementmodified: ActionOnFailure: String # Update requires: No interruption → Replacementmodified: HadoopJarStep: # Update requires: No interruption → Replacement # Duplicates allowed: No → Yesmodified: Args: - String # Update requires: No interruption → Replacementmodified: Jar: String # Update requires: No interruption → Replacementmodified: MainClass: String # Update requires: No interruption → Replacementmodified: StepProperties: - # Update requires: No interruption → Replacementmodified: Key: String # Update requires: No interruption → Replacementmodified: Value: String # Update requires: No interruption → Replacementmodified: Name: Stringremoved: VisibleToAllUsers: BooleanFn::GetAtt:added: Id: StringmodifiedAWS:: ImageBuilder:: Imagehistorydocs ↗#Link to AWS::ImageBuilder::Image
Type: AWS::ImageBuilder::ImageProperties: ImageScanningConfiguration:added: ImageScanningTypes:added: - Stringadded: ScanResultCondition:added: FixAvailable: Booleanadded: MaximumSeverityLabel: StringmodifiedAWS:: ImageBuilder:: ImagePipelinehistorydocs ↗#Link to AWS::ImageBuilder::ImagePipeline
Type: AWS::ImageBuilder::ImagePipelineProperties: ImageScanningConfiguration:added: ImageScanningTypes:added: - Stringadded: ScanResultCondition:added: FixAvailable: Booleanadded: MaximumSeverityLabel: StringmodifiedAWS:: LakeFormation:: Resourcehistorydocs ↗#Link to AWS::LakeFormation::Resource
Type: AWS::LakeFormation::ResourceProperties: # Update requires: Some interruptions → No interruptionmodified: UseServiceLinkedRole: BooleanFn::GetAtt:added: Id: StringmodifiedAWS:: Lambda:: MicrovmImagehistorydocs ↗#Link to AWS::Lambda::MicrovmImage
Type: AWS::Lambda::MicrovmImageProperties:added: KmsKeyIdentifier: StringmodifiedAWS:: MediaLive:: Channelhistorydocs ↗#Link to AWS::MediaLive::Channel
Type: AWS::MediaLive::ChannelProperties: EncoderSettings: VideoDescriptions: - CodecSettings: Av1Settings:added: FilterSettings:added: AutoFilterSettings: {}added: PerceptualFilterSettings:added: Strength: Stringadded: NoneFilterSettings: {} H264Settings:added: AllowExplicitWeightedPrediction: String FilterSettings:added: AutoFilterSettings: # AutoFilterSettings: see aboveadded: NoneFilterSettings: # NoneFilterSettings: see aboveadded: PerceptualFilterSettings: # PerceptualFilterSettings: see above H265Settings: FilterSettings: # H264H265FilterSettings: see abovemodifiedAWS:: MediaTailor:: Functionhistorydocs ↗#Link to AWS::MediaTailor::Function
Type: AWS::MediaTailor::FunctionProperties: AwsServiceRequestConfiguration:added: Cache:added: TtlMinimumSeconds: Integeradded: TtlMaximumSeconds: Integeradded: Key: String HttpRequestConfiguration:added: Cache: # HttpRequestCacheConfiguration: see above VastRequestConfiguration:added: Cache: # HttpRequestCacheConfiguration: see abovemodifiedAWS:: Route53Profiles:: ProfileAssociationhistorydocs ↗#Link to AWS::Route53Profiles::ProfileAssociation
Type: AWS::Route53Profiles::ProfileAssociationProperties:added: Priority: IntegermodifiedAWS:: SWF:: Domainhistorydocs ↗#Link to AWS::SWF::Domain
Type: AWS::SWF::DomainFn::GetAtt:added: Status: StringmodifiedAWS:: Timestream:: InfluxDBClusterhistorydocs ↗#Link to AWS::Timestream::InfluxDBCluster
Type: AWS::Timestream::InfluxDBClusterProperties:added: KmsKeyId: StringFn::GetAtt:added: EffectiveDbParameterGroupIdentifier: Stringadded: MemberCount: Integeradded: MemberModeCounts:added: - Mode: Stringadded: Count: IntegermodifiedAWS:: Timestream:: InfluxDBInstancehistorydocs ↗#Link to AWS::Timestream::InfluxDBInstance
Type: AWS::Timestream::InfluxDBInstanceProperties:added: KmsKeyId: StringFn::GetAtt:added: DbClusterId: StringmodifiedAWS:: Transfer:: Serverhistorydocs ↗#Link to AWS::Transfer::Server
Type: AWS::Transfer::ServerProperties: ProtocolDetails:added: SftpPorts:added: - CommunicationMode: Stringadded: SftpPort: IntegermodifiedAWS:: Transfer:: Workflowhistorydocs ↗#Link to AWS::Transfer::Workflow
Type: AWS::Transfer::WorkflowProperties:added: StructuredLogDestinations:added: - StringmodifiedAWS:: WAFv2:: WebACLhistorydocs ↗#Link to AWS::WAFv2::WebACL
Type: AWS::WAFv2::WebACLProperties: AssociationConfig:added: ChallengeJavascriptSdkInjection:added: <key>: Json