diff --git a/docs/_generated/cli-flag-coverage.json b/docs/_generated/cli-flag-coverage.json index 5a8f33702..357c17c7d 100644 --- a/docs/_generated/cli-flag-coverage.json +++ b/docs/_generated/cli-flag-coverage.json @@ -187,6 +187,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", @@ -424,6 +425,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", @@ -637,6 +639,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", @@ -890,6 +893,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", @@ -1127,6 +1131,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", diff --git a/docs/_generated/integ-coverage.json b/docs/_generated/integ-coverage.json index a798ef403..34c3f1f43 100644 --- a/docs/_generated/integ-coverage.json +++ b/docs/_generated/integ-coverage.json @@ -3267,6 +3267,7 @@ "iam-role-prefixed-name-update", "infra-security", "intrinsic-functions", + "lambda-esm-self-managed-kafka", "lambda-microvm-image", "lambda-snapstart", "local-invoke-dotnet", @@ -3396,6 +3397,9 @@ "intrinsic-functions": [ "l2" ], + "lambda-esm-self-managed-kafka": [ + "literal" + ], "lambda-microvm-image": [ "l2" ], @@ -3655,7 +3659,8 @@ "dynamodb-stream-filter", "dynamodb-streams", "eventsourcemapping-race", - "fifo-sqs-event-source" + "fifo-sqs-event-source", + "lambda-esm-self-managed-kafka" ], "signals": { "dynamodb-stream-filter": [ @@ -3669,6 +3674,9 @@ ], "fifo-sqs-event-source": [ "literal" + ], + "lambda-esm-self-managed-kafka": [ + "literal" ] } }, @@ -3719,6 +3727,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", @@ -3917,6 +3926,10 @@ "l2", "literal" ], + "lambda-esm-self-managed-kafka": [ + "l2", + "literal" + ], "lambda-event-invoke-config-update": [ "l2" ], @@ -5288,6 +5301,7 @@ "event-driven", "full-stack-demo", "iam-access-key", + "lambda-esm-self-managed-kafka", "local-run-task-from-state", "replacement-immutable-name", "secrets-dynamic-ref", @@ -5307,6 +5321,10 @@ "iam-access-key": [ "l2" ], + "lambda-esm-self-managed-kafka": [ + "l2", + "literal" + ], "local-run-task-from-state": [ "l2", "literal" diff --git a/docs/_generated/integ-last-run.tsv b/docs/_generated/integ-last-run.tsv index f9b5d0d0a..9c164791f 100644 --- a/docs/_generated/integ-last-run.tsv +++ b/docs/_generated/integ-last-run.tsv @@ -145,6 +145,7 @@ lambda-arch-switch 2026-07-26T19:25:15Z PASS 63 verify.sh 0727b sweep-b10 stalen lambda-config-field-removal 2026-07-22T08:19:38Z PASS 140 verify.sh issue #1158 post-rebase re-verify; 6-field removal reset + destroy clean lambda-destinations 2026-07-21T18:15:21Z PASS 81 verify.sh fixture fix: EventInvokeConfig now sdk-routed (#919); rc ok, orph clean lambda-env-removal 2026-07-26T19:16:39Z PASS 70 verify.sh 0727b sweep-b9 staleness re-run (rc=0); account clean +lambda-esm-self-managed-kafka 2026-08-09T04:24:56Z PASS 215 verify.sh #1384 enum key + state-spelling inverse asserted; destroy 5 deleted, 0 errors, 0 orphans lambda-event-invoke-config-update 2026-07-26T18:20:27Z PASS 80 verify.sh 0727b sweep-b3 staleness re-run (rc=0); account clean lambda-layer-version-update 2026-07-26T21:13:17Z PASS 82 verify.sh re-run post review fixes (tab-safe version list); account clean lambda-log-retention 2026-07-21T14:46:30Z PASS 95 verify.sh rc ok, orph clean diff --git a/docs/_generated/scenario-coverage.json b/docs/_generated/scenario-coverage.json index f3b4d248e..eeaffa4dc 100644 --- a/docs/_generated/scenario-coverage.json +++ b/docs/_generated/scenario-coverage.json @@ -1139,6 +1139,11 @@ "annotated": false, "scenarios": [] }, + { + "name": "lambda-esm-self-managed-kafka", + "annotated": false, + "scenarios": [] + }, { "name": "lambda-event-invoke-config-update", "annotated": false, @@ -2584,6 +2589,7 @@ "lambda-config-field-removal", "lambda-destinations", "lambda-env-removal", + "lambda-esm-self-managed-kafka", "lambda-event-invoke-config-update", "lambda-layer-version-update", "lambda-log-retention", diff --git a/docs/cli-flag-coverage.md b/docs/cli-flag-coverage.md index 21bcd5d56..5ffb1fd56 100644 --- a/docs/cli-flag-coverage.md +++ b/docs/cli-flag-coverage.md @@ -38,29 +38,29 @@ Reviewer judgment required per flag — many of these are pure-logic flags adequ | `--concurrency` | [`throttle-wide-dag`](../tests/integration/throttle-wide-dag/) | | `--dry-run` | [`export`](../tests/integration/export/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/) | | `--exclusively` | [`importvalue-chain`](../tests/integration/importvalue-chain/)
[`outputs-only-export`](../tests/integration/outputs-only-export/) | -| `--force` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-invoke-buildkit`](../tests/integration/local-invoke-buildkit/)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`state-info-command`](../tests/integration/state-info-command/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | +| `--force` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-invoke-buildkit`](../tests/integration/local-invoke-buildkit/)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`state-info-command`](../tests/integration/state-info-command/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | | `--force-stateful-recreation` | [`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`update-replace`](../tests/integration/update-replace/) | | `--full-wait` | [`ecs-fargate`](../tests/integration/ecs-fargate/) | | `--no-auto-asset-storage` | [`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/) | | `--no-rollback` | [`rollback-command`](../tests/integration/rollback-command/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/) | | `--no-wait` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/) | -| `--output` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | +| `--output` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | | `--profile` | [`local-start-agentcore`](../tests/integration/local-start-agentcore/) | | `--recreate-via-cc-api` | [`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/) | | `--recreate-via-sdk-provider` | [`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/) | -| `--region` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-directory-bucket`](../tests/integration/s3-directory-bucket/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`state-info-command`](../tests/integration/state-info-command/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | +| `--region` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-directory-bucket`](../tests/integration/s3-directory-bucket/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`state-info-command`](../tests/integration/state-info-command/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | | `--remove-protection` | [`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`remove-protection`](../tests/integration/remove-protection/) | | `--replace` | [`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/) | | `--resource-timeout` | [`docdb-neptune`](../tests/integration/docdb-neptune/)
[`remove-protection`](../tests/integration/remove-protection/) | | `--resource-warn-after` | [`remove-protection`](../tests/integration/remove-protection/) | | `--skip-assets` | [`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-migration`](../tests/integration/asset-migration/) | | `--skip-final-snapshot` | [`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/) | -| `--state-bucket` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/)
[`local-run-task-cdkd-assets`](../tests/integration/local-run-task-cdkd-assets/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-directory-bucket`](../tests/integration/s3-directory-bucket/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`state-info-command`](../tests/integration/state-info-command/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | +| `--state-bucket` | [`acm-certificate`](../tests/integration/acm-certificate/)
[`agentcore-tools`](../tests/integration/agentcore-tools/)
[`alb`](../tests/integration/alb/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`deployment-events`](../tests/integration/deployment-events/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/)
[`importvalue-chain`](../tests/integration/importvalue-chain/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/)
[`local-run-task-cdkd-assets`](../tests/integration/local-run-task-cdkd-assets/)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`outputs-only-export`](../tests/integration/outputs-only-export/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-command`](../tests/integration/rollback-command/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-directory-bucket`](../tests/integration/s3-directory-bucket/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`state-info-command`](../tests/integration/state-info-command/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | | `--state-prefix` | [`importvalue-chain`](../tests/integration/importvalue-chain/) | | `--strict-getatt` | [`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/) | | `--use-cdk-bootstrap-assets` | [`asset-migration`](../tests/integration/asset-migration/) | | `--verbose` | [`cache-streaming`](../tests/integration/cache-streaming/)
[`conditions`](../tests/integration/conditions/)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`docdb-neptune`](../tests/integration/docdb-neptune/)
[`drift-revert`](../tests/integration/drift-revert/)
[`drift-revert-arrays`](../tests/integration/drift-revert-arrays/)
[`drift-revert-vpc`](../tests/integration/drift-revert-vpc/)
[`dynamodb-globaltable`](../tests/integration/dynamodb-globaltable/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`local-invoke-agentcore-from-state`](../tests/integration/local-invoke-agentcore-from-state/)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/)
[`macro-expansion`](../tests/integration/macro-expansion/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`remove-protection`](../tests/integration/remove-protection/)
[`rollback-sqs-cooldown`](../tests/integration/rollback-sqs-cooldown/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`tags-propagation`](../tests/integration/tags-propagation/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/) | -| `--yes` | [`agentcore-tools`](../tests/integration/agentcore-tools/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-directory-bucket`](../tests/integration/s3-directory-bucket/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | +| `--yes` | [`agentcore-tools`](../tests/integration/agentcore-tools/)
[`apigateway`](../tests/integration/apigateway/)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/)
[`apigw-gateway-response`](../tests/integration/apigw-gateway-response/)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/)
[`apigw-usage-plan-key`](../tests/integration/apigw-usage-plan-key/)
[`appconfig`](../tests/integration/appconfig/)
[`asset-auto-create`](../tests/integration/asset-auto-create/)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/)
[`asset-migration`](../tests/integration/asset-migration/)
[`aws-custom-resource`](../tests/integration/aws-custom-resource/)
[`backup`](../tests/integration/backup/)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/)
[`bucket-deployment`](../tests/integration/bucket-deployment/)
[`budgets`](../tests/integration/budgets/)
[`cache-streaming`](../tests/integration/cache-streaming/)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/)
[`cc-protection-flip`](../tests/integration/cc-protection-flip/)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/)
[`ci-cd`](../tests/integration/ci-cd/)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/)
[`cloudwatch-anomaly-detector`](../tests/integration/cloudwatch-anomaly-detector/)
[`codecommit`](../tests/integration/codecommit/)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/)
[`cognito`](../tests/integration/cognito/)
[`cognito-custom-attribute-add`](../tests/integration/cognito-custom-attribute-add/)
[`cognito-identity-pool`](../tests/integration/cognito-identity-pool/)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/)
[`cognito-resource-server`](../tests/integration/cognito-resource-server/)
[`cognito-userpool-user-ref`](../tests/integration/cognito-userpool-user-ref/)
[`conditions`](../tests/integration/conditions/)
[`conditions-and-if`](../tests/integration/conditions-and-if/)
[`conditions-update-2`](../tests/integration/conditions-update-2/)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/)
[`data-analytics`](../tests/integration/data-analytics/)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/)
[`deletion-ordering-complex`](../tests/integration/deletion-ordering-complex/)
[`deletion-policy-snapshot`](../tests/integration/deletion-policy-snapshot/)
[`deletion-policy-snapshot-heavy`](../tests/integration/deletion-policy-snapshot-heavy/)
[`destroy-data-guard`](../tests/integration/destroy-data-guard/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/)
[`docker-image-asset`](../tests/integration/docker-image-asset/)
[`dsql`](../tests/integration/dsql/)
[`dynamodb-autoscaling`](../tests/integration/dynamodb-autoscaling/)
[`dynamodb-gsi-update`](../tests/integration/dynamodb-gsi-update/)
[`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/)
[`dynamodb-sse`](../tests/integration/dynamodb-sse/)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/)
[`dynamodb-tableclass-switch`](../tests/integration/dynamodb-tableclass-switch/)
[`dynamodb-ttl-attr-change`](../tests/integration/dynamodb-ttl-attr-change/)
[`ec2-instance`](../tests/integration/ec2-instance/)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/)
[`ecr-scanning`](../tests/integration/ecr-scanning/)
[`ecs-fargate`](../tests/integration/ecs-fargate/)
[`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/)
[`ecs-service-update-props`](../tests/integration/ecs-service-update-props/)
[`efs-immutable-replacement`](../tests/integration/efs-immutable-replacement/)
[`efs-standalone`](../tests/integration/efs-standalone/)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/)
[`emr-cluster`](../tests/integration/emr-cluster/)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/)
[`eventbridge`](../tests/integration/eventbridge/)
[`eventbridge-api-destination`](../tests/integration/eventbridge-api-destination/)
[`eventbridge-archive`](../tests/integration/eventbridge-archive/)
[`eventbridge-input-transformer`](../tests/integration/eventbridge-input-transformer/)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/)
[`export`](../tests/integration/export/)
[`export-nested-stack`](../tests/integration/export-nested-stack/)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/)
[`fsx-lustre`](../tests/integration/fsx-lustre/)
[`fsx-ontap`](../tests/integration/fsx-ontap/)
[`fsx-openzfs`](../tests/integration/fsx-openzfs/)
[`fsx-windows`](../tests/integration/fsx-windows/)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/)
[`glue-securityconfig-replace`](../tests/integration/glue-securityconfig-replace/)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/)
[`iam-access-key`](../tests/integration/iam-access-key/)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/)
[`import-attributes`](../tests/integration/import-attributes/)
[`import-auto-mode`](../tests/integration/import-auto-mode/)
[`import-nested-stack`](../tests/integration/import-nested-stack/)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/)
[`lambda`](../tests/integration/lambda/)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/)
[`lambda-destinations`](../tests/integration/lambda-destinations/)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/)
[`launchtemplate-asg-inplace`](../tests/integration/launchtemplate-asg-inplace/)
[`loggroup-class-guard`](../tests/integration/loggroup-class-guard/)
[`loggroup-kms-associate`](../tests/integration/loggroup-kms-associate/)
[`migrate-from-bare-cfn`](../tests/integration/migrate-from-bare-cfn/)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/)
[`multi-asset`](../tests/integration/multi-asset/)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/)
[`nodejs-function`](../tests/integration/nodejs-function/)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/)
[`propagation-races-2`](../tests/integration/propagation-races-2/)
[`raw-cfn-conditions-params`](../tests/integration/raw-cfn-conditions-params/)
[`rds-aurora`](../tests/integration/rds-aurora/)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/)
[`rds-full-stack`](../tests/integration/rds-full-stack/)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/)
[`rename-refactor`](../tests/integration/rename-refactor/)
[`replacement-fanout`](../tests/integration/replacement-fanout/)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/)
[`rollback-deletion-policy-snapshot`](../tests/integration/rollback-deletion-policy-snapshot/)
[`route53`](../tests/integration/route53/)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/)
[`s3-cloudfront`](../tests/integration/s3-cloudfront/)
[`s3-directory-bucket`](../tests/integration/s3-directory-bucket/)
[`s3-event-notification`](../tests/integration/s3-event-notification/)
[`s3-lifecycle`](../tests/integration/s3-lifecycle/)
[`s3-object-lock`](../tests/integration/s3-object-lock/)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/)
[`s3-tables`](../tests/integration/s3-tables/)
[`s3-vectors`](../tests/integration/s3-vectors/)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/)
[`serverless-api`](../tests/integration/serverless-api/)
[`servicediscovery`](../tests/integration/servicediscovery/)
[`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/)
[`ses-identity`](../tests/integration/ses-identity/)
[`sg-circular-dependency`](../tests/integration/sg-circular-dependency/)
[`sns-event-source`](../tests/integration/sns-event-source/)
[`sns-inline-subscription`](../tests/integration/sns-inline-subscription/)
[`sns-pending-subscription`](../tests/integration/sns-pending-subscription/)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/)
[`stepfunctions`](../tests/integration/stepfunctions/)
[`stepfunctions-logging`](../tests/integration/stepfunctions-logging/)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/)
[`synthetics-canary`](../tests/integration/synthetics-canary/)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/)
[`update-replace`](../tests/integration/update-replace/)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) | ## Long-form flags referenced in integs but NOT declared in src/cli/options.ts (276) diff --git a/docs/integ-coverage.md b/docs/integ-coverage.md index f374e7f29..4a92c227e 100644 --- a/docs/integ-coverage.md +++ b/docs/integ-coverage.md @@ -120,7 +120,7 @@ Registered without an integ fixture, with an explicit `// allow-no-integ: [`emr-cluster`](../tests/integration/emr-cluster/) (l1,literal)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/) (l1,literal)
[`propagation-races-2`](../tests/integration/propagation-races-2/) (l1)
[`remove-protection`](../tests/integration/remove-protection/) (literal) | | `AWS::IAM::ManagedPolicy` | [`iam-managed-policy`](../tests/integration/iam-managed-policy/) (literal)
[`import-attributes`](../tests/integration/import-attributes/) (literal)
[`import-auto-mode`](../tests/integration/import-auto-mode/) (literal) | | `AWS::IAM::Policy` | [`export`](../tests/integration/export/) (l2,literal)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/) (literal)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/) (literal)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (literal) | -| `AWS::IAM::Role` | [`agentcore-tools`](../tests/integration/agentcore-tools/) (l2)
[`appsync`](../tests/integration/appsync/) (l2)
[`batch`](../tests/integration/batch/) (l2)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/) (l2)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/) (l2)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/) (l2)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/) (l2)
[`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/) (l1)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/) (l2)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/) (l2)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/) (l2,literal)
[`drift-revert`](../tests/integration/drift-revert/) (l2)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/) (l2)
[`emr-cluster`](../tests/integration/emr-cluster/) (l2,literal)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/) (l2,literal)
[`eventbridge`](../tests/integration/eventbridge/) (l2)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/) (l2)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/) (l2)
[`export`](../tests/integration/export/) (l2,literal)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/) (literal)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/) (l2)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/) (l2)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/) (l2,literal)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/) (l2)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/) (l2,literal)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/) (l2,literal)
[`infra-security`](../tests/integration/infra-security/) (l2)
[`intrinsic-functions`](../tests/integration/intrinsic-functions/) (l2)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/) (l2)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/) (literal)
[`local-invoke-dotnet`](../tests/integration/local-invoke-dotnet/) (l2)
[`local-invoke-java`](../tests/integration/local-invoke-java/) (l2)
[`local-invoke-provided`](../tests/integration/local-invoke-provided/) (l2)
[`local-invoke-ruby`](../tests/integration/local-invoke-ruby/) (l2)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/) (l2)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/) (l2,literal)
[`local-start-api-websocket`](../tests/integration/local-start-api-websocket/) (literal)
[`log-pipeline`](../tests/integration/log-pipeline/) (l2)
[`macro-expansion`](../tests/integration/macro-expansion/) (literal)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (l2)
[`multi-resource`](../tests/integration/multi-resource/) (l2)
[`multi-stack-deps`](../tests/integration/multi-stack-deps/) (l2)
[`nested-stack`](../tests/integration/nested-stack/) (l2)
[`propagation-races-2`](../tests/integration/propagation-races-2/) (l2)
[`rds-aurora`](../tests/integration/rds-aurora/) (l2)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/) (l2)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/) (l2)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/) (l2)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/) (l2)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/) (l2)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/) (l2,literal)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/) (l2)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/) (l1,literal)
[`serverless-api`](../tests/integration/serverless-api/) (l2)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/) (l2)
[`synthetics-canary`](../tests/integration/synthetics-canary/) (l2)
[`tags-propagation`](../tests/integration/tags-propagation/) (l2,literal)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/) (l1,literal)
[`update-replace`](../tests/integration/update-replace/) (l2,literal)
[`vpc-lambda-cr-race`](../tests/integration/vpc-lambda-cr-race/) (l2) | +| `AWS::IAM::Role` | [`agentcore-tools`](../tests/integration/agentcore-tools/) (l2)
[`appsync`](../tests/integration/appsync/) (l2)
[`batch`](../tests/integration/batch/) (l2)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/) (l2)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/) (l2)
[`cc-getatt-readback`](../tests/integration/cc-getatt-readback/) (l2)
[`cc-protection-flip-eks`](../tests/integration/cc-protection-flip-eks/) (l2)
[`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/) (l1)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/) (l2)
[`diff-intrinsic-target-change`](../tests/integration/diff-intrinsic-target-change/) (l2)
[`dlm-lifecycle-policy`](../tests/integration/dlm-lifecycle-policy/) (l2,literal)
[`drift-revert`](../tests/integration/drift-revert/) (l2)
[`ec2-instance-fanout`](../tests/integration/ec2-instance-fanout/) (l2)
[`emr-cluster`](../tests/integration/emr-cluster/) (l2,literal)
[`emr-instance-configs`](../tests/integration/emr-instance-configs/) (l2,literal)
[`eventbridge`](../tests/integration/eventbridge/) (l2)
[`eventbridge-pipes`](../tests/integration/eventbridge-pipes/) (l2)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/) (l2)
[`export`](../tests/integration/export/) (l2,literal)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/) (literal)
[`glue-update-hardening`](../tests/integration/glue-update-hardening/) (l2)
[`iam-managed-policy`](../tests/integration/iam-managed-policy/) (l2)
[`iam-oidc-provider`](../tests/integration/iam-oidc-provider/) (l2,literal)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/) (l2)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/) (l2,literal)
[`iam-role-prefixed-name-update`](../tests/integration/iam-role-prefixed-name-update/) (l2,literal)
[`infra-security`](../tests/integration/infra-security/) (l2)
[`intrinsic-functions`](../tests/integration/intrinsic-functions/) (l2)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/) (literal)
[`lambda-microvm-image`](../tests/integration/lambda-microvm-image/) (l2)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/) (literal)
[`local-invoke-dotnet`](../tests/integration/local-invoke-dotnet/) (l2)
[`local-invoke-java`](../tests/integration/local-invoke-java/) (l2)
[`local-invoke-provided`](../tests/integration/local-invoke-provided/) (l2)
[`local-invoke-ruby`](../tests/integration/local-invoke-ruby/) (l2)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/) (l2)
[`local-start-alb-from-state`](../tests/integration/local-start-alb-from-state/) (l2,literal)
[`local-start-api-websocket`](../tests/integration/local-start-api-websocket/) (literal)
[`log-pipeline`](../tests/integration/log-pipeline/) (l2)
[`macro-expansion`](../tests/integration/macro-expansion/) (literal)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (l2)
[`multi-resource`](../tests/integration/multi-resource/) (l2)
[`multi-stack-deps`](../tests/integration/multi-stack-deps/) (l2)
[`nested-stack`](../tests/integration/nested-stack/) (l2)
[`propagation-races-2`](../tests/integration/propagation-races-2/) (l2)
[`rds-aurora`](../tests/integration/rds-aurora/) (l2)
[`rds-dbinstance-backfill`](../tests/integration/rds-dbinstance-backfill/) (l2)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/) (l2)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/) (l2)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/) (l2)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/) (l2)
[`s3-replication-and-filter`](../tests/integration/s3-replication-and-filter/) (l2,literal)
[`scheduler-custom-group`](../tests/integration/scheduler-custom-group/) (l2)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/) (l1,literal)
[`serverless-api`](../tests/integration/serverless-api/) (l2)
[`stepfunctions-s3-definition`](../tests/integration/stepfunctions-s3-definition/) (l2)
[`synthetics-canary`](../tests/integration/synthetics-canary/) (l2)
[`tags-propagation`](../tests/integration/tags-propagation/) (l2,literal)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/) (l1,literal)
[`update-replace`](../tests/integration/update-replace/) (l2,literal)
[`vpc-lambda-cr-race`](../tests/integration/vpc-lambda-cr-race/) (l2) | | `AWS::IAM::User` | [`iam-access-key`](../tests/integration/iam-access-key/) (l2)
[`infra-security`](../tests/integration/infra-security/) (l2) | | `AWS::IAM::UserToGroupAddition` | [`infra-security`](../tests/integration/infra-security/) (literal) | | `AWS::KMS::Alias` | [`composite-stack`](../tests/integration/composite-stack/) (literal)
[`infra-security`](../tests/integration/infra-security/) (literal)
[`kms-encryption`](../tests/integration/kms-encryption/) (literal) | @@ -128,8 +128,8 @@ Registered without an integ fixture, with an explicit `// allow-no-integ: [`dynamodb-ondemand`](../tests/integration/dynamodb-ondemand/) (l2)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/) (l2)
[`kinesis-stream-mode-switch`](../tests/integration/kinesis-stream-mode-switch/) (l2)
[`log-pipeline`](../tests/integration/log-pipeline/) (l2)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/) (l2,literal)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/) (l1,literal) | | `AWS::KinesisFirehose::DeliveryStream` | [`log-pipeline`](../tests/integration/log-pipeline/) (l1,literal) | | `AWS::Lambda::EventInvokeConfig` | [`lambda-destinations`](../tests/integration/lambda-destinations/) (literal)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/) (literal) | -| `AWS::Lambda::EventSourceMapping` | [`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/) (literal)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/) (literal)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/) (literal)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/) (literal) | -| `AWS::Lambda::Function` | [`agentcore-tools`](../tests/integration/agentcore-tools/) (l2)
[`api-cognito`](../tests/integration/api-cognito/) (l2)
[`apigateway`](../tests/integration/apigateway/) (l2)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/) (l2,literal)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/) (l2,literal)
[`asset-auto-create`](../tests/integration/asset-auto-create/) (l2)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/) (l2)
[`asset-migration`](../tests/integration/asset-migration/) (l2)
[`bench-cdk-sample`](../tests/integration/bench-cdk-sample/) (l2)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/) (l2)
[`cache-streaming`](../tests/integration/cache-streaming/) (l2)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/) (l1)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/) (l1,literal)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/) (l2)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/) (l2)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/) (l2)
[`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/) (l2)
[`custom-resource-provider`](../tests/integration/custom-resource-provider/) (l2)
[`data-pipeline`](../tests/integration/data-pipeline/) (l2)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/) (l1)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/) (l2)
[`docker-image-asset`](../tests/integration/docker-image-asset/) (l2,literal)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/) (l2)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/) (l2)
[`ecr`](../tests/integration/ecr/) (l2)
[`efs-lambda`](../tests/integration/efs-lambda/) (l2)
[`event-driven`](../tests/integration/event-driven/) (l2)
[`eventbridge`](../tests/integration/eventbridge/) (l2)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/) (l2)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/) (l2)
[`export`](../tests/integration/export/) (l2,literal)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/) (l2,literal)
[`full-stack-demo`](../tests/integration/full-stack-demo/) (l2)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/) (l2,literal)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/) (l2)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/) (l2)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/) (l2)
[`lambda`](../tests/integration/lambda/) (l2)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/) (l2)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/) (l2)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/) (l2,literal)
[`lambda-destinations`](../tests/integration/lambda-destinations/) (l2,literal)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/) (l2,literal)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/) (l2)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/) (l2)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/) (l2)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/) (l2)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/) (l2,literal)
[`lambda-versioning`](../tests/integration/lambda-versioning/) (l2,literal)
[`local-invoke`](../tests/integration/local-invoke/) (l2)
[`local-invoke-buildkit`](../tests/integration/local-invoke-buildkit/) (l2)
[`local-invoke-container`](../tests/integration/local-invoke-container/) (l2)
[`local-invoke-dotnet`](../tests/integration/local-invoke-dotnet/) (l1,l2)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/) (l2)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/) (l2)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/) (l2)
[`local-invoke-java`](../tests/integration/local-invoke-java/) (l1,l2)
[`local-invoke-layers`](../tests/integration/local-invoke-layers/) (l2)
[`local-invoke-provided`](../tests/integration/local-invoke-provided/) (l1,l2)
[`local-invoke-python`](../tests/integration/local-invoke-python/) (l2)
[`local-invoke-ruby`](../tests/integration/local-invoke-ruby/) (l1,l2)
[`local-start-api`](../tests/integration/local-start-api/) (l2)
[`local-start-api-container`](../tests/integration/local-start-api-container/) (l2)
[`local-start-api-rest-v1-non-proxy`](../tests/integration/local-start-api-rest-v1-non-proxy/) (l2)
[`local-start-api-websocket`](../tests/integration/local-start-api-websocket/) (l2,literal)
[`log-pipeline`](../tests/integration/log-pipeline/) (l2)
[`macro-expansion`](../tests/integration/macro-expansion/) (literal)
[`microservices`](../tests/integration/microservices/) (l2)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (l2)
[`monitoring`](../tests/integration/monitoring/) (l2)
[`multi-asset`](../tests/integration/multi-asset/) (l2)
[`multi-resource`](../tests/integration/multi-resource/) (l2)
[`multi-stack-deps`](../tests/integration/multi-stack-deps/) (l2)
[`nodejs-function`](../tests/integration/nodejs-function/) (literal)
[`orphan-resource`](../tests/integration/orphan-resource/) (l2,literal)
[`propagation-races-2`](../tests/integration/propagation-races-2/) (l2)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/) (l1)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/) (l1)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/) (l1)
[`rename-refactor`](../tests/integration/rename-refactor/) (l2,literal)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/) (l2)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/) (l2)
[`s3-event-notification`](../tests/integration/s3-event-notification/) (l2)
[`scheduled-task`](../tests/integration/scheduled-task/) (l2)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/) (l1,literal)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/) (l2)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/) (l2,literal)
[`serverless-api`](../tests/integration/serverless-api/) (l2)
[`sns-event-source`](../tests/integration/sns-event-source/) (l2)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/) (l2)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/) (l2)
[`stepfunctions`](../tests/integration/stepfunctions/) (l2)
[`tags-propagation`](../tests/integration/tags-propagation/) (l2)
[`update-replace`](../tests/integration/update-replace/) (l2,literal)
[`vpc-lambda`](../tests/integration/vpc-lambda/) (l2)
[`vpc-lambda-cr-race`](../tests/integration/vpc-lambda-cr-race/) (l2) | +| `AWS::Lambda::EventSourceMapping` | [`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/) (literal)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/) (literal)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/) (literal)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/) (literal)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/) (literal) | +| `AWS::Lambda::Function` | [`agentcore-tools`](../tests/integration/agentcore-tools/) (l2)
[`api-cognito`](../tests/integration/api-cognito/) (l2)
[`apigateway`](../tests/integration/apigateway/) (l2)
[`apigatewayv2-update-removal`](../tests/integration/apigatewayv2-update-removal/) (l2,literal)
[`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/) (l2,literal)
[`asset-auto-create`](../tests/integration/asset-auto-create/) (l2)
[`asset-bootstrap`](../tests/integration/asset-bootstrap/) (l2)
[`asset-migration`](../tests/integration/asset-migration/) (l2)
[`bench-cdk-sample`](../tests/integration/bench-cdk-sample/) (l2)
[`bootstrap-free-region`](../tests/integration/bootstrap-free-region/) (l2)
[`cache-streaming`](../tests/integration/cache-streaming/) (l2)
[`cc-api-fallback`](../tests/integration/cc-api-fallback/) (l1)
[`cc-api-fallback-transitions`](../tests/integration/cc-api-fallback-transitions/) (l1,literal)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/) (l2)
[`codedeploy-lambda-deployment-group`](../tests/integration/codedeploy-lambda-deployment-group/) (l2)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/) (l2)
[`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/) (l2)
[`custom-resource-provider`](../tests/integration/custom-resource-provider/) (l2)
[`data-pipeline`](../tests/integration/data-pipeline/) (l2)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/) (l1)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/) (l2)
[`docker-image-asset`](../tests/integration/docker-image-asset/) (l2,literal)
[`dynamodb-stream-filter`](../tests/integration/dynamodb-stream-filter/) (l2)
[`dynamodb-streams`](../tests/integration/dynamodb-streams/) (l2)
[`ecr`](../tests/integration/ecr/) (l2)
[`efs-lambda`](../tests/integration/efs-lambda/) (l2)
[`event-driven`](../tests/integration/event-driven/) (l2)
[`eventbridge`](../tests/integration/eventbridge/) (l2)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/) (l2)
[`eventsourcemapping-race`](../tests/integration/eventsourcemapping-race/) (l2)
[`export`](../tests/integration/export/) (l2,literal)
[`fifo-sqs-event-source`](../tests/integration/fifo-sqs-event-source/) (l2,literal)
[`full-stack-demo`](../tests/integration/full-stack-demo/) (l2)
[`gc-custom-asset-names`](../tests/integration/gc-custom-asset-names/) (l2,literal)
[`iam-propagation-stress`](../tests/integration/iam-propagation-stress/) (l2)
[`iam-role-policies-drift-clean`](../tests/integration/iam-role-policies-drift-clean/) (l2)
[`kinesis-esm-filter`](../tests/integration/kinesis-esm-filter/) (l2)
[`lambda`](../tests/integration/lambda/) (l2)
[`lambda-alias-provisioned-concurrency`](../tests/integration/lambda-alias-provisioned-concurrency/) (l2)
[`lambda-arch-switch`](../tests/integration/lambda-arch-switch/) (l2)
[`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/) (l2,literal)
[`lambda-destinations`](../tests/integration/lambda-destinations/) (l2,literal)
[`lambda-env-removal`](../tests/integration/lambda-env-removal/) (l2,literal)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/) (l2,literal)
[`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/) (l2)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/) (l2)
[`lambda-log-retention`](../tests/integration/lambda-log-retention/) (l2)
[`lambda-reserved-concurrency`](../tests/integration/lambda-reserved-concurrency/) (l2)
[`lambda-snapstart`](../tests/integration/lambda-snapstart/) (l2,literal)
[`lambda-versioning`](../tests/integration/lambda-versioning/) (l2,literal)
[`local-invoke`](../tests/integration/local-invoke/) (l2)
[`local-invoke-buildkit`](../tests/integration/local-invoke-buildkit/) (l2)
[`local-invoke-container`](../tests/integration/local-invoke-container/) (l2)
[`local-invoke-dotnet`](../tests/integration/local-invoke-dotnet/) (l1,l2)
[`local-invoke-from-cfn-stack`](../tests/integration/local-invoke-from-cfn-stack/) (l2)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/) (l2)
[`local-invoke-from-state`](../tests/integration/local-invoke-from-state/) (l2)
[`local-invoke-java`](../tests/integration/local-invoke-java/) (l1,l2)
[`local-invoke-layers`](../tests/integration/local-invoke-layers/) (l2)
[`local-invoke-provided`](../tests/integration/local-invoke-provided/) (l1,l2)
[`local-invoke-python`](../tests/integration/local-invoke-python/) (l2)
[`local-invoke-ruby`](../tests/integration/local-invoke-ruby/) (l1,l2)
[`local-start-api`](../tests/integration/local-start-api/) (l2)
[`local-start-api-container`](../tests/integration/local-start-api-container/) (l2)
[`local-start-api-rest-v1-non-proxy`](../tests/integration/local-start-api-rest-v1-non-proxy/) (l2)
[`local-start-api-websocket`](../tests/integration/local-start-api-websocket/) (l2,literal)
[`log-pipeline`](../tests/integration/log-pipeline/) (l2)
[`macro-expansion`](../tests/integration/macro-expansion/) (literal)
[`microservices`](../tests/integration/microservices/) (l2)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (l2)
[`monitoring`](../tests/integration/monitoring/) (l2)
[`multi-asset`](../tests/integration/multi-asset/) (l2)
[`multi-resource`](../tests/integration/multi-resource/) (l2)
[`multi-stack-deps`](../tests/integration/multi-stack-deps/) (l2)
[`nodejs-function`](../tests/integration/nodejs-function/) (literal)
[`orphan-resource`](../tests/integration/orphan-resource/) (l2,literal)
[`propagation-races-2`](../tests/integration/propagation-races-2/) (l2)
[`recreate-mixed-direction`](../tests/integration/recreate-mixed-direction/) (l1)
[`recreate-via-cc-api`](../tests/integration/recreate-via-cc-api/) (l1)
[`recreate-via-sdk-provider`](../tests/integration/recreate-via-sdk-provider/) (l1)
[`rename-refactor`](../tests/integration/rename-refactor/) (l2,literal)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/) (l2)
[`s3-asset-deploy`](../tests/integration/s3-asset-deploy/) (l2)
[`s3-event-notification`](../tests/integration/s3-event-notification/) (l2)
[`scheduled-task`](../tests/integration/scheduled-task/) (l2)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/) (l1,literal)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/) (l2)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/) (l2,literal)
[`serverless-api`](../tests/integration/serverless-api/) (l2)
[`sns-event-source`](../tests/integration/sns-event-source/) (l2)
[`sns-sqs-event`](../tests/integration/sns-sqs-event/) (l2)
[`sqs-esm-max-concurrency`](../tests/integration/sqs-esm-max-concurrency/) (l2)
[`stepfunctions`](../tests/integration/stepfunctions/) (l2)
[`tags-propagation`](../tests/integration/tags-propagation/) (l2)
[`update-replace`](../tests/integration/update-replace/) (l2,literal)
[`vpc-lambda`](../tests/integration/vpc-lambda/) (l2)
[`vpc-lambda-cr-race`](../tests/integration/vpc-lambda-cr-race/) (l2) | | `AWS::Lambda::LayerVersion` | [`lambda`](../tests/integration/lambda/) (l2)
[`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/) (l2)
[`local-invoke-layers`](../tests/integration/local-invoke-layers/) (l2) | | `AWS::Lambda::MicrovmImage` | [`lambda-microvm-image`](../tests/integration/lambda-microvm-image/) (literal) | | `AWS::Lambda::Permission` | [`apigw-stage-throttling`](../tests/integration/apigw-stage-throttling/) (literal)
[`cloudfront-function-url`](../tests/integration/cloudfront-function-url/) (l1,literal)
[`cognito-lambda-triggers`](../tests/integration/cognito-lambda-triggers/) (literal)
[`export`](../tests/integration/export/) (literal)
[`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (literal)
[`propagation-races-2`](../tests/integration/propagation-races-2/) (l1,literal)
[`rename-refactor`](../tests/integration/rename-refactor/) (literal)
[`s3-event-notification`](../tests/integration/s3-event-notification/) (literal)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/) (literal)
[`serverless-api`](../tests/integration/serverless-api/) (l1)
[`sns-event-source`](../tests/integration/sns-event-source/) (literal) | @@ -158,7 +158,7 @@ Registered without an integ fixture, with an explicit `// allow-no-integ: [`migrate-from-cfn`](../tests/integration/migrate-from-cfn/) (literal)
[`sns-subscription-filter`](../tests/integration/sns-subscription-filter/) (literal) | | `AWS::SSM::Parameter` | [`bench-sdk`](../tests/integration/bench-sdk/) (l2)
[`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`conditions-and-if`](../tests/integration/conditions-and-if/) (l1)
[`conditions-update-2`](../tests/integration/conditions-update-2/) (l1)
[`context-test`](../tests/integration/context-test/) (l2)
[`cross-region-state-bucket`](../tests/integration/cross-region-state-bucket/) (l1)
[`cross-stack-references`](../tests/integration/cross-stack-references/) (l1)
[`custom-resource-getatt-data`](../tests/integration/custom-resource-getatt-data/) (l2)
[`deep-getatt-chains`](../tests/integration/deep-getatt-chains/) (l1)
[`deletion-policy-retain`](../tests/integration/deletion-policy-retain/) (l2,literal)
[`deployment-events`](../tests/integration/deployment-events/) (l2)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/) (l2,literal)
[`elasticache-replicationgroup-getatt`](../tests/integration/elasticache-replicationgroup-getatt/) (l1)
[`eventbridge`](../tests/integration/eventbridge/) (l2)
[`export-nested-stack`](../tests/integration/export-nested-stack/) (l2,literal)
[`getatt-fallback-guard`](../tests/integration/getatt-fallback-guard/) (l1,literal)
[`getstackoutput-crossregion`](../tests/integration/getstackoutput-crossregion/) (l1,l2)
[`import-attributes`](../tests/integration/import-attributes/) (literal)
[`import-nested-stack`](../tests/integration/import-nested-stack/) (l2,literal)
[`import-value-strong-ref`](../tests/integration/import-value-strong-ref/) (l2)
[`importvalue-chain`](../tests/integration/importvalue-chain/) (l2)
[`infra-security`](../tests/integration/infra-security/) (l2)
[`inplace-attr-propagation`](../tests/integration/inplace-attr-propagation/) (l2,literal)
[`intrinsics-torture`](../tests/integration/intrinsics-torture/) (l1,literal)
[`intrinsics-torture-2`](../tests/integration/intrinsics-torture-2/) (l1,literal)
[`legacy-bucket-name-fallback`](../tests/integration/legacy-bucket-name-fallback/) (l2)
[`legacy-state-migration`](../tests/integration/legacy-state-migration/) (l2)
[`local-invoke-from-cfn-stack-multi-stack`](../tests/integration/local-invoke-from-cfn-stack-multi-stack/) (l2)
[`microservices`](../tests/integration/microservices/) (l2)
[`multi-region-same-stack`](../tests/integration/multi-region-same-stack/) (l2)
[`nested-stack`](../tests/integration/nested-stack/) (l2)
[`nested-stack-3level`](../tests/integration/nested-stack-3level/) (l2)
[`nested-stack-deep`](../tests/integration/nested-stack-deep/) (l2)
[`opensearch-domain-getatt`](../tests/integration/opensearch-domain-getatt/) (l1)
[`outputs-only-export`](../tests/integration/outputs-only-export/) (l2)
[`rds-full-stack`](../tests/integration/rds-full-stack/) (l2)
[`redshift-cluster-getatt`](../tests/integration/redshift-cluster-getatt/) (l1)
[`rename-refactor`](../tests/integration/rename-refactor/) (l2,literal)
[`replacement-fanout`](../tests/integration/replacement-fanout/) (l2,literal)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/) (l2,literal)
[`rollback-command`](../tests/integration/rollback-command/) (l2)
[`rollback-failure-injection`](../tests/integration/rollback-failure-injection/) (l2)
[`s3-tables`](../tests/integration/s3-tables/) (l1)
[`schema-v5-to-v6-migration`](../tests/integration/schema-v5-to-v6-migration/) (l2)
[`schema-v6-to-v7-migration`](../tests/integration/schema-v6-to-v7-migration/) (l2)
[`schema-v7-to-v8-migration`](../tests/integration/schema-v7-to-v8-migration/) (l1,l2)
[`sdk-ccapi-crossref`](../tests/integration/sdk-ccapi-crossref/) (l1,literal)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/) (l2)
[`state-info-command`](../tests/integration/state-info-command/) (l2)
[`tags-propagation`](../tests/integration/tags-propagation/) (l2,literal)
[`throttle-wide-dag`](../tests/integration/throttle-wide-dag/) (l1,literal)
[`update-policy-mutations`](../tests/integration/update-policy-mutations/) (l2,literal)
[`vpc-lookup`](../tests/integration/vpc-lookup/) (l2)
[`wait-condition-handle`](../tests/integration/wait-condition-handle/) (l2) | | `AWS::Scheduler::Schedule` | [`ecs-schedule-targets`](../tests/integration/ecs-schedule-targets/) (literal)
[`eventbridge`](../tests/integration/eventbridge/) (literal)
[`eventbridge-scheduler`](../tests/integration/eventbridge-scheduler/) (literal) | -| `AWS::SecretsManager::Secret` | [`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`event-driven`](../tests/integration/event-driven/) (l2)
[`full-stack-demo`](../tests/integration/full-stack-demo/) (l2)
[`iam-access-key`](../tests/integration/iam-access-key/) (l2)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/) (l2,literal)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/) (l2,literal)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/) (l2)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/) (l2,literal) | +| `AWS::SecretsManager::Secret` | [`composite-stack`](../tests/integration/composite-stack/) (l2,literal)
[`event-driven`](../tests/integration/event-driven/) (l2)
[`full-stack-demo`](../tests/integration/full-stack-demo/) (l2)
[`iam-access-key`](../tests/integration/iam-access-key/) (l2)
[`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/) (l2,literal)
[`local-run-task-from-state`](../tests/integration/local-run-task-from-state/) (l2,literal)
[`replacement-immutable-name`](../tests/integration/replacement-immutable-name/) (l2,literal)
[`secrets-dynamic-ref`](../tests/integration/secrets-dynamic-ref/) (l2)
[`secrets-rotation-schedule`](../tests/integration/secrets-rotation-schedule/) (l2,literal) | | `AWS::ServiceDiscovery::HttpNamespace` | [`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/) (l1,literal) | | `AWS::ServiceDiscovery::PrivateDnsNamespace` | [`drift-revert-vpc`](../tests/integration/drift-revert-vpc/) (l2,literal)
[`local-ecs-service-connect`](../tests/integration/local-ecs-service-connect/) (literal)
[`servicediscovery`](../tests/integration/servicediscovery/) (l1) | | `AWS::ServiceDiscovery::PublicDnsNamespace` | [`servicediscovery-namespaces`](../tests/integration/servicediscovery-namespaces/) (l1,literal) | diff --git a/docs/scenario-coverage.md b/docs/scenario-coverage.md index e652da343..1d388f5b5 100644 --- a/docs/scenario-coverage.md +++ b/docs/scenario-coverage.md @@ -4,7 +4,7 @@ Run `vp run scenario-coverage` to regenerate. -**84 / 84 canonical scenarios** have at least one integ fixture exercising them. **180 / 264 integ fixtures** carry a `.scenarios.json` sidecar (with 0+ tags); the rest are un-annotated and contributor-reviewed below. +**84 / 84 canonical scenarios** have at least one integ fixture exercising them. **180 / 265 integ fixtures** carry a `.scenarios.json` sidecar (with 0+ tags); the rest are un-annotated and contributor-reviewed below. ## How this is computed @@ -115,7 +115,7 @@ _None._ Every canonical scenario has at least one integ fixture tagged with it. | `vpc-lambda-eni-release` | Lambda hyperplane ENI cleanup after DeleteFunction (5-30 min eventually consistent). | [`bench-cdk-sample`](../tests/integration/bench-cdk-sample/)
[`destroy-interrupt`](../tests/integration/destroy-interrupt/)
[`lambda`](../tests/integration/lambda/)
[`vpc-lambda`](../tests/integration/vpc-lambda/) | | `wide-dag-throttle-retry` | Wide (~100-resource: 80 SSM Parameters + 10 IAM Roles + 10 SNS Topics, 10-deep SSM Fn::Sub chain) single-stack burst deployed under a HIGH `--concurrency` to stress the concurrency limiter + event-driven DAG executor + throttle/retry classifier: a `TooManyRequests` / `Rate exceeded` / HTTP 429 during the burst must be RETRIED (deploy still succeeds) not fatal, the chained subset proves strict DAG ordering, and the destroy burst absorbs ~100 deletes with 0 orphans. | [`throttle-wide-dag`](../tests/integration/throttle-wide-dag/) | -## Un-annotated fixtures (84) +## Un-annotated fixtures (85) These integ fixtures have no `.scenarios.json` sidecar. They may or may not exercise a canonical scenario — contributor review needed. To opt out (per-service smoke tests with no canonical pattern), add a sidecar with `{ "scenarios": [] }`. @@ -165,6 +165,7 @@ These integ fixtures have no `.scenarios.json` sidecar. They may or may not exer - [`lambda-config-field-removal`](../tests/integration/lambda-config-field-removal/) - [`lambda-destinations`](../tests/integration/lambda-destinations/) - [`lambda-env-removal`](../tests/integration/lambda-env-removal/) +- [`lambda-esm-self-managed-kafka`](../tests/integration/lambda-esm-self-managed-kafka/) - [`lambda-event-invoke-config-update`](../tests/integration/lambda-event-invoke-config-update/) - [`lambda-layer-version-update`](../tests/integration/lambda-layer-version-update/) - [`lambda-log-retention`](../tests/integration/lambda-log-retention/) diff --git a/src/provisioning/providers/lambda-eventsource-provider.ts b/src/provisioning/providers/lambda-eventsource-provider.ts index e89069ac0..3b7183654 100644 --- a/src/provisioning/providers/lambda-eventsource-provider.ts +++ b/src/provisioning/providers/lambda-eventsource-provider.ts @@ -99,6 +99,68 @@ function classifyEventSourceFromProperties(properties: Record): }); } +/** + * CFn spells the self-managed-Kafka bootstrap-server list + * `SelfManagedEventSource.Endpoints.KafkaBootstrapServers`, while the SDK + * models `Endpoints` as `Partial>` keyed by the + * enum VALUE `KAFKA_BOOTSTRAP_SERVERS` (`@aws-sdk/client-lambda` + * `EndPointType`). Because `Endpoints` is a MAP rather than a modeled + * structure, the serializer forwards the unknown CFn key verbatim and the + * service rejects the whole request — so every CDK `SelfManagedKafkaEventSource` + * user hit a hard `CreateEventSourceMapping` failure (issue #1384). + * + * Both directions are pure key renames of the ONE diverging key; every other + * member of the blob (both inside `Endpoints` and beside it) is copied through + * untouched. Note that a future `EndPointType` whose CFn spelling also diverges + * would reproduce this bug exactly — it needs its own entry here, the pass- + * through is not a general solution. + * + * Anything that is not a re-shapeable object — a non-object blob, a missing or + * non-object `Endpoints`, an array `Endpoints` — is returned VERBATIM rather + * than dropped. Dropping would be a silent-drop regression against the raw + * pass-through this replaced: AWS must stay the one that rejects a malformed + * template, not this layer. + */ +const CFN_KAFKA_ENDPOINTS_KEY = 'KafkaBootstrapServers'; +const SDK_KAFKA_ENDPOINTS_KEY = 'KAFKA_BOOTSTRAP_SERVERS'; + +function renameEndpointsKey(selfManagedEventSource: unknown, from: string, to: string): unknown { + if (typeof selfManagedEventSource !== 'object' || selfManagedEventSource === null) { + return selfManagedEventSource; + } + const source = { ...(selfManagedEventSource as Record) }; + const endpoints = source['Endpoints']; + if (typeof endpoints !== 'object' || endpoints === null || Array.isArray(endpoints)) { + return source; + } + const renamed: Record = {}; + for (const [key, value] of Object.entries(endpoints as Record)) { + renamed[key === from ? to : key] = value; + } + source['Endpoints'] = renamed; + return source; +} + +/** CFn property bag -> `CreateEventSourceMapping` input shape. */ +function toSdkSelfManagedEventSource( + selfManagedEventSource: unknown +): import('@aws-sdk/client-lambda').SelfManagedEventSource { + return renameEndpointsKey( + selfManagedEventSource, + CFN_KAFKA_ENDPOINTS_KEY, + SDK_KAFKA_ENDPOINTS_KEY + ) as import('@aws-sdk/client-lambda').SelfManagedEventSource; +} + +/** `GetEventSourceMapping` response -> CFn property shape (drift readback). */ +function toCfnSelfManagedEventSource(selfManagedEventSource: unknown): unknown { + return renameEndpointsKey( + selfManagedEventSource, + SDK_KAFKA_ENDPOINTS_KEY, + CFN_KAFKA_ENDPOINTS_KEY + ); +} + const KINDS_WITH_FUNCTION_RESPONSE_TYPES: ReadonlySet = new Set([ 'sqs', 'kinesis', @@ -250,9 +312,9 @@ export class LambdaEventSourceMappingProvider implements ResourceProvider { 'SourceAccessConfigurations' ] as import('@aws-sdk/client-lambda').SourceAccessConfiguration[]; if (properties['SelfManagedEventSource']) - params.SelfManagedEventSource = properties[ - 'SelfManagedEventSource' - ] as import('@aws-sdk/client-lambda').SelfManagedEventSource; + params.SelfManagedEventSource = toSdkSelfManagedEventSource( + properties['SelfManagedEventSource'] + ); if (properties['SelfManagedKafkaEventSourceConfig']) params.SelfManagedKafkaEventSourceConfig = properties[ 'SelfManagedKafkaEventSourceConfig' @@ -787,7 +849,11 @@ export class LambdaEventSourceMappingProvider implements ResourceProvider { result['SourceAccessConfigurations'] = resp.SourceAccessConfigurations; } if (resp.SelfManagedEventSource !== undefined) { - result['SelfManagedEventSource'] = resp.SelfManagedEventSource; + // Inverse of the create-side rename: state holds the CFn spelling + // (`Endpoints.KafkaBootstrapServers`), so emitting the SDK's + // `KAFKA_BOOTSTRAP_SERVERS` here would fire guaranteed drift on every + // clean run of a self-managed-Kafka ESM (issue #1384). + result['SelfManagedEventSource'] = toCfnSelfManagedEventSource(resp.SelfManagedEventSource); } if (resp.SelfManagedKafkaEventSourceConfig !== undefined) { result['SelfManagedKafkaEventSourceConfig'] = resp.SelfManagedKafkaEventSourceConfig; diff --git a/tests/integration/lambda-esm-self-managed-kafka/bin/app.ts b/tests/integration/lambda-esm-self-managed-kafka/bin/app.ts new file mode 100644 index 000000000..b50ea9c83 --- /dev/null +++ b/tests/integration/lambda-esm-self-managed-kafka/bin/app.ts @@ -0,0 +1,9 @@ +#!/usr/bin/env node +import * as cdk from 'aws-cdk-lib'; +import { LambdaEsmSelfManagedKafkaStack } from '../lib/lambda-esm-self-managed-kafka-stack.ts'; + +const app = new cdk.App(); +new LambdaEsmSelfManagedKafkaStack(app, 'CdkdLambdaEsmSelfManagedKafkaExample', { + description: 'cdkd Lambda self-managed Kafka ESM Endpoints key integ probe', + env: { account: process.env.CDK_DEFAULT_ACCOUNT, region: process.env.CDK_DEFAULT_REGION }, +}); diff --git a/tests/integration/lambda-esm-self-managed-kafka/cdk.json b/tests/integration/lambda-esm-self-managed-kafka/cdk.json new file mode 100644 index 000000000..bc75d8135 --- /dev/null +++ b/tests/integration/lambda-esm-self-managed-kafka/cdk.json @@ -0,0 +1,3 @@ +{ + "app": "node bin/app.ts" +} diff --git a/tests/integration/lambda-esm-self-managed-kafka/lib/lambda-esm-self-managed-kafka-stack.ts b/tests/integration/lambda-esm-self-managed-kafka/lib/lambda-esm-self-managed-kafka-stack.ts new file mode 100644 index 000000000..b9a0631d4 --- /dev/null +++ b/tests/integration/lambda-esm-self-managed-kafka/lib/lambda-esm-self-managed-kafka-stack.ts @@ -0,0 +1,80 @@ +import * as cdk from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +import * as lambda from 'aws-cdk-lib/aws-lambda'; +import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'; +import { + AuthenticationMethod, + SelfManagedKafkaEventSource, +} from 'aws-cdk-lib/aws-lambda-event-sources'; + +/** + * Lambda event source mapping for a SELF-MANAGED Apache Kafka cluster + * (issue #1384). + * + * CFn spells the bootstrap-server map key + * `SelfManagedEventSource.Endpoints.KafkaBootstrapServers`, while the SDK + * models `Endpoints` as `Partial>` keyed by the + * enum VALUE `KAFKA_BOOTSTRAP_SERVERS`. Because `Endpoints` is a MAP rather + * than a modeled structure, the AWS SDK v3 serializer forwards the unknown CFn + * key verbatim and the service REJECTS the request — so before the fix + * `CreateEventSourceMapping` failed outright for every CDK + * `SelfManagedKafkaEventSource` user. A successful deploy of this fixture IS + * the proof; verify.sh additionally reads the key back from AWS. + * + * covers: AWS::Lambda::EventSourceMapping + * covers: AWS::Lambda::Function + * covers: AWS::SecretsManager::Secret + * covers: AWS::IAM::Role + * + * The broker endpoint is deliberately a NON-EXISTENT host: the + * CreateEventSourceMapping API validates the request SHAPE, not connectivity, + * and the mapping is created `enabled: false` so Lambda never attempts to poll + * it. That keeps the fixture free of an actual Kafka cluster (and its cost) + * while still exercising the exact wire path the bug broke. + * + * Self-managed Kafka requires a `SourceAccessConfigurations` auth entry, hence + * the SASL/SCRAM secret. It holds placeholder credentials — nothing ever + * authenticates with them. + * + * UPDATE phase (CDKD_TEST_UPDATE=true) bumps `batchSize`, which routes through + * `UpdateEventSourceMapping` against the SAME mapping (`SelfManagedEventSource` + * is create-only and is deliberately held constant, so the UUID must not + * change). + */ +export class LambdaEsmSelfManagedKafkaStack extends cdk.Stack { + constructor(scope: Construct, id: string, props?: cdk.StackProps) { + super(scope, id, props); + + const isUpdate = process.env.CDKD_TEST_UPDATE === 'true'; + + const secret = new secretsmanager.Secret(this, 'KafkaAuth', { + secretName: `${this.stackName}-kafka-auth`, + description: 'cdkd integ placeholder SASL/SCRAM credentials (never used)', + secretObjectValue: { + username: cdk.SecretValue.unsafePlainText('cdkd-integ'), + password: cdk.SecretValue.unsafePlainText('cdkd-integ-placeholder'), + }, + removalPolicy: cdk.RemovalPolicy.DESTROY, + }); + + const fn = new lambda.Function(this, 'Fn', { + functionName: `${this.stackName}-fn`, + runtime: lambda.Runtime.NODEJS_20_X, + handler: 'index.handler', + code: lambda.Code.fromInline('exports.handler=async()=>({});'), + }); + + fn.addEventSource( + new SelfManagedKafkaEventSource({ + bootstrapServers: ['b-1.cdkd-integ.example.com:9092', 'b-2.cdkd-integ.example.com:9092'], + topic: 'cdkd-integ-topic', + secret, + authenticationMethod: AuthenticationMethod.SASL_SCRAM_512_AUTH, + startingPosition: lambda.StartingPosition.TRIM_HORIZON, + batchSize: isUpdate ? 20 : 10, + // Never poll the (non-existent) brokers. + enabled: false, + }) + ); + } +} diff --git a/tests/integration/lambda-esm-self-managed-kafka/package.json b/tests/integration/lambda-esm-self-managed-kafka/package.json new file mode 100644 index 000000000..9cdd15ab3 --- /dev/null +++ b/tests/integration/lambda-esm-self-managed-kafka/package.json @@ -0,0 +1,20 @@ +{ + "name": "cdkd-integ-lambda-esm-self-managed-kafka", + "version": "1.0.0", + "private": true, + "description": "cdkd Lambda self-managed Kafka ESM Endpoints key integ probe", + "scripts": { + "build": "tsc", + "watch": "tsc -w" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "aws-cdk": "^2.1112.0", + "typescript": "^5.0.0" + }, + "dependencies": { + "aws-cdk-lib": "^2.169.0", + "constructs": "^10.0.0" + }, + "type": "module" +} diff --git a/tests/integration/lambda-esm-self-managed-kafka/tsconfig.json b/tests/integration/lambda-esm-self-managed-kafka/tsconfig.json new file mode 100644 index 000000000..ad2a955a5 --- /dev/null +++ b/tests/integration/lambda-esm-self-managed-kafka/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "NodeNext", + "lib": ["ES2023"], + "declaration": true, + "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": false, + "inlineSourceMap": true, + "inlineSources": true, + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "typeRoots": ["./node_modules/@types"], + "moduleResolution": "NodeNext", + "rewriteRelativeImportExtensions": true, + "erasableSyntaxOnly": true, + "verbatimModuleSyntax": true + }, + "exclude": ["node_modules", "cdk.out"] +} diff --git a/tests/integration/lambda-esm-self-managed-kafka/verify.sh b/tests/integration/lambda-esm-self-managed-kafka/verify.sh new file mode 100755 index 000000000..8f5b3db9f --- /dev/null +++ b/tests/integration/lambda-esm-self-managed-kafka/verify.sh @@ -0,0 +1,258 @@ +#!/usr/bin/env bash +# verify.sh — cdkd Lambda SELF-MANAGED Kafka ESM Endpoints key integ (#1384). +# +# CFn spells the bootstrap-server map key +# `SelfManagedEventSource.Endpoints.KafkaBootstrapServers`; the SDK models +# `Endpoints` as `Partial>` keyed by the enum +# value `KAFKA_BOOTSTRAP_SERVERS`. `Endpoints` is a MAP, so the serializer +# forwarded the unknown CFn key verbatim and CreateEventSourceMapping was +# REJECTED — a hard create failure for every CDK SelfManagedKafkaEventSource +# user. A successful Phase 1 deploy is therefore already the proof; the +# readback below pins the exact key AWS ended up with. +# +# The brokers are non-existent hosts and the mapping is created disabled, so +# nothing ever polls them — the API validates the request SHAPE, not +# connectivity. +# +# Phases: +# 1. Deploy. Assert the ESM exists and AWS reports the endpoints under the +# SDK enum key with both broker strings. +# 2. Re-deploy with CDKD_TEST_UPDATE=true (batchSize 10 -> 20). Assert the +# UUID is unchanged (in-place UpdateEventSourceMapping, no replacement) +# and the endpoints survived the update. +# 3. Destroy + assert the function, the ESM and the state file are gone. +# +# Required env vars: +# STATE_BUCKET — cdkd state bucket (e.g. cdkd-state-{accountId}) +# AWS_REGION — defaults to us-east-1 + +set -euo pipefail + +# --- issue #1097 pattern 2: strict gone-probe helpers ----------------------- +# A destroy/leak assertion must distinguish "not found" from any other probe +# failure (throttle, auth, network); a blind `if aws ...; then` reads ANY +# failure as "gone" and silently passes the leak check. +# gone_probe returns 0 when the probe fails with a not-found error (resource +# confirmed gone), 1 when the probe succeeds (resource still exists), and +# hard-FAILs the run on any other probe failure (undetermined result). +# The first-arg guard catches a forgotten assert_gone description: without it, +# `assert_gone aws ...` would exec `lambda get-function ...` and the shell's +# "command not found" error would match the signature -- a silent pass. +gone_probe() { # usage: gone_probe aws [args...] + [ "${1:-}" = "aws" ] || { echo "FAIL: gone_probe: probe must start with aws (got: ${1:-})" >&2; exit 1; } + local out + if out="$("$@" 2>&1)"; then + return 1 + fi + if ! printf '%s' "${out}" | grep -qiE 'not ?found|no ?such|does ?not ?exist|non ?existent|\(404'; then + echo "FAIL: gone-probe undetermined ($*): ${out}" >&2 + exit 1 + fi + return 0 +} +assert_gone() { # usage: assert_gone "" aws [args...] + local desc="$1" + shift + if ! gone_probe "$@"; then + echo "FAIL: ${desc}" >&2 + exit 1 + fi +} +# --------------------------------------------------------------------------- +cd "$(dirname "$0")" + +STACK="CdkdLambdaEsmSelfManagedKafkaExample" +REGION="${AWS_REGION:-us-east-1}" +STATE_KEY="cdkd/${STACK}/${REGION}/state.json" +FN="${STACK}-fn" +SECRET="${STACK}-kafka-auth" +EXPECTED_BROKERS="b-1.cdkd-integ.example.com:9092 b-2.cdkd-integ.example.com:9092" + +# Resolve the built CLI path without a `cd` into dist/ that fails cryptically +# (aborting under `set -e`) when dist/ is unbuilt -- the friendly guard below +# reports it instead. We are in the fixture dir, three levels below repo root. +LOCAL_DIST="${PWD}/../../../dist/cli.js" + +cleanup() { + echo "==> Cleanup" + set +eu + [ -x "${LOCAL_DIST}" ] && node "${LOCAL_DIST}" state destroy "${STACK}" --region "${REGION}" --yes >/dev/null 2>&1 + for uuid in $(aws lambda list-event-source-mappings --function-name "${FN}" --region "${REGION}" --query 'EventSourceMappings[].UUID' --output text 2>/dev/null); do + aws lambda delete-event-source-mapping --uuid "${uuid}" --region "${REGION}" >/dev/null 2>&1 || true + done + aws lambda delete-function --function-name "${FN}" --region "${REGION}" >/dev/null 2>&1 || true + aws logs delete-log-group --log-group-name "/aws/lambda/${FN}" --region "${REGION}" >/dev/null 2>&1 || true + # Force-delete so a re-run is not blocked by the 7-day recovery window. + aws secretsmanager delete-secret --secret-id "${SECRET}" --force-delete-without-recovery --region "${REGION}" >/dev/null 2>&1 || true + if [ -n "${STATE_BUCKET:-}" ]; then + aws s3 rm "s3://${STATE_BUCKET}/${STATE_KEY}" >/dev/null 2>&1 || true + aws s3 rm "s3://${STATE_BUCKET}/cdkd/${STACK}/${REGION}/lock.json" >/dev/null 2>&1 || true + fi + set -eu +} +trap cleanup EXIT +trap '(exit 130); cleanup; exit 130' INT +trap '(exit 143); cleanup; exit 143' TERM + +[ -z "${STATE_BUCKET:-}" ] && { echo "FAIL: STATE_BUCKET required" >&2; exit 1; } +[ ! -f "${LOCAL_DIST}" ] && { echo "FAIL: build dist first" >&2; exit 1; } +[ -d node_modules ] || npm install +echo "==> Pre-run cleanup"; cleanup + +esm_uuid() { + aws lambda list-event-source-mappings --function-name "${FN}" --region "${REGION}" \ + --query 'EventSourceMappings[0].UUID' --output text +} +# Bootstrap servers AWS reports, under the SDK's enum key. A missing key yields +# an empty string (the `|| ` + backtick-empty-array coalesces null INSIDE +# JMESPath so the CLI never errors on `join` receiving None, which under +# `set -e` would abort at the `$( )` assignment instead of hitting the FAIL +# branch below). SORTED because AWS does not preserve the submitted order — +# an order-sensitive compare fails intermittently (observed 2026-08-09: AWS +# returned b-2 before b-1). +esm_brokers() { + aws lambda list-event-source-mappings --function-name "${FN}" --region "${REGION}" \ + --query "join(' ', sort(EventSourceMappings[0].SelfManagedEventSource.Endpoints.KAFKA_BOOTSTRAP_SERVERS || \`[]\`))" \ + --output text +} + +# --- Phase 1: deploy --------------------------------------------------- +echo "==> Phase 1: deploy (self-managed Kafka ESM; create FAILED outright before #1384)" +env -u CDKD_TEST_UPDATE node "${LOCAL_DIST}" deploy "${STACK}" \ + --state-bucket "${STATE_BUCKET}" --region "${REGION}" --yes + +UUID_P1="$(esm_uuid)" +if [ -z "${UUID_P1}" ] || [ "${UUID_P1}" = "None" ]; then + echo "FAIL: no event source mapping found on ${FN} after deploy" >&2 + exit 1 +fi +echo " ESM created (UUID=${UUID_P1})" + +BROKERS_P1="$(esm_brokers)" +if [ "${BROKERS_P1}" != "${EXPECTED_BROKERS}" ]; then + echo "FAIL: AWS reports Endpoints.KAFKA_BOOTSTRAP_SERVERS='${BROKERS_P1}', expected '${EXPECTED_BROKERS}' (issue #1384 NOT closed)" >&2 + aws lambda get-event-source-mapping --uuid "${UUID_P1}" --region "${REGION}" >&2 + exit 1 +fi +echo " OK: KafkaBootstrapServers translated to the SDK enum key and reached AWS" + +# --- Phase 1.5: read-side inverse --------------------------------------- +# The persisted observedProperties spelling is the ONLY asymmetric probe for the +# read-side inverse. A `cdkd drift` run is NOT: its baseline is +# observedProperties, captured at deploy time from the SAME readCurrentState +# call, so both comparison sides pass through toCfnSelfManagedEventSource and +# the rename cancels — deleting the inverse (or renaming to a third key) leaves +# drift green. State, by contrast, must hold the CFn spelling the template used, +# so a missing inverse shows up immediately. +echo "==> Phase 1.5: observedProperties must hold the CFn spelling, and drift must be clean" +OBS_STATE=$(aws s3 cp "s3://${STATE_BUCKET}/${STATE_KEY}" -) +OBS_ENDPOINTS=$(printf '%s' "${OBS_STATE}" | jq -r ' + [ .resources[] | select(.resourceType == "AWS::Lambda::EventSourceMapping") + | .observedProperties.SelfManagedEventSource.Endpoints // {} ] | first // {}') +if [ "$(printf '%s' "${OBS_ENDPOINTS}" | jq -r 'has("KafkaBootstrapServers")')" != "true" ]; then + echo "FAIL: observedProperties Endpoints has no 'KafkaBootstrapServers' — the readCurrentState inverse is missing (issue #1384)" >&2 + echo " raw: ${OBS_ENDPOINTS}" >&2 + exit 1 +fi +if [ "$(printf '%s' "${OBS_ENDPOINTS}" | jq -r 'has("KAFKA_BOOTSTRAP_SERVERS")')" != "false" ]; then + echo "FAIL: observedProperties Endpoints still carries the SDK enum key 'KAFKA_BOOTSTRAP_SERVERS' — the inverse did not run (issue #1384)" >&2 + echo " raw: ${OBS_ENDPOINTS}" >&2 + exit 1 +fi +echo " OK: state holds the CFn spelling (readCurrentState inverse applied)" + +# Belt-and-braces: the two sides must also agree end to end. Branch on the exit +# code — cdkd drift exits 1 for "drift found" and 2 for a command error, and +# conflating them reports an IAM/throttle failure as a real drift finding. +DRIFT_RC=0 +node "${LOCAL_DIST}" drift "${STACK}" --state-bucket "${STATE_BUCKET}" --region "${REGION}" || DRIFT_RC=$? +if [ "${DRIFT_RC}" = "1" ]; then + echo "FAIL: cdkd drift reported drift on a freshly deployed stack" >&2 + exit 1 +elif [ "${DRIFT_RC}" != "0" ]; then + echo "FAIL: cdkd drift errored (exit ${DRIFT_RC}) — result undetermined" >&2 + exit 1 +fi +echo " OK: no drift" + +# --- Phase 2: in-place update ----------------------------------------- +# Wait out `Creating`: UpdateEventSourceMapping rejects a mapping that is still +# being created with ResourceInUseException, which is NOT in cdkd's retryable +# pattern table. +echo "==> Phase 2: wait for the ESM to settle, then re-deploy with CDKD_TEST_UPDATE=true (batchSize 10 -> 20)" +SETTLED="" +for _ in $(seq 1 24); do + ESM_STATE="$(aws lambda get-event-source-mapping --uuid "${UUID_P1}" --region "${REGION}" \ + --query 'State' --output text)" + # Gate on the TERMINAL set, not on "not Creating": Enabling / Disabling are + # also in-flight states that would break the loop early. + case "${ESM_STATE}" in + Enabled | Disabled) SETTLED=1; break ;; + esac + sleep 5 +done +[ -z "${SETTLED}" ] && { echo "FAIL: ESM ${UUID_P1} never reached Enabled/Disabled (last State=${ESM_STATE})" >&2; exit 1; } +echo " ESM settled (State=${ESM_STATE})" +CDKD_TEST_UPDATE=true node "${LOCAL_DIST}" deploy "${STACK}" \ + --state-bucket "${STATE_BUCKET}" --region "${REGION}" --yes + +UUID_P2="$(esm_uuid)" +if [ "${UUID_P2}" != "${UUID_P1}" ]; then + echo "FAIL: ESM was REPLACED (${UUID_P1} -> ${UUID_P2}), expected an in-place update" >&2 + exit 1 +fi +BATCH_P2="$(aws lambda get-event-source-mapping --uuid "${UUID_P2}" --region "${REGION}" \ + --query 'BatchSize' --output text)" +if [ "${BATCH_P2}" != "20" ]; then + echo "FAIL: Phase 2 expected BatchSize 20, got '${BATCH_P2}'" >&2 + exit 1 +fi +BROKERS_P2="$(esm_brokers)" +if [ "${BROKERS_P2}" != "${EXPECTED_BROKERS}" ]; then + echo "FAIL: after update, Endpoints.KAFKA_BOOTSTRAP_SERVERS='${BROKERS_P2}', expected '${EXPECTED_BROKERS}'" >&2 + exit 1 +fi +echo " OK: in-place update kept the UUID and the endpoints" + +# --- Phase 3: destroy -------------------------------------------------- +echo "==> Phase 3: destroy" +node "${LOCAL_DIST}" destroy "${STACK}" --state-bucket "${STATE_BUCKET}" --region "${REGION}" --force + +GONE="" +for _ in $(seq 1 18); do + if gone_probe aws lambda get-function --function-name "${FN}" --region "${REGION}"; then GONE=1; break; fi + sleep 5 +done +[ -z "${GONE}" ] && { echo "FAIL: function ${FN} still exists after destroy" >&2; exit 1; } +echo " OK: function gone" + +# DeleteEventSourceMapping is ASYNC: the mapping keeps answering 200 with +# State=Deleting for tens of seconds, so a bare assert_gone races (the same +# trap tests/integration/eventsourcemapping-race/verify.sh documents). +ESM_GONE="" +for _ in $(seq 1 24); do + if gone_probe aws lambda get-event-source-mapping --uuid "${UUID_P1}" --region "${REGION}"; then ESM_GONE=1; break; fi + sleep 5 +done +[ -z "${ESM_GONE}" ] && { echo "FAIL: event source mapping ${UUID_P1} still exists after destroy" >&2; exit 1; } +echo " OK: event source mapping gone" + +# The Secret is the one resource this fixture adds beyond Lambda, and cleanup() +# force-deletes it on EXIT — so without an explicit assert here a destroy-path +# regression that strands it in a 7-day recovery window would pass green. +# DeleteSecret is eventually consistent the same way DeleteEventSourceMapping +# is: observed 2026-08-09, describe-secret still answered 200 right after a +# clean destroy and returned ResourceNotFoundException ~a minute later. Poll. +SECRET_GONE="" +for _ in $(seq 1 24); do + if gone_probe aws secretsmanager describe-secret --secret-id "${SECRET}" --region "${REGION}"; then SECRET_GONE=1; break; fi + sleep 5 +done +[ -z "${SECRET_GONE}" ] && { echo "FAIL: secret ${SECRET} still exists after destroy" >&2; exit 1; } +echo " OK: secret gone" + +assert_gone "state file s3://${STATE_BUCKET}/${STATE_KEY} still exists after destroy" aws s3api head-object --bucket "${STATE_BUCKET}" --key "${STATE_KEY}" +echo " OK: state gone" + +echo "" +echo "==> lambda-esm-self-managed-kafka test passed (issue #1384 closed + clean destroy)" diff --git a/tests/unit/provisioning/lambda-eventsource-provider-readcurrentstate.test.ts b/tests/unit/provisioning/lambda-eventsource-provider-readcurrentstate.test.ts index c0424069b..2d34174f9 100644 --- a/tests/unit/provisioning/lambda-eventsource-provider-readcurrentstate.test.ts +++ b/tests/unit/provisioning/lambda-eventsource-provider-readcurrentstate.test.ts @@ -273,6 +273,61 @@ describe('LambdaEventSourceMappingProvider.readCurrentState', () => { expect(result?.['Topics']).not.toBe(topics); }); + it('re-spells SelfManagedEventSource.Endpoints back to the CFn key (issue #1384)', async () => { + // State holds the template's `KafkaBootstrapServers`; emitting the SDK's + // `KAFKA_BOOTSTRAP_SERVERS` here would fire guaranteed drift on every + // clean run of a self-managed-Kafka ESM. + mockSend.mockResolvedValueOnce({ + UUID: 'abc-123', + FunctionArn: 'arn:aws:lambda:us-east-1:123:function:fn', + EventSourceMappingArn: 'arn:aws:lambda:us-east-1:123:event-source-mapping:abc-123', + State: 'Enabled', + SelfManagedEventSource: { Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b:9092'] } }, + Topics: ['t-a'], + }); + mockSend.mockResolvedValueOnce({ Tags: {} }); + + const result = await provider.readCurrentState( + 'abc-123', + 'L', + 'AWS::Lambda::EventSourceMapping' + ); + expect(result?.['SelfManagedEventSource']).toEqual({ + Endpoints: { KafkaBootstrapServers: ['b:9092'] }, + }); + }); + + it('round-trips the exact template blob back out of readCurrentState (issue #1384)', async () => { + // The two directions are asserted separately elsewhere; this pins that + // they COMPOSE. A drift run compares the template-shaped state value + // against this output, so any asymmetry is permanent phantom drift. + const templateBlob = { + Endpoints: { KafkaBootstrapServers: ['b-1:9092', 'b-2:9092'], FutureType: ['x:1'] }, + FutureSibling: 'keep-me', + }; + // What AWS echoes back for that template (the SDK enum key). + mockSend.mockResolvedValueOnce({ + UUID: 'abc-123', + FunctionArn: 'arn:aws:lambda:us-east-1:123:function:fn', + EventSourceMappingArn: 'arn:aws:lambda:us-east-1:123:event-source-mapping:abc-123', + State: 'Enabled', + SelfManagedEventSource: { + Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b-1:9092', 'b-2:9092'], FutureType: ['x:1'] }, + FutureSibling: 'keep-me', + }, + Topics: ['t-a'], + }); + mockSend.mockResolvedValueOnce({ Tags: {} }); + + const result = await provider.readCurrentState( + 'abc-123', + 'L', + 'AWS::Lambda::EventSourceMapping' + ); + + expect(result?.['SelfManagedEventSource']).toEqual(templateBlob); + }); + it('converts StartingPositionTimestamp Date → epoch seconds (matches CFn shape)', async () => { // AWS returns Date; CFn template supplies (and state stores) the // epoch-seconds number per AWS::Lambda::EventSourceMapping schema. diff --git a/tests/unit/provisioning/lambda-eventsource-provider-roundtrip.test.ts b/tests/unit/provisioning/lambda-eventsource-provider-roundtrip.test.ts index 65b957199..7f5a99b44 100644 --- a/tests/unit/provisioning/lambda-eventsource-provider-roundtrip.test.ts +++ b/tests/unit/provisioning/lambda-eventsource-provider-roundtrip.test.ts @@ -264,14 +264,14 @@ describe('LambdaEventSourceMappingProvider read-update round-trip', () => { 'AWS::Lambda::EventSourceMapping', { FunctionName: 'fn', - SelfManagedEventSource: { Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b.example:9092'] } }, + SelfManagedEventSource: { Endpoints: { KafkaBootstrapServers: ['b.example:9092'] } }, Queues: ['queue-a'], Topics: ['topic-a'], StartingPositionTimestamp: 1717000000, }, { FunctionName: 'fn', - SelfManagedEventSource: { Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b.example:9092'] } }, + SelfManagedEventSource: { Endpoints: { KafkaBootstrapServers: ['b.example:9092'] } }, } ); diff --git a/tests/unit/provisioning/lambda-eventsource-provider.test.ts b/tests/unit/provisioning/lambda-eventsource-provider.test.ts index 0659926ee..16de20e0b 100644 --- a/tests/unit/provisioning/lambda-eventsource-provider.test.ts +++ b/tests/unit/provisioning/lambda-eventsource-provider.test.ts @@ -170,7 +170,7 @@ describe('LambdaEventSourceMappingProvider', () => { it('forwards Queues (self-managed source target list)', async () => { await provider.create('L', 'AWS::Lambda::EventSourceMapping', { FunctionName: 'fn', - SelfManagedEventSource: { Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b.example:9092'] } }, + SelfManagedEventSource: { Endpoints: { KafkaBootstrapServers: ['b.example:9092'] } }, Queues: ['queue-a', 'queue-b'], }); @@ -181,7 +181,7 @@ describe('LambdaEventSourceMappingProvider', () => { it('forwards Topics (self-managed Kafka topic list)', async () => { await provider.create('L', 'AWS::Lambda::EventSourceMapping', { FunctionName: 'fn', - SelfManagedEventSource: { Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b.example:9092'] } }, + SelfManagedEventSource: { Endpoints: { KafkaBootstrapServers: ['b.example:9092'] } }, Topics: ['topic-a'], }); @@ -189,6 +189,93 @@ describe('LambdaEventSourceMappingProvider', () => { expect(input['Topics']).toEqual(['topic-a']); }); + it('translates SelfManagedEventSource.Endpoints.KafkaBootstrapServers to the SDK enum key (issue #1384)', async () => { + // CFn / CDK's `CfnEventSourceMapping` spell the map key + // `KafkaBootstrapServers`; the SDK models `Endpoints` as + // `Partial>` keyed `KAFKA_BOOTSTRAP_SERVERS`. + // `Endpoints` is a MAP, so the serializer forwards an unknown key verbatim + // and CreateEventSourceMapping fails outright. + await provider.create('L', 'AWS::Lambda::EventSourceMapping', { + FunctionName: 'fn', + SelfManagedEventSource: { + Endpoints: { KafkaBootstrapServers: ['b1.example:9092', 'b2.example:9092'] }, + }, + Topics: ['topic-a'], + }); + + const input = getCreateInput(); + expect(input['SelfManagedEventSource']).toEqual({ + Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b1.example:9092', 'b2.example:9092'] }, + }); + }); + + it('leaves a SelfManagedEventSource without an Endpoints map untouched', async () => { + await provider.create('L', 'AWS::Lambda::EventSourceMapping', { + FunctionName: 'fn', + SelfManagedEventSource: {}, + Topics: ['topic-a'], + }); + + expect(getCreateInput()['SelfManagedEventSource']).toEqual({}); + }); + + it('preserves sibling members beside Endpoints and beside the renamed key', async () => { + // The rename must not rebuild the blob from a known-key allow-list — a + // future SDK member would then be silently dropped by the very layer + // that exists to stop silent drops. + await provider.create('L', 'AWS::Lambda::EventSourceMapping', { + FunctionName: 'fn', + SelfManagedEventSource: { + Endpoints: { KafkaBootstrapServers: ['b:9092'], FutureEndpointType: ['x:1'] }, + FutureSibling: 'keep-me', + }, + Topics: ['topic-a'], + }); + + expect(getCreateInput()['SelfManagedEventSource']).toEqual({ + Endpoints: { KAFKA_BOOTSTRAP_SERVERS: ['b:9092'], FutureEndpointType: ['x:1'] }, + FutureSibling: 'keep-me', + }); + }); + + it('does not mutate the caller-supplied properties object', async () => { + // Load-bearing: the deploy engine saves cdkd state FROM this same object, + // so an in-place rename would persist the SDK spelling into state and + // fire permanent phantom drift against the CFn-spelled template. + const properties = { + FunctionName: 'fn', + SelfManagedEventSource: { Endpoints: { KafkaBootstrapServers: ['b:9092'] } }, + Topics: ['topic-a'], + }; + + await provider.create('L', 'AWS::Lambda::EventSourceMapping', properties); + + expect(properties.SelfManagedEventSource).toEqual({ + Endpoints: { KafkaBootstrapServers: ['b:9092'] }, + }); + }); + + it('forwards a malformed SelfManagedEventSource verbatim rather than dropping it', async () => { + // Regression guard against turning the fix into a NEW silent drop: the + // raw pass-through this replaced sent whatever the template held, and AWS + // is the layer that must reject a malformed blob. An array `Endpoints` is + // likewise re-shapeable-looking but not a map, so it also passes through. + await provider.create('L', 'AWS::Lambda::EventSourceMapping', { + FunctionName: 'fn', + SelfManagedEventSource: 'not-an-object', + Topics: ['topic-a'], + }); + expect(getCreateInput()['SelfManagedEventSource']).toBe('not-an-object'); + + mockSend.mockClear(); + await provider.create('L', 'AWS::Lambda::EventSourceMapping', { + FunctionName: 'fn', + SelfManagedEventSource: { Endpoints: ['b:9092'] }, + Topics: ['topic-a'], + }); + expect(getCreateInput()['SelfManagedEventSource']).toEqual({ Endpoints: ['b:9092'] }); + }); + it('coerces StartingPositionTimestamp number (epoch seconds) → Date', async () => { // CFn schema says `Number` for the field; the AWS::Lambda::EventSourceMapping // CFn docs phrase it as a Unix epoch in seconds. SDK expects a `Date`.