Skip to content
EOL Watch
Search itemsOpen menu

aws breaking changes

Terraform AWS provider, published as hashicorp/aws.

AWS

Latest v6.73.0, released ยท 8 releases that list breaking changes in the last 12 months

Pick your version

For example 5.0.0 or ~> 5.0. A typed value wins over the list.

Every release from v5.0.0 up to v6.73.0: 19 releases with breaking changes, 190 changes

Breaking changes

v6.73.0

Release notes for v6.73.0

aws_wafv2_web_acl_rule

  • resource/aws_wafv2_web_acl_rule: Removes and_statement from statement blocks nested in and_statement, and or_statement from statement blocks nested in or_statement. These values are rejected by AWS. Source for aws_wafv2_web_acl_rule in v6.73.0
  • resource/aws_wafv2_web_acl_rule: Removes managed_rule_group_statement, rate_based_statement and rule_group_reference_statement from statement blocks nested in and_statement, not_statement and or_statement. These values are rejected by AWS. Source for aws_wafv2_web_acl_rule in v6.73.0
  • resource/aws_wafv2_web_acl_rule: Removes or_statement from statement blocks nested in or_statement. These values are rejected by AWS. Source for aws_wafv2_web_acl_rule in v6.73.0

v6.70.0

Release notes for v6.70.0

aws_route53domains_delegation_signer_record

  • resource/aws_route53domains_delegation_signer_record: Change the format of the import ID from domain_name,dnssec_key_id to domain_name,flags,algorithm,public_key. This is acceptable in a minor version because AWS no longer return DNSKEY flags and delegation signer records can no longer reliably be found by domain name and key ID Source for aws_route53domains_delegation_signer_record in v6.70.0

v6.68.0

Release notes for v6.68.0

aws_docdb_cluster

  • resource/aws_docdb_cluster: availability_zones now validates that at most 3 items are provided at plan time. This is acceptable in a minor version because AWS would always reject requests with more than 3 availability zones at apply time. Source for aws_docdb_cluster in v6.68.0

aws_rds_cluster

  • resource/aws_rds_cluster: availability_zones now validates that at most 3 items are provided at plan time. This is acceptable in a minor version because AWS would always reject requests with more than 3 availability zones at apply time. Source for aws_rds_cluster in v6.68.0

v6.53.0

Release notes for v6.53.0

aws_pinpointsmsvoicev2_phone_number

  • resource/aws_pinpointsmsvoicev2_phone_number: Remove provider-side defaults for opt_out_list_name and two_way_channel_enabled in favor of AWS server-side defaults (Default and false respectively). Configurations that omit these attributes will now show (known after apply) on first plan instead of the previous static value; the post-apply state is unchanged. This change mitigates persistent drift when the phone number is managed by an aws_pinpointsmsvoicev2_pool. Source for aws_pinpointsmsvoicev2_phone_number in v6.53.0

v6.46.0

Release notes for v6.46.0

aws_xray_resource_policy

  • resource/aws_xray_resource_policy: Changes to policy_name now force resource recreation. Technically this is a breaking change but the resource did not function correctly previously; updating policy_name would leave an orphaned policy with the old name in AWS Source for aws_xray_resource_policy in v6.46.0

v6.42.0

Release notes for v6.42.0

aws_mq_configuration

  • resource/aws_mq_configuration: Destruction of this resource will now delete the configuration. Previously delete was a no-op due to missing API operations, leaving resources in an unmanaged state. For this reason a breaking change was deemed acceptable in a minor version. This functionality requires the mq:DeleteConfiguration IAM permission. To restore the previous no-op behavior, set skip_destroy to true. Source for aws_mq_configuration in v6.42.0

v6.37.0

Release notes for v6.37.0

aws_lakeformation_opt_in

v6.21.0

Release notes for v6.21.0

aws_bedrockagentcore_browser

v6.15.0

Release notes for v6.15.0

aws_ecs_service

v6.0.0

Major

Release notes for v6.0.0Upgrade guide for v6.0.0

aws_ami

  • data-source/aws_ami: The severity of the diagnostic returned when most_recent is true and owner and image ID filter criteria has been increased to an error. Existing configurations which were previously receiving a warning diagnostic will now fail to apply. To prevent this error, set the owner argument or include a filter block with an image-id or owner-id name/value pair. To continue using unsafe filter values with most_recent set to true, set the new allow_unsafe_filter argument to true. This is not recommended. Source for aws_ami in v6.0.0

aws_ecs_task_definition

aws_ecs_task_execution

aws_elbv2_listener_rule

  • data-source/aws_elbv2_listener_rule: The action.authenticate_cognito, action.authenticate_oidc, action.fixed_response, action.forward, action.forward.stickiness, action.redirect, condition.host_header, condition.http_header, condition.http_request_method, condition.path_pattern, condition.query_string, and condition.source_ip attributes are now list nested blocks instead of single nested blocks Source for aws_elbv2_listener_rule in v6.0.0

aws_identitystore_user

aws_launch_template

aws_opensearch_domain

aws_opensearchserverless_security_config

aws_service_discovery_service

aws_accessanalyzer_archive_rule

aws_alb_target_group

aws_api_gateway_account

aws_api_gateway_deployment

  • resource/aws_api_gateway_deployment: Remove canary_settings, execution_arn, invoke_url, stage_description, and stage_name arguments. Instead, use the aws_api_gateway_stage resource to manage stages. Source for aws_api_gateway_deployment in v6.0.0

aws_batch_compute_environment

aws_batch_compute_environment_data_source

aws_batch_job_queue

aws_bedrock_model_invocation_logging_configuration

aws_cloudfront_key_value_store

aws_cloudfront_response_headers_policy

aws_cloudtrail_event_data_store

aws_cognito_user_in_group

aws_cur_report_definition

aws_db_instance

  • resource/aws_db_instance: character_set_name now cannot be set with replicate_source_db, restore_to_point_in_time, s3_import, or snapshot_identifier. Source for aws_db_instance in v6.0.0

aws_dms_endpoint

aws_dx_gateway_association

aws_ec2_spot_instance_fleet

aws_ec2_spot_instance_request

aws_eip

aws_eks_addon

aws_elasticache_cluster

aws_elasticache_replication_group

aws_evidently_feature

aws_flow_log

aws_globalaccelerator_accelerator

aws_guardduty_detector

aws_guardduty_organization_configuration

aws_identitystore_group

aws_imagebuilder_container_recipe

  • resource/aws_imagebuilder_container_recipe: instance_configuration.block_device_mapping.ebs.delete_on_termination and instance_configuration.block_device_mapping.ebs.encrypted now only accept one of "" (empty string), true, or false Source for aws_imagebuilder_container_recipe in v6.0.0

aws_imagebuilder_image_recipe

aws_instance

aws_lb_listener

  • resource/aws_lb_listener: mutual_authentication attributes advertise_trust_store_ca_names, ignore_client_certificate_expiry, and trust_store_arn are only valid if mode is verify Source for aws_lb_listener in v6.0.0

aws_lb_target_group

aws_mq_broker

aws_networkmanager_core_network

aws_paymentcryptography_key

aws_quicksight_data_set

aws_redshift_cluster

aws_rekognition_stream_processor

aws_resiliencehub_resiliency_policy

aws_sagemaker_app_image_config

aws_sagemaker_image_version

aws_sagemaker_notebook_instance

aws_ssm_association

aws_verifiedpermissions_schema

aws_wafv2_web_acl

  • resource/aws_wafv2_web_acl: rule.statement.managed_rule_group_statement.managed_rule_group_configs.aws_managed_rules_bot_control_rule_set.enable_machine_learning now defaults to false Source for aws_wafv2_web_acl in v6.0.0

Other changes

v5.90.0

Release notes for v5.90.0

aws_s3_bucket_lifecycle_configuration

v5.75.0

Release notes for v5.75.0

aws_api_gateway_stage

v5.68.0

Release notes for v5.68.0

aws_lexv2models_slot_type

  • resource/aws_lexv2models_slot_type: Within the composite_slot_type_setting block, the subslots argument has been renamed sub_slots. See the linked pull request for additional justification on this change. The previous misnaming effectively made this argument unusable, therefore a breaking change in a minor version was deemed acceptable. Source for aws_lexv2models_slot_type in v5.68.0

v5.67.0

Release notes for v5.67.0

aws_lexv2models_slot_type

  • resource/aws_lexv2models_slot_type: Within the value_selection_setting.advanced_recognition_setting block, the audio_recognition_setting argument has been renamed audio_recognition_strategy Source for aws_lexv2models_slot_type in v5.67.0
  • resource/aws_lexv2models_slot_type: Within the value_selection_setting.advanced_recognition_setting block, the audio_recognition_setting argument has been renamed audio_recognition_strategy. See the linked pull request for additional justification on this change. The previous misnaming effectively made this argument unusable, therefore a breaking change in a minor version was deemed acceptable. Source for aws_lexv2models_slot_type in v5.67.0

v5.27.0

Release notes for v5.27.0

  • provider: This release includes an update to the AWS SDK for Go v2 with breaking type changes to several services: internetmonitor, ivschat, pipes, and s3. These changes primarily affect how arguments with default values are serialized for outbound requests, changing scalar types to pointers. See this AWS SDK for Go V2 issue for additional context. The corresponding provider changes should make this breakfix transparent to users, but as with any breaking change there is the potential for missed edge cases. If errors are observed in the impacted resources, please link to this dependency update pull request in the bug report Source for this change in v5.27.0

v5.23.0

Release notes for v5.23.0

  • provider: This release includes an update to the AWS SDK for Go v2 with breaking type changes to several services: finspace, kafka, medialive, rds, s3control, timestreamwrite, and xray. These changes primarily affect how arguments with default values are serialized for outbound requests, changing scalar types to pointers. See this AWS SDK for Go V2 issue for additional context. The corresponding provider changes should make this breakfix transparent to users, but as with any breaking change there is the potential for missed edge cases. If errors are observed in the impacted resources, please link to this dependency update pull request in the bug report. Source for this change in v5.23.0

v5.19.0

Release notes for v5.19.0

aws_s3_bucket_object

aws_s3_object

v5.1.0

Release notes for v5.1.0

aws_iam_role

  • resource/aws_iam_role: The role_last_used attribute has been removed. Use the aws_iam_role data source instead. Source for aws_iam_role in v5.1.0
  • resource/aws_iam_role: The role_last_used attribute has been removed. Use the aws_iam_role data source instead. See the community feedback provided in the linked issue for additional justification on this change. As the attribute is read-only, unlikely to be used as an input to another resource, and available in the corresponding data source, a breaking change in a minor version was deemed preferable to a long deprecation/removal cycle in this circumstance. Source for aws_iam_role in v5.1.0

v5.0.0

Major

Release notes for v5.0.0Upgrade guide for v5.0.0

aws_api_gateway_rest_api

aws_connect_hours_of_operation

aws_db_instance

aws_elasticache_cluster

aws_elasticache_replication_group

aws_iam_policy_document

aws_identitystore_group

aws_identitystore_user

aws_launch_configuration

aws_redshift_cluster

aws_secretsmanager_secret

aws_vpc_peering_connection

aws_acmpca_certificate_authority

aws_autoscaling_attachment

aws_autoscaling_group

aws_budgets_budget

aws_ce_anomaly_subscription

aws_cloudwatch_event_target

aws_codebuild_project

aws_connect_queue

aws_connect_routing_profile

aws_default_vpc

  • resource/aws_default_vpc: With the retirement of EC2-Classic the enable_classiclink and enable_classiclink_dns_support attributes have been removed Source for aws_default_vpc in v5.0.0

aws_dms_endpoint

aws_docdb_cluster

aws_ec2_client_vpn_endpoint

aws_ec2_client_vpn_network_association

aws_ecs_cluster

aws_eip

aws_eip_association

aws_kinesis_firehose_delivery_stream

  • resource/aws_kinesis_firehose_delivery_stream: Remove s3_configuration attribute from the root of the resource. s3_configuration is now a part of the following blocks: elasticsearch_configuration, opensearch_configuration, redshift_configuration, splunk_configuration, and http_endpoint_configuration Source for aws_kinesis_firehose_delivery_stream in v5.0.0
  • resource/aws_kinesis_firehose_delivery_stream: Remove s3 as an option for destination. Use extended_s3 instead Source for aws_kinesis_firehose_delivery_stream in v5.0.0
  • resource/aws_kinesis_firehose_delivery_stream: Rename extended_s3_configuration.0.s3_backup_configuration.0.buffer_size and extended_s3_configuration.0.s3_backup_configuration.0.buffer_interval to extended_s3_configuration.0.s3_backup_configuration.0.buffering_size and extended_s3_configuration.0.s3_backup_configuration.0.buffering_interval, respectively Source for aws_kinesis_firehose_delivery_stream in v5.0.0
  • resource/aws_kinesis_firehose_delivery_stream: Rename redshift_configuration.0.s3_backup_configuration.0.buffer_size and redshift_configuration.0.s3_backup_configuration.0.buffer_interval to redshift_configuration.0.s3_backup_configuration.0.buffering_size and redshift_configuration.0.s3_backup_configuration.0.buffering_interval, respectively Source for aws_kinesis_firehose_delivery_stream in v5.0.0
  • resource/aws_kinesis_firehose_delivery_stream: Rename s3_configuration.0.buffer_size and s3_configuration.0.buffer_internval to s3_configuration.0.buffering_size and s3_configuration.0.buffering_internval, respectively Source for aws_kinesis_firehose_delivery_stream in v5.0.0

aws_lightsail_instance

aws_medialive_multiplex_program

aws_msk_cluster

aws_neptune_cluster

aws_networkmanager_core_network

aws_rds_cluster

aws_rds_cluster_instance

aws_route

  • resource/aws_route: instance_id can no longer be set in configurations. Use network_interface_id instead, for example, setting network_interface_id to aws_instance.test.primary_network_interface_id. Source for aws_route in v5.0.0

aws_route_table

  • resource/aws_route_table: route.*.instance_id can no longer be set in configurations. Use route.*.network_interface_id instead, for example, setting network_interface_id to aws_instance.test.primary_network_interface_id. Source for aws_route_table in v5.0.0

aws_security_group

aws_security_group_rule

aws_servicecatalog_product

  • resource/aws_servicecatalog_product: Changes to any provisioning_artifact_parameters arguments now properly trigger a replacement. This fixes incorrect behavior, but may technically be breaking for configurations expecting non-functional in-place updates. Source for aws_servicecatalog_product in v5.0.0

aws_vpc

  • resource/aws_vpc: With the retirement of EC2-Classic the enable_classiclink and enable_classiclink_dns_support attributes have been removed Source for aws_vpc in v5.0.0

aws_vpc_peering_connection_accepter

aws_vpc_peering_connection_options

aws_wafv2_web_acl

  • resource/aws_wafv2_web_acl: The statement.managed_rule_group_statement.excluded_rule and statement.rule_group_reference_statement.excluded_rule attributes have been removed Source for aws_wafv2_web_acl in v5.0.0

aws_wafv2_web_acl_logging_configuration

Other changes

The next retirements and end of support dates for resources managed with the Terraform AWS provider.