@kensio/yulin 1.19.1 → 1.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/serve/http/local-server/sim-aws-local-server.d.ts +31 -0
- package/dist/serve/http/local-server/sim-aws-local-server.d.ts.map +1 -1
- package/dist/serve/http/local-server/sim-aws-local-server.js +15 -1
- package/dist/serve/http/local-server/sim-aws-local-server.js.map +1 -1
- package/dist/serve/index.d.ts +1 -0
- package/dist/serve/index.d.ts.map +1 -1
- package/dist/serve/index.js.map +1 -1
- package/dist/serve/message/sim-local-message-logging.d.ts +39 -0
- package/dist/serve/message/sim-local-message-logging.d.ts.map +1 -0
- package/dist/serve/message/sim-local-message-logging.js +45 -0
- package/dist/serve/message/sim-local-message-logging.js.map +1 -0
- package/dist/serve/message/sim-message-log-console.d.ts +43 -0
- package/dist/serve/message/sim-message-log-console.d.ts.map +1 -0
- package/dist/serve/message/sim-message-log-console.js +71 -0
- package/dist/serve/message/sim-message-log-console.js.map +1 -0
- package/dist/serve/message/sim-message-logging.d.ts +42 -0
- package/dist/serve/message/sim-message-logging.d.ts.map +1 -0
- package/dist/serve/message/sim-message-logging.js +31 -0
- package/dist/serve/message/sim-message-logging.js.map +1 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts +3 -0
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js +12 -1
- package/dist/service/aws/factory/sim-aws-account-region-service-builder.js.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts +9 -0
- package/dist/service/aws/factory/sim-aws-service-factory.d.ts.map +1 -1
- package/dist/service/aws/factory/sim-aws-service-factory.js +10 -0
- package/dist/service/aws/factory/sim-aws-service-factory.js.map +1 -1
- package/dist/service/aws/message/sim-aws-logged-message.d.ts +46 -0
- package/dist/service/aws/message/sim-aws-logged-message.d.ts.map +1 -0
- package/dist/service/aws/message/sim-aws-logged-message.js +2 -0
- package/dist/service/aws/message/sim-aws-logged-message.js.map +1 -0
- package/dist/service/aws/message/sim-aws-message-log.d.ts +40 -0
- package/dist/service/aws/message/sim-aws-message-log.d.ts.map +1 -0
- package/dist/service/aws/message/sim-aws-message-log.js +40 -0
- package/dist/service/aws/message/sim-aws-message-log.js.map +1 -0
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.d.ts +4 -3
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.d.ts.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.js +4 -3
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/property/sim-cdk-bucket-notification-properties.js.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.d.ts +5 -0
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.d.ts.map +1 -1
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.js +5 -0
- package/dist/service/cloudformation/cdk/s3/bucket-notifications/sim-cdk-bucket-notifications.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts +2 -2
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-deployer.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts +3 -3
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-cdk-out-stack-options.js.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts +5 -4
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.d.ts.map +1 -1
- package/dist/service/cloudformation/deploy/sim-cfn-template-deployer.js.map +1 -1
- package/dist/service/cloudformation/index.d.ts +7 -0
- package/dist/service/cloudformation/index.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.d.ts.map +1 -1
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.js +8 -0
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-cfn-value-adapter.js.map +1 -1
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.d.ts +30 -0
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.js +29 -0
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-configuration-set-cfn.js.map +1 -0
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-identity-cfn.js +1 -1
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-identity-cfn.js.map +1 -1
- package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.d.ts +59 -0
- package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.d.ts.map +1 -0
- package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.js +2 -0
- package/dist/service/cloudformation/resource/sim-cfn-deployed-resource.type.js.map +1 -0
- package/dist/service/cloudformation/sim-cloudformation.d.ts +8 -9
- package/dist/service/cloudformation/sim-cloudformation.d.ts.map +1 -1
- package/dist/service/cloudformation/sim-cloudformation.js +1 -3
- package/dist/service/cloudformation/sim-cloudformation.js.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts +68 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.d.ts.map +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.js +2 -0
- package/dist/service/cloudformation/stack/sim-cfn-deployed-stack.type.js.map +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts +2 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.d.ts.map +1 -1
- package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.d.ts +21 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.d.ts.map +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.js +21 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.fixture.js.map +1 -0
- package/dist/service/cloudformation/stack/sim-cfn-stack.js.map +1 -1
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.d.ts.map +1 -1
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js +2 -0
- package/dist/service/cognito/cfn/client/sim-cfn-cognito-client-properties.js.map +1 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.d.ts +7 -0
- package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.d.ts.map +1 -1
- package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.js +14 -0
- package/dist/service/cognito/cfn/sim-cfn-cognito-property-parser.js.map +1 -1
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.d.ts.map +1 -1
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.js +10 -0
- package/dist/service/cognito/cfn/user-pool/sim-cfn-cognito-user-pool-properties.js.map +1 -1
- package/dist/service/cognito/command/auth/sim-cognito-available-challenges.d.ts.map +1 -1
- package/dist/service/cognito/command/auth/sim-cognito-available-challenges.js +7 -6
- package/dist/service/cognito/command/auth/sim-cognito-available-challenges.js.map +1 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts +20 -0
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.d.ts.map +1 -1
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js +24 -4
- package/dist/service/cognito/command/client/sim-cognito-unsimulated-client-options.js.map +1 -1
- package/dist/service/cognito/command/sim-cognito-commands.d.ts +4 -0
- package/dist/service/cognito/command/sim-cognito-commands.d.ts.map +1 -1
- package/dist/service/cognito/command/sim-cognito-commands.js +8 -2
- package/dist/service/cognito/command/sim-cognito-commands.js.map +1 -1
- package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts +9 -0
- package/dist/service/cognito/command/sim-cognito-unsimulated-input.d.ts.map +1 -1
- package/dist/service/cognito/command/sim-cognito-unsimulated-input.js +13 -3
- package/dist/service/cognito/command/sim-cognito-unsimulated-input.js.map +1 -1
- package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.d.ts.map +1 -1
- package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.js +2 -1
- package/dist/service/cognito/command/user/sim-cognito-user-mfa-commands.js.map +1 -1
- package/dist/service/cognito/command/user/user-mfa.command.d.ts +4 -3
- package/dist/service/cognito/command/user/user-mfa.command.d.ts.map +1 -1
- package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts +22 -8
- package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.d.ts.map +1 -1
- package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js +24 -11
- package/dist/service/cognito/command/user-pool/sim-cognito-unsimulated-pool-messaging.js.map +1 -1
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.d.ts +3 -3
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.d.ts.map +1 -1
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.js +5 -4
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-mfa-commands.js.map +1 -1
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts +6 -0
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.d.ts.map +1 -1
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js +7 -0
- package/dist/service/cognito/command/user-pool/sim-cognito-user-pool-view.js.map +1 -1
- package/dist/service/cognito/command/user-pool/user-pool-mfa.command.d.ts +7 -6
- package/dist/service/cognito/command/user-pool/user-pool-mfa.command.d.ts.map +1 -1
- package/dist/service/cognito/command/user-pool/user-pool.command.d.ts +4 -2
- package/dist/service/cognito/command/user-pool/user-pool.command.d.ts.map +1 -1
- package/dist/service/cognito/error/sim-cognito.error.d.ts +23 -0
- package/dist/service/cognito/error/sim-cognito.error.d.ts.map +1 -1
- package/dist/service/cognito/error/sim-cognito.error.js +27 -0
- package/dist/service/cognito/error/sim-cognito.error.js.map +1 -1
- package/dist/service/cognito/index.d.ts +4 -0
- package/dist/service/cognito/index.d.ts.map +1 -1
- package/dist/service/cognito/index.js +4 -0
- package/dist/service/cognito/index.js.map +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts +14 -0
- package/dist/service/cognito/sim-cognito-identity-provider.d.ts.map +1 -1
- package/dist/service/cognito/sim-cognito-identity-provider.js +5 -1
- package/dist/service/cognito/sim-cognito-identity-provider.js.map +1 -1
- package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.d.ts +42 -0
- package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.js +84 -0
- package/dist/service/cognito/user-pool/message/sim-aws-cognito-email-senders.js.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.d.ts +31 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.js +72 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration-reader.js.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.d.ts +85 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.js +117 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-configuration.js.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.d.ts +73 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.js +23 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-senders.js.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.d.ts +39 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.js +33 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-email-source-arn.js.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.d.ts +41 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.d.ts.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.js +66 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-email-delivery.js.map +1 -0
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts +19 -4
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js +30 -8
- package/dist/service/cognito/user-pool/message/sim-cognito-pool-messenger.js.map +1 -1
- package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.d.ts +9 -3
- package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.js +9 -3
- package/dist/service/cognito/user-pool/message/sim-cognito-sent-message.js.map +1 -1
- package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.d.ts +2 -3
- package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/mfa/sim-cognito-user-pool-mfa.js.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts +4 -2
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js +2 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-arn.js.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.d.ts +13 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.d.ts.map +1 -1
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.js +7 -0
- package/dist/service/cognito/user-pool/sim-cognito-user-pool-settings.js.map +1 -1
- package/dist/service/elbv2/cfn/sim-cfn-elbv2.fixture.d.ts +2 -2
- package/dist/service/elbv2/cfn/sim-cfn-elbv2.fixture.d.ts.map +1 -1
- package/dist/service/elbv2/cfn/sim-cfn-elbv2.fixture.js.map +1 -1
- package/dist/service/iam/index.d.ts +1 -0
- package/dist/service/iam/index.d.ts.map +1 -1
- package/dist/service/iam/index.js.map +1 -1
- package/dist/service/ses/account/sim-ses-account.d.ts +22 -0
- package/dist/service/ses/account/sim-ses-account.d.ts.map +1 -1
- package/dist/service/ses/account/sim-ses-account.js +31 -0
- package/dist/service/ses/account/sim-ses-account.js.map +1 -1
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts +30 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.d.ts.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js +47 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-creator.js.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.d.ts +23 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.d.ts.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.js +52 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-option-groups.js.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.d.ts +39 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.d.ts.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.js +71 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-properties.js.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.d.ts +17 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.d.ts.map +1 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.js +34 -0
- package/dist/service/ses/cfn/configuration-set/sim-cfn-ses-configuration-set-unsimulated-properties.js.map +1 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts +5 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.d.ts.map +1 -1
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js +7 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-creator.js.map +1 -1
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.d.ts +13 -8
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.d.ts.map +1 -1
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.js +29 -14
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-properties.js.map +1 -1
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.d.ts +18 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.d.ts.map +1 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.js +77 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-settings.js.map +1 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.d.ts +25 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.d.ts.map +1 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.js +49 -0
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-values.js.map +1 -0
- package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.d.ts +25 -0
- package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.d.ts.map +1 -0
- package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.js +69 -0
- package/dist/service/ses/cfn/sim-cfn-ses-property-scalars.js.map +1 -0
- package/dist/service/ses/cfn/sim-cfn-ses-resource-types.d.ts +2 -0
- package/dist/service/ses/cfn/sim-cfn-ses-resource-types.d.ts.map +1 -1
- package/dist/service/ses/cfn/sim-cfn-ses-resource-types.js +2 -0
- package/dist/service/ses/cfn/sim-cfn-ses-resource-types.js.map +1 -1
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts +3 -2
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.d.ts.map +1 -1
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js +43 -40
- package/dist/service/ses/cfn/sim-ses-cfn-resource-factory.js.map +1 -1
- package/dist/service/ses/command/account/account.command.d.ts +22 -0
- package/dist/service/ses/command/account/account.command.d.ts.map +1 -1
- package/dist/service/ses/command/account/sim-ses-account-commands.d.ts +12 -4
- package/dist/service/ses/command/account/sim-ses-account-commands.d.ts.map +1 -1
- package/dist/service/ses/command/account/sim-ses-account-commands.js +16 -3
- package/dist/service/ses/command/account/sim-ses-account-commands.js.map +1 -1
- package/dist/service/ses/command/account/sim-ses-account-report.d.ts +3 -0
- package/dist/service/ses/command/account/sim-ses-account-report.d.ts.map +1 -1
- package/dist/service/ses/command/account/sim-ses-account-report.js +4 -0
- package/dist/service/ses/command/account/sim-ses-account-report.js.map +1 -1
- package/dist/service/ses/command/authorize/sim-ses-authorizer.d.ts +8 -0
- package/dist/service/ses/command/authorize/sim-ses-authorizer.d.ts.map +1 -1
- package/dist/service/ses/command/authorize/sim-ses-authorizer.js +11 -1
- package/dist/service/ses/command/authorize/sim-ses-authorizer.js.map +1 -1
- package/dist/service/ses/command/configuration-set/configuration-set.command.d.ts +100 -0
- package/dist/service/ses/command/configuration-set/configuration-set.command.d.ts.map +1 -0
- package/dist/service/ses/command/configuration-set/configuration-set.command.js +2 -0
- package/dist/service/ses/command/configuration-set/configuration-set.command.js.map +1 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.d.ts +55 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.d.ts.map +1 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js +105 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-commands.js.map +1 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts +11 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.d.ts.map +1 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js +83 -0
- package/dist/service/ses/command/configuration-set/sim-ses-configuration-set-options.js.map +1 -0
- package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.d.ts +12 -0
- package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.d.ts.map +1 -0
- package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.js +27 -0
- package/dist/service/ses/command/configuration-set/sim-ses-unsimulated-configuration-set-input.js.map +1 -0
- package/dist/service/ses/command/identity/identity.command.d.ts +55 -2
- package/dist/service/ses/command/identity/identity.command.d.ts.map +1 -1
- package/dist/service/ses/command/identity/sim-ses-identity-attributes.d.ts +29 -0
- package/dist/service/ses/command/identity/sim-ses-identity-attributes.d.ts.map +1 -0
- package/dist/service/ses/command/identity/sim-ses-identity-attributes.js +60 -0
- package/dist/service/ses/command/identity/sim-ses-identity-attributes.js.map +1 -0
- package/dist/service/ses/command/identity/sim-ses-identity-commands.d.ts +6 -1
- package/dist/service/ses/command/identity/sim-ses-identity-commands.d.ts.map +1 -1
- package/dist/service/ses/command/identity/sim-ses-identity-commands.js +12 -12
- package/dist/service/ses/command/identity/sim-ses-identity-commands.js.map +1 -1
- package/dist/service/ses/command/identity/sim-ses-identity-input-settings.d.ts +16 -0
- package/dist/service/ses/command/identity/sim-ses-identity-input-settings.d.ts.map +1 -0
- package/dist/service/ses/command/identity/sim-ses-identity-input-settings.js +57 -0
- package/dist/service/ses/command/identity/sim-ses-identity-input-settings.js.map +1 -0
- package/dist/service/ses/command/send/sim-ses-send-email.d.ts +6 -0
- package/dist/service/ses/command/send/sim-ses-send-email.d.ts.map +1 -1
- package/dist/service/ses/command/send/sim-ses-send-email.js +7 -0
- package/dist/service/ses/command/send/sim-ses-send-email.js.map +1 -1
- package/dist/service/ses/command/send/sim-ses-service-send.d.ts +68 -0
- package/dist/service/ses/command/send/sim-ses-service-send.d.ts.map +1 -0
- package/dist/service/ses/command/send/sim-ses-service-send.js +69 -0
- package/dist/service/ses/command/send/sim-ses-service-send.js.map +1 -0
- package/dist/service/ses/command/send/sim-ses-suppression-check.d.ts +31 -0
- package/dist/service/ses/command/send/sim-ses-suppression-check.d.ts.map +1 -0
- package/dist/service/ses/command/send/sim-ses-suppression-check.js +37 -0
- package/dist/service/ses/command/send/sim-ses-suppression-check.js.map +1 -0
- package/dist/service/ses/command/send/sim-ses-verified-identities.d.ts +8 -0
- package/dist/service/ses/command/send/sim-ses-verified-identities.d.ts.map +1 -1
- package/dist/service/ses/command/send/sim-ses-verified-identities.js +15 -2
- package/dist/service/ses/command/send/sim-ses-verified-identities.js.map +1 -1
- package/dist/service/ses/command/sim-ses-command.types.d.ts +4 -2
- package/dist/service/ses/command/sim-ses-command.types.d.ts.map +1 -1
- package/dist/service/ses/command/suppression/sim-ses-suppression-commands.d.ts +44 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-commands.d.ts.map +1 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-commands.js +79 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-commands.js.map +1 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-listing.d.ts +15 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-listing.d.ts.map +1 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-listing.js +29 -0
- package/dist/service/ses/command/suppression/sim-ses-suppression-listing.js.map +1 -0
- package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.d.ts +9 -0
- package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.d.ts.map +1 -0
- package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.js +16 -0
- package/dist/service/ses/command/suppression/sim-ses-unsimulated-suppression-input.js.map +1 -0
- package/dist/service/ses/command/suppression/suppression.command.d.ts +90 -0
- package/dist/service/ses/command/suppression/suppression.command.d.ts.map +1 -0
- package/dist/service/ses/command/suppression/suppression.command.js +2 -0
- package/dist/service/ses/command/suppression/suppression.command.js.map +1 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.d.ts +44 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.d.ts.map +1 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.js +91 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set-store.js.map +1 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts +75 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.d.ts.map +1 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.js +44 -0
- package/dist/service/ses/configuration-set/sim-ses-configuration-set.js.map +1 -0
- package/dist/service/ses/email/sim-ses-sent-email.d.ts +29 -0
- package/dist/service/ses/email/sim-ses-sent-email.d.ts.map +1 -1
- package/dist/service/ses/email/sim-ses-sent-email.js +21 -0
- package/dist/service/ses/email/sim-ses-sent-email.js.map +1 -1
- package/dist/service/ses/identity/sim-ses-dkim-tokens.d.ts.map +1 -0
- package/dist/service/ses/identity/sim-ses-dkim-tokens.js.map +1 -0
- package/dist/service/ses/identity/sim-ses-identity-name.d.ts +5 -0
- package/dist/service/ses/identity/sim-ses-identity-name.d.ts.map +1 -1
- package/dist/service/ses/identity/sim-ses-identity-name.js +5 -1
- package/dist/service/ses/identity/sim-ses-identity-name.js.map +1 -1
- package/dist/service/ses/identity/sim-ses-identity-settings.d.ts +64 -0
- package/dist/service/ses/identity/sim-ses-identity-settings.d.ts.map +1 -0
- package/dist/service/ses/identity/sim-ses-identity-settings.js +21 -0
- package/dist/service/ses/identity/sim-ses-identity-settings.js.map +1 -0
- package/dist/service/ses/identity/sim-ses-identity-store.d.ts +2 -1
- package/dist/service/ses/identity/sim-ses-identity-store.d.ts.map +1 -1
- package/dist/service/ses/identity/sim-ses-identity-store.js +2 -1
- package/dist/service/ses/identity/sim-ses-identity-store.js.map +1 -1
- package/dist/service/ses/identity/sim-ses-identity.d.ts +38 -0
- package/dist/service/ses/identity/sim-ses-identity.d.ts.map +1 -1
- package/dist/service/ses/identity/sim-ses-identity.js +54 -0
- package/dist/service/ses/identity/sim-ses-identity.js.map +1 -1
- package/dist/service/ses/index.d.ts +10 -3
- package/dist/service/ses/index.d.ts.map +1 -1
- package/dist/service/ses/index.js +7 -1
- package/dist/service/ses/index.js.map +1 -1
- package/dist/service/ses/sdk/sim-ses-sdk-command-router.d.ts.map +1 -1
- package/dist/service/ses/sdk/sim-ses-sdk-command-router.js +36 -0
- package/dist/service/ses/sdk/sim-ses-sdk-command-router.js.map +1 -1
- package/dist/service/ses/sim-ses-arn.d.ts +7 -0
- package/dist/service/ses/sim-ses-arn.d.ts.map +1 -1
- package/dist/service/ses/sim-ses-arn.js +9 -0
- package/dist/service/ses/sim-ses-arn.js.map +1 -1
- package/dist/service/ses/sim-ses-commands.d.ts +14 -0
- package/dist/service/ses/sim-ses-commands.d.ts.map +1 -1
- package/dist/service/ses/sim-ses-commands.js +47 -5
- package/dist/service/ses/sim-ses-commands.js.map +1 -1
- package/dist/service/ses/sim-ses-configuration-sets.d.ts +47 -0
- package/dist/service/ses/sim-ses-configuration-sets.d.ts.map +1 -0
- package/dist/service/ses/sim-ses-configuration-sets.js +60 -0
- package/dist/service/ses/sim-ses-configuration-sets.js.map +1 -0
- package/dist/service/ses/sim-ses-suppression.d.ts +52 -0
- package/dist/service/ses/sim-ses-suppression.d.ts.map +1 -0
- package/dist/service/ses/sim-ses-suppression.js +63 -0
- package/dist/service/ses/sim-ses-suppression.js.map +1 -0
- package/dist/service/ses/sim-ses-v2.d.ts +14 -1
- package/dist/service/ses/sim-ses-v2.d.ts.map +1 -1
- package/dist/service/ses/sim-ses-v2.js +48 -35
- package/dist/service/ses/sim-ses-v2.js.map +1 -1
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts +24 -0
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.d.ts.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.js +21 -0
- package/dist/service/ses/suppression/sim-ses-suppressed-destination.js.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppression-address.d.ts +9 -0
- package/dist/service/ses/suppression/sim-ses-suppression-address.d.ts.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppression-address.js +21 -0
- package/dist/service/ses/suppression/sim-ses-suppression-address.js.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts +57 -0
- package/dist/service/ses/suppression/sim-ses-suppression-list.d.ts.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppression-list.js +82 -0
- package/dist/service/ses/suppression/sim-ses-suppression-list.js.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppression-reason.d.ts +20 -0
- package/dist/service/ses/suppression/sim-ses-suppression-reason.d.ts.map +1 -0
- package/dist/service/ses/suppression/sim-ses-suppression-reason.js +24 -0
- package/dist/service/ses/suppression/sim-ses-suppression-reason.js.map +1 -0
- package/dist/service/sns/command/sim-sns-commands.d.ts +2 -0
- package/dist/service/sns/command/sim-sns-commands.d.ts.map +1 -1
- package/dist/service/sns/command/sim-sns-commands.js +4 -1
- package/dist/service/sns/command/sim-sns-commands.js.map +1 -1
- package/dist/service/sns/sim-sns.d.ts +7 -0
- package/dist/service/sns/sim-sns.d.ts.map +1 -1
- package/dist/service/sns/sim-sns.js +3 -1
- package/dist/service/sns/sim-sns.js.map +1 -1
- package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts +13 -0
- package/dist/service/sns/sms/sim-sns-sent-sms-store.d.ts.map +1 -1
- package/dist/service/sns/sms/sim-sns-sent-sms-store.js +15 -0
- package/dist/service/sns/sms/sim-sns-sent-sms-store.js.map +1 -1
- package/dist/terraform/index.d.ts +6 -0
- package/dist/terraform/index.d.ts.map +1 -0
- package/dist/terraform/index.js +2 -0
- package/dist/terraform/index.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.d.ts +20 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.js +36 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch-dimensions.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch.d.ts +12 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch.js +69 -0
- package/dist/terraform/map/sim-tf-map-cloudwatch.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-cognito-client.d.ts +15 -0
- package/dist/terraform/map/sim-tf-map-cognito-client.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-cognito-client.js +37 -0
- package/dist/terraform/map/sim-tf-map-cognito-client.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-cognito-pool.d.ts +26 -0
- package/dist/terraform/map/sim-tf-map-cognito-pool.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-cognito-pool.js +70 -0
- package/dist/terraform/map/sim-tf-map-cognito-pool.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-cognito.d.ts +13 -0
- package/dist/terraform/map/sim-tf-map-cognito.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-cognito.js +39 -0
- package/dist/terraform/map/sim-tf-map-cognito.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-dynamodb-keys.d.ts +31 -0
- package/dist/terraform/map/sim-tf-map-dynamodb-keys.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-dynamodb-keys.js +71 -0
- package/dist/terraform/map/sim-tf-map-dynamodb-keys.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-dynamodb.d.ts +5 -0
- package/dist/terraform/map/sim-tf-map-dynamodb.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-dynamodb.js +31 -0
- package/dist/terraform/map/sim-tf-map-dynamodb.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-ecr.d.ts +12 -0
- package/dist/terraform/map/sim-tf-map-ecr.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-ecr.js +34 -0
- package/dist/terraform/map/sim-tf-map-ecr.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-events.d.ts +24 -0
- package/dist/terraform/map/sim-tf-map-events.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-events.js +151 -0
- package/dist/terraform/map/sim-tf-map-events.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-http-api-routes.d.ts +10 -0
- package/dist/terraform/map/sim-tf-map-http-api-routes.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-http-api-routes.js +48 -0
- package/dist/terraform/map/sim-tf-map-http-api-routes.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-http-api.d.ts +7 -0
- package/dist/terraform/map/sim-tf-map-http-api.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-http-api.js +38 -0
- package/dist/terraform/map/sim-tf-map-http-api.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-iam-policy.d.ts +32 -0
- package/dist/terraform/map/sim-tf-map-iam-policy.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-iam-policy.js +85 -0
- package/dist/terraform/map/sim-tf-map-iam-policy.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-iam.d.ts +7 -0
- package/dist/terraform/map/sim-tf-map-iam.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-iam.js +37 -0
- package/dist/terraform/map/sim-tf-map-iam.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-kms.d.ts +25 -0
- package/dist/terraform/map/sim-tf-map-kms.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-kms.js +75 -0
- package/dist/terraform/map/sim-tf-map-kms.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-lambda-environment.d.ts +20 -0
- package/dist/terraform/map/sim-tf-map-lambda-environment.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-lambda-environment.js +52 -0
- package/dist/terraform/map/sim-tf-map-lambda-environment.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-lambda.d.ts +19 -0
- package/dist/terraform/map/sim-tf-map-lambda.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-lambda.js +73 -0
- package/dist/terraform/map/sim-tf-map-lambda.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-logs.d.ts +12 -0
- package/dist/terraform/map/sim-tf-map-logs.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-logs.js +22 -0
- package/dist/terraform/map/sim-tf-map-logs.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-folds.d.ts +9 -0
- package/dist/terraform/map/sim-tf-map-s3-folds.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-folds.js +47 -0
- package/dist/terraform/map/sim-tf-map-s3-folds.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts +4 -0
- package/dist/terraform/map/sim-tf-map-s3-lifecycle.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-lifecycle.js +92 -0
- package/dist/terraform/map/sim-tf-map-s3-lifecycle.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-destinations.d.ts +5 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-destinations.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-destinations.js +30 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-destinations.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-filter.d.ts +12 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-filter.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-filter.js +21 -0
- package/dist/terraform/map/sim-tf-map-s3-notification-filter.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-notification.d.ts +50 -0
- package/dist/terraform/map/sim-tf-map-s3-notification.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-notification.js +80 -0
- package/dist/terraform/map/sim-tf-map-s3-notification.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-rules.d.ts +7 -0
- package/dist/terraform/map/sim-tf-map-s3-rules.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3-rules.js +49 -0
- package/dist/terraform/map/sim-tf-map-s3-rules.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3.d.ts +5 -0
- package/dist/terraform/map/sim-tf-map-s3.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-s3.js +18 -0
- package/dist/terraform/map/sim-tf-map-s3.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-secretsmanager.d.ts +12 -0
- package/dist/terraform/map/sim-tf-map-secretsmanager.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-secretsmanager.js +24 -0
- package/dist/terraform/map/sim-tf-map-secretsmanager.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-sns.d.ts +15 -0
- package/dist/terraform/map/sim-tf-map-sns.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-sns.js +40 -0
- package/dist/terraform/map/sim-tf-map-sns.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts +32 -0
- package/dist/terraform/map/sim-tf-map-sqs-redrive.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-sqs-redrive.js +68 -0
- package/dist/terraform/map/sim-tf-map-sqs-redrive.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-sqs.d.ts +11 -0
- package/dist/terraform/map/sim-tf-map-sqs.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-sqs.js +26 -0
- package/dist/terraform/map/sim-tf-map-sqs.js.map +1 -0
- package/dist/terraform/map/sim-tf-map-ssm.d.ts +13 -0
- package/dist/terraform/map/sim-tf-map-ssm.d.ts.map +1 -0
- package/dist/terraform/map/sim-tf-map-ssm.js +24 -0
- package/dist/terraform/map/sim-tf-map-ssm.js.map +1 -0
- package/dist/terraform/sim-tf-adapter.d.ts +80 -0
- package/dist/terraform/sim-tf-adapter.d.ts.map +1 -0
- package/dist/terraform/sim-tf-adapter.js +44 -0
- package/dist/terraform/sim-tf-adapter.js.map +1 -0
- package/dist/terraform/sim-tf-attribute-reads.d.ts +12 -0
- package/dist/terraform/sim-tf-attribute-reads.d.ts.map +1 -0
- package/dist/terraform/sim-tf-attribute-reads.js +60 -0
- package/dist/terraform/sim-tf-attribute-reads.js.map +1 -0
- package/dist/terraform/sim-tf-attributes.d.ts +69 -0
- package/dist/terraform/sim-tf-attributes.d.ts.map +1 -0
- package/dist/terraform/sim-tf-attributes.js +121 -0
- package/dist/terraform/sim-tf-attributes.js.map +1 -0
- package/dist/terraform/sim-tf-declare.d.ts +37 -0
- package/dist/terraform/sim-tf-declare.d.ts.map +1 -0
- package/dist/terraform/sim-tf-declare.js +83 -0
- package/dist/terraform/sim-tf-declare.js.map +1 -0
- package/dist/terraform/sim-tf-fold.d.ts +26 -0
- package/dist/terraform/sim-tf-fold.d.ts.map +1 -0
- package/dist/terraform/sim-tf-fold.js +72 -0
- package/dist/terraform/sim-tf-fold.js.map +1 -0
- package/dist/terraform/sim-tf-import.d.ts +31 -0
- package/dist/terraform/sim-tf-import.d.ts.map +1 -0
- package/dist/terraform/sim-tf-import.js +38 -0
- package/dist/terraform/sim-tf-import.js.map +1 -0
- package/dist/terraform/sim-tf-logical-id.d.ts +27 -0
- package/dist/terraform/sim-tf-logical-id.d.ts.map +1 -0
- package/dist/terraform/sim-tf-logical-id.js +83 -0
- package/dist/terraform/sim-tf-logical-id.js.map +1 -0
- package/dist/terraform/sim-tf-mapping.type.d.ts +73 -0
- package/dist/terraform/sim-tf-mapping.type.d.ts.map +1 -0
- package/dist/terraform/sim-tf-mapping.type.js +2 -0
- package/dist/terraform/sim-tf-mapping.type.js.map +1 -0
- package/dist/terraform/sim-tf-module-outputs.d.ts +11 -0
- package/dist/terraform/sim-tf-module-outputs.d.ts.map +1 -0
- package/dist/terraform/sim-tf-module-outputs.js +33 -0
- package/dist/terraform/sim-tf-module-outputs.js.map +1 -0
- package/dist/terraform/sim-tf-nested-attributes.d.ts +33 -0
- package/dist/terraform/sim-tf-nested-attributes.d.ts.map +1 -0
- package/dist/terraform/sim-tf-nested-attributes.js +97 -0
- package/dist/terraform/sim-tf-nested-attributes.js.map +1 -0
- package/dist/terraform/sim-tf-override.type.d.ts +36 -0
- package/dist/terraform/sim-tf-override.type.d.ts.map +1 -0
- package/dist/terraform/sim-tf-override.type.js +2 -0
- package/dist/terraform/sim-tf-override.type.js.map +1 -0
- package/dist/terraform/sim-tf-overrides.d.ts +21 -0
- package/dist/terraform/sim-tf-overrides.d.ts.map +1 -0
- package/dist/terraform/sim-tf-overrides.js +40 -0
- package/dist/terraform/sim-tf-overrides.js.map +1 -0
- package/dist/terraform/sim-tf-plan-file.d.ts +23 -0
- package/dist/terraform/sim-tf-plan-file.d.ts.map +1 -0
- package/dist/terraform/sim-tf-plan-file.js +58 -0
- package/dist/terraform/sim-tf-plan-file.js.map +1 -0
- package/dist/terraform/sim-tf-plan-resources.d.ts +18 -0
- package/dist/terraform/sim-tf-plan-resources.d.ts.map +1 -0
- package/dist/terraform/sim-tf-plan-resources.js +52 -0
- package/dist/terraform/sim-tf-plan-resources.js.map +1 -0
- package/dist/terraform/sim-tf-plan-sections.d.ts +31 -0
- package/dist/terraform/sim-tf-plan-sections.d.ts.map +1 -0
- package/dist/terraform/sim-tf-plan-sections.js +60 -0
- package/dist/terraform/sim-tf-plan-sections.js.map +1 -0
- package/dist/terraform/sim-tf-plan.type.d.ts +98 -0
- package/dist/terraform/sim-tf-plan.type.d.ts.map +1 -0
- package/dist/terraform/sim-tf-plan.type.js +2 -0
- package/dist/terraform/sim-tf-plan.type.js.map +1 -0
- package/dist/terraform/sim-tf-reference-address.d.ts +52 -0
- package/dist/terraform/sim-tf-reference-address.d.ts.map +1 -0
- package/dist/terraform/sim-tf-reference-address.js +102 -0
- package/dist/terraform/sim-tf-reference-address.js.map +1 -0
- package/dist/terraform/sim-tf-reference.d.ts +82 -0
- package/dist/terraform/sim-tf-reference.d.ts.map +1 -0
- package/dist/terraform/sim-tf-reference.js +153 -0
- package/dist/terraform/sim-tf-reference.js.map +1 -0
- package/dist/terraform/sim-tf-referenced.d.ts +18 -0
- package/dist/terraform/sim-tf-referenced.d.ts.map +1 -0
- package/dist/terraform/sim-tf-referenced.js +40 -0
- package/dist/terraform/sim-tf-referenced.js.map +1 -0
- package/dist/terraform/sim-tf-refusal.d.ts +23 -0
- package/dist/terraform/sim-tf-refusal.d.ts.map +1 -0
- package/dist/terraform/sim-tf-refusal.js +44 -0
- package/dist/terraform/sim-tf-refusal.js.map +1 -0
- package/dist/terraform/sim-tf-registry.d.ts +15 -0
- package/dist/terraform/sim-tf-registry.d.ts.map +1 -0
- package/dist/terraform/sim-tf-registry.js +67 -0
- package/dist/terraform/sim-tf-registry.js.map +1 -0
- package/dist/terraform/sim-tf-report.d.ts +21 -0
- package/dist/terraform/sim-tf-report.d.ts.map +1 -0
- package/dist/terraform/sim-tf-report.js +57 -0
- package/dist/terraform/sim-tf-report.js.map +1 -0
- package/dist/terraform/sim-tf-report.type.d.ts +37 -0
- package/dist/terraform/sim-tf-report.type.d.ts.map +1 -0
- package/dist/terraform/sim-tf-report.type.js +2 -0
- package/dist/terraform/sim-tf-report.type.js.map +1 -0
- package/dist/terraform/sim-tf-resource.type.d.ts +33 -0
- package/dist/terraform/sim-tf-resource.type.d.ts.map +1 -0
- package/dist/terraform/sim-tf-resource.type.js +3 -0
- package/dist/terraform/sim-tf-resource.type.js.map +1 -0
- package/dist/terraform/sim-tf-settle.d.ts +36 -0
- package/dist/terraform/sim-tf-settle.d.ts.map +1 -0
- package/dist/terraform/sim-tf-settle.js +63 -0
- package/dist/terraform/sim-tf-settle.js.map +1 -0
- package/dist/util/filesystem/test-terraform-project.d.ts +67 -0
- package/dist/util/filesystem/test-terraform-project.d.ts.map +1 -0
- package/dist/util/filesystem/test-terraform-project.js +112 -0
- package/dist/util/filesystem/test-terraform-project.js.map +1 -0
- package/package.json +7 -2
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-dkim-tokens.d.ts.map +0 -1
- package/dist/service/cloudformation/resource/cfn/ses/sim-ses-dkim-tokens.js.map +0 -1
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.d.ts +0 -17
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.d.ts.map +0 -1
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.js +0 -48
- package/dist/service/ses/cfn/identity/sim-cfn-ses-identity-unsimulated-properties.js.map +0 -1
- package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.d.ts +0 -12
- package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.d.ts.map +0 -1
- package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.js +0 -26
- package/dist/service/ses/command/identity/sim-ses-unsimulated-identity-input.js.map +0 -1
- /package/dist/service/{cloudformation/resource/cfn/ses → ses/identity}/sim-ses-dkim-tokens.d.ts +0 -0
- /package/dist/service/{cloudformation/resource/cfn/ses → ses/identity}/sim-ses-dkim-tokens.js +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Reading a plan means reading records whose keys come from the document
|
|
3
|
+
* rather than from this code, so the object-injection rule fires on every
|
|
4
|
+
* lookup. The records are parsed JSON with no prototype of their own.
|
|
5
|
+
*/
|
|
6
|
+
// oxlint-disable security/detect-object-injection
|
|
7
|
+
import { isRecord } from "../util/type-guard/record.js";
|
|
8
|
+
import { longestFirst } from "./sim-tf-reference-address.js";
|
|
9
|
+
/**
|
|
10
|
+
* The value of one Terraform attribute, as CloudFormation would carry it.
|
|
11
|
+
*
|
|
12
|
+
* An attribute the plan resolved returns its value. An attribute still unknown
|
|
13
|
+
* returns the intrinsic that reads it off the Resource producing it, taken from
|
|
14
|
+
* the reference the configuration records for that attribute. An attribute with
|
|
15
|
+
* neither returns undefined.
|
|
16
|
+
*/
|
|
17
|
+
export function attribute(context, key) {
|
|
18
|
+
const { resource, resolver } = context;
|
|
19
|
+
if (resource.unknown[key] === true) {
|
|
20
|
+
return referencedValue(resource, key, resolver);
|
|
21
|
+
}
|
|
22
|
+
return templateValue(resource.values[key]);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The intrinsic one unknown attribute reads, from the references its
|
|
26
|
+
* expression records.
|
|
27
|
+
*
|
|
28
|
+
* Terraform lists the attribute form and the bare resource form of the same
|
|
29
|
+
* reference. The attribute form resolves to a `Fn::GetAtt` and is the one
|
|
30
|
+
* wanted, so the first reference that resolves at all wins, and the list is
|
|
31
|
+
* ordered longest first to reach it.
|
|
32
|
+
*/
|
|
33
|
+
function referencedValue(resource, key, resolver) {
|
|
34
|
+
const expression = resource.expressions[key];
|
|
35
|
+
if (!isRecord(expression)) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const references = longestFirst(expression.references ?? []);
|
|
39
|
+
for (const reference of references) {
|
|
40
|
+
const resolved = resolver.resolve(reference, resource.modulePath);
|
|
41
|
+
if (resolved !== undefined) {
|
|
42
|
+
return resolved;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A Terraform nested block, which the plan represents as a list of records even
|
|
49
|
+
* where the schema allows only one.
|
|
50
|
+
*/
|
|
51
|
+
export function block(context, key) {
|
|
52
|
+
const value = context.resource.values[key];
|
|
53
|
+
if (isRecord(value)) {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
if (Array.isArray(value) && isRecord(value[0])) {
|
|
57
|
+
return value[0];
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
/** Every entry of a Terraform nested block that repeats. */
|
|
62
|
+
export function blocks(context, key) {
|
|
63
|
+
const value = context.resource.values[key];
|
|
64
|
+
return Array.isArray(value) ? value.filter((entry) => isRecord(entry)) : [];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A CloudFormation `Tags` list built from a Terraform `tags` map.
|
|
68
|
+
*
|
|
69
|
+
* The provider also carries `tags_all`, which is `tags` merged with the
|
|
70
|
+
* provider's default tags. `tags_all` is the one that ends up on the resource.
|
|
71
|
+
*/
|
|
72
|
+
export function tags(context) {
|
|
73
|
+
const value = field(context.resource.values, "tags_all") ??
|
|
74
|
+
field(context.resource.values, "tags");
|
|
75
|
+
if (!isRecord(value)) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const entries = Object.entries(value);
|
|
79
|
+
return entries.length === 0
|
|
80
|
+
? undefined
|
|
81
|
+
: entries.map(([Key, Value]) => ({ Key, Value: Value }));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* One key of a Terraform attribute record.
|
|
85
|
+
*
|
|
86
|
+
* Provider attribute names are snake case, which this project's TypeScript
|
|
87
|
+
* settings will not let through a dotted access on an index signature.
|
|
88
|
+
*/
|
|
89
|
+
export function field(record, key) {
|
|
90
|
+
return record[key];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* A Terraform value, carried as the template value CloudFormation reads.
|
|
94
|
+
*
|
|
95
|
+
* Only an absent value comes back undefined. `false`, `0` and `""` are values
|
|
96
|
+
* a resource was configured with, and a truthiness test here would drop
|
|
97
|
+
* `block_public_acls = false` as though it had never been written.
|
|
98
|
+
*/
|
|
99
|
+
export function templateValue(value) {
|
|
100
|
+
if (value === null || value === undefined) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* CloudFormation properties read straight off Terraform attributes.
|
|
107
|
+
*
|
|
108
|
+
* The table is keyed by CloudFormation property name and holds the Terraform
|
|
109
|
+
* attribute each one is read from. Most of a mapping is this, because most
|
|
110
|
+
* properties differ only in what they are called, and the ones that need more
|
|
111
|
+
* than a rename are added to what this returns.
|
|
112
|
+
*/
|
|
113
|
+
export function renamed(context, names) {
|
|
114
|
+
const entries = Object.entries(names).map(([property, name]) => [property, attribute(context, name)]);
|
|
115
|
+
return properties(Object.fromEntries(entries));
|
|
116
|
+
}
|
|
117
|
+
/** A property record with the keys carrying no value taken back out of it. */
|
|
118
|
+
export function properties(record) {
|
|
119
|
+
return Object.fromEntries(Object.entries(record).filter((entry) => entry[1] !== undefined));
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=sim-tf-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-attributes.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { SimCfnTemplateValueRecord } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { TerraformResource } from "./sim-tf-resource.type.js";
|
|
3
|
+
import type { TerraformReferenceResolver } from "./sim-tf-reference.js";
|
|
4
|
+
import type { TerraformSettledPlan } from "./sim-tf-settle.js";
|
|
5
|
+
import type { TerraformImportedResource, TerraformLostAttribute } from "./sim-tf-report.type.js";
|
|
6
|
+
/** The Resources a settled plan declares, and what they could not carry. */
|
|
7
|
+
export interface TerraformDeclaredResources {
|
|
8
|
+
readonly templates: ReadonlyMap<string, SimCfnTemplateValueRecord>;
|
|
9
|
+
readonly mapped: readonly TerraformImportedResource[];
|
|
10
|
+
readonly lost: readonly TerraformLostAttribute[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Build one CloudFormation Resource for each resource the plan settled on.
|
|
14
|
+
*
|
|
15
|
+
* Every reference resolves against that same settled set, so this runs once
|
|
16
|
+
* and nothing it produces is taken back afterwards.
|
|
17
|
+
*/
|
|
18
|
+
export declare function terraformDeclaredResources(settled: TerraformSettledPlan): TerraformDeclaredResources;
|
|
19
|
+
/**
|
|
20
|
+
* The Resources one Resource has to be created after.
|
|
21
|
+
*
|
|
22
|
+
* A CloudFormation template orders itself, because a property that needs
|
|
23
|
+
* another Resource holds a `Ref` or an `Fn::GetAtt` naming it. A plan holds no
|
|
24
|
+
* such thing. Terraform resolves what it can before writing the plan, so a
|
|
25
|
+
* Lambda permission naming a function it creates in the same plan carries the
|
|
26
|
+
* function's name as a plain string, and the edge that ordering depends on is
|
|
27
|
+
* gone from the value.
|
|
28
|
+
*
|
|
29
|
+
* The edge survives in `configuration`, which records every reference the
|
|
30
|
+
* resource declares whether or not the value was resolved. Turning those back
|
|
31
|
+
* into `DependsOn` gives the Stack the graph it would have read off a template
|
|
32
|
+
* written by hand.
|
|
33
|
+
*/
|
|
34
|
+
export declare function terraformDependsOn(resource: TerraformResource, resolver: TerraformReferenceResolver): {
|
|
35
|
+
DependsOn?: string[];
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=sim-tf-declare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-declare.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-declare.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oEAAoE,CAAC;AACpH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,GAC5B,0BAA0B,CAiC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,0BAA0B,GACnC;IAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAe1B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Reading a plan means reading records whose keys come from the document
|
|
3
|
+
* rather than from this code, so the object-injection rule fires on every
|
|
4
|
+
* lookup. The records are parsed JSON with no prototype of their own.
|
|
5
|
+
*/
|
|
6
|
+
// oxlint-disable security/detect-object-injection
|
|
7
|
+
import { isRecord } from "../util/type-guard/record.js";
|
|
8
|
+
/**
|
|
9
|
+
* Build one CloudFormation Resource for each resource the plan settled on.
|
|
10
|
+
*
|
|
11
|
+
* Every reference resolves against that same settled set, so this runs once
|
|
12
|
+
* and nothing it produces is taken back afterwards.
|
|
13
|
+
*/
|
|
14
|
+
export function terraformDeclaredResources(settled) {
|
|
15
|
+
const templates = new Map();
|
|
16
|
+
const mapped = [];
|
|
17
|
+
const lost = [];
|
|
18
|
+
for (const { resource, mapping } of settled.declared) {
|
|
19
|
+
const built = mapping({
|
|
20
|
+
resource,
|
|
21
|
+
resolver: settled.resolver,
|
|
22
|
+
overrides: settled.overrides,
|
|
23
|
+
});
|
|
24
|
+
const logicalId = settled.resolver.logicalId(resource.address);
|
|
25
|
+
templates.set(logicalId, {
|
|
26
|
+
Type: built.Type,
|
|
27
|
+
Properties: built.Properties,
|
|
28
|
+
...terraformDependsOn(resource, settled.resolver),
|
|
29
|
+
});
|
|
30
|
+
mapped.push({
|
|
31
|
+
address: resource.address,
|
|
32
|
+
type: resource.type,
|
|
33
|
+
cfnType: built.Type,
|
|
34
|
+
logicalId,
|
|
35
|
+
});
|
|
36
|
+
lost.push(...(built.lost ?? []).map((attribute) => ({
|
|
37
|
+
address: resource.address,
|
|
38
|
+
attribute,
|
|
39
|
+
})));
|
|
40
|
+
}
|
|
41
|
+
return { templates, mapped, lost };
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The Resources one Resource has to be created after.
|
|
45
|
+
*
|
|
46
|
+
* A CloudFormation template orders itself, because a property that needs
|
|
47
|
+
* another Resource holds a `Ref` or an `Fn::GetAtt` naming it. A plan holds no
|
|
48
|
+
* such thing. Terraform resolves what it can before writing the plan, so a
|
|
49
|
+
* Lambda permission naming a function it creates in the same plan carries the
|
|
50
|
+
* function's name as a plain string, and the edge that ordering depends on is
|
|
51
|
+
* gone from the value.
|
|
52
|
+
*
|
|
53
|
+
* The edge survives in `configuration`, which records every reference the
|
|
54
|
+
* resource declares whether or not the value was resolved. Turning those back
|
|
55
|
+
* into `DependsOn` gives the Stack the graph it would have read off a template
|
|
56
|
+
* written by hand.
|
|
57
|
+
*/
|
|
58
|
+
export function terraformDependsOn(resource, resolver) {
|
|
59
|
+
const own = resolver.logicalId(resource.address);
|
|
60
|
+
const referenced = [
|
|
61
|
+
...resource.dependsOn,
|
|
62
|
+
...expressionReferences(resource.expressions),
|
|
63
|
+
]
|
|
64
|
+
.map((reference) => resolver.targetAddress(reference, resource.modulePath))
|
|
65
|
+
.filter((address) => address !== undefined)
|
|
66
|
+
.map((address) => resolver.logicalId(address))
|
|
67
|
+
.filter((logicalId) => logicalId !== own);
|
|
68
|
+
const declared = [...new Set(referenced)];
|
|
69
|
+
return declared.length === 0 ? {} : { DependsOn: declared };
|
|
70
|
+
}
|
|
71
|
+
/** Every `references` entry anywhere inside a resource's expressions. */
|
|
72
|
+
function expressionReferences(value) {
|
|
73
|
+
if (Array.isArray(value)) {
|
|
74
|
+
return value.flatMap((entry) => expressionReferences(entry));
|
|
75
|
+
}
|
|
76
|
+
if (!isRecord(value)) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return Object.entries(value).flatMap(([key, nested]) => key === "references" && Array.isArray(nested)
|
|
80
|
+
? nested.filter((entry) => typeof entry === "string")
|
|
81
|
+
: expressionReferences(nested));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=sim-tf-declare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-declare.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-declare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimCfnTemplateValueRecord } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
|
|
2
|
+
import { type TerraformResource } from "./sim-tf-resource.type.js";
|
|
3
|
+
import type { TerraformReferenceResolver } from "./sim-tf-reference.js";
|
|
4
|
+
import type { TerraformPlanOverrides } from "./sim-tf-overrides.js";
|
|
5
|
+
import type { TerraformImportedResource, TerraformLostAttribute, TerraformSkippedResource } from "./sim-tf-report.type.js";
|
|
6
|
+
/** The template with every folding resource merged into what it configures. */
|
|
7
|
+
export interface TerraformFoldedResources {
|
|
8
|
+
readonly templates: ReadonlyMap<string, SimCfnTemplateValueRecord>;
|
|
9
|
+
readonly folded: readonly TerraformImportedResource[];
|
|
10
|
+
readonly skipped: readonly TerraformSkippedResource[];
|
|
11
|
+
readonly lost: readonly TerraformLostAttribute[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Merge every folding resource into the Resource it configures.
|
|
15
|
+
*
|
|
16
|
+
* The AWS provider splits one CloudFormation Resource across several Terraform
|
|
17
|
+
* resources. Six `aws_s3_bucket_*` resources configure one bucket, and
|
|
18
|
+
* CloudFormation carries all six as properties of one `AWS::S3::Bucket`.
|
|
19
|
+
*
|
|
20
|
+
* This runs after the Resources are declared, because a fold has nothing to
|
|
21
|
+
* merge into until its parent is in the template. A fold whose parent is not
|
|
22
|
+
* there is recorded rather than dropped, so the report still adds up to the
|
|
23
|
+
* plan.
|
|
24
|
+
*/
|
|
25
|
+
export declare function terraformFoldedResources(resources: readonly TerraformResource[], templates: ReadonlyMap<string, SimCfnTemplateValueRecord>, resolver: TerraformReferenceResolver, overrides: TerraformPlanOverrides): TerraformFoldedResources;
|
|
26
|
+
//# sourceMappingURL=sim-tf-fold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-fold.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-fold.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oEAAoE,CAAC;AACpH,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAClD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,iBAAiB,EAAE,EACvC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACzD,QAAQ,EAAE,0BAA0B,EACpC,SAAS,EAAE,sBAAsB,GAChC,wBAAwB,CA8C1B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Reading a plan means reading records whose keys come from the document
|
|
3
|
+
* rather than from this code, so the object-injection rule fires on every
|
|
4
|
+
* lookup. The records are parsed JSON with no prototype of their own.
|
|
5
|
+
*/
|
|
6
|
+
// oxlint-disable security/detect-object-injection
|
|
7
|
+
import { isRecord } from "../util/type-guard/record.js";
|
|
8
|
+
import { terraformAwsProvider, } from "./sim-tf-resource.type.js";
|
|
9
|
+
import { terraformReferencedAddress } from "./sim-tf-referenced.js";
|
|
10
|
+
import { terraformResourceFolds } from "./sim-tf-registry.js";
|
|
11
|
+
/**
|
|
12
|
+
* Merge every folding resource into the Resource it configures.
|
|
13
|
+
*
|
|
14
|
+
* The AWS provider splits one CloudFormation Resource across several Terraform
|
|
15
|
+
* resources. Six `aws_s3_bucket_*` resources configure one bucket, and
|
|
16
|
+
* CloudFormation carries all six as properties of one `AWS::S3::Bucket`.
|
|
17
|
+
*
|
|
18
|
+
* This runs after the Resources are declared, because a fold has nothing to
|
|
19
|
+
* merge into until its parent is in the template. A fold whose parent is not
|
|
20
|
+
* there is recorded rather than dropped, so the report still adds up to the
|
|
21
|
+
* plan.
|
|
22
|
+
*/
|
|
23
|
+
export function terraformFoldedResources(resources, templates, resolver, overrides) {
|
|
24
|
+
const merged = new Map(templates);
|
|
25
|
+
const folded = [];
|
|
26
|
+
const skipped = [];
|
|
27
|
+
const lost = [];
|
|
28
|
+
for (const resource of resources) {
|
|
29
|
+
const fold = terraformResourceFolds.get(resource.type);
|
|
30
|
+
if (fold === undefined || resource.provider !== terraformAwsProvider) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const address = terraformReferencedAddress(resource, fold.parentAttribute, resolver);
|
|
34
|
+
const parentId = address === undefined ? undefined : resolver.logicalId(address);
|
|
35
|
+
const parent = parentId === undefined ? undefined : merged.get(parentId);
|
|
36
|
+
if (parentId === undefined || parent === undefined) {
|
|
37
|
+
skipped.push({
|
|
38
|
+
address: resource.address,
|
|
39
|
+
type: resource.type,
|
|
40
|
+
reason: "fold target not found",
|
|
41
|
+
});
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const context = { resource, resolver, overrides };
|
|
45
|
+
const existing = parent["Properties"];
|
|
46
|
+
const added = fold.properties(context, isRecord(existing) ? existing : {});
|
|
47
|
+
merged.set(parentId, mergedParent(parent, added));
|
|
48
|
+
folded.push({ address: resource.address, type: resource.type });
|
|
49
|
+
lost.push(...(fold.lost?.(context) ?? []).map((attribute) => ({
|
|
50
|
+
address: resource.address,
|
|
51
|
+
attribute,
|
|
52
|
+
})));
|
|
53
|
+
}
|
|
54
|
+
return { templates: merged, folded, skipped, lost };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A resource template with a fold's properties merged into it.
|
|
58
|
+
*
|
|
59
|
+
* The fold contributes whole CloudFormation properties, so a later fold on the
|
|
60
|
+
* same parent replaces a property an earlier one set rather than merging into
|
|
61
|
+
* it. Two folds writing the same property are two of one Terraform type, and a
|
|
62
|
+
* fold whose property is a list is handed what the parent already carries so
|
|
63
|
+
* it can add to it.
|
|
64
|
+
*/
|
|
65
|
+
function mergedParent(parent, added) {
|
|
66
|
+
const existing = parent["Properties"];
|
|
67
|
+
return {
|
|
68
|
+
...parent,
|
|
69
|
+
Properties: { ...(isRecord(existing) && existing), ...added },
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=sim-tf-fold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-fold.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-fold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CfnTemplateBodyRecord } from "../service/cloudformation/template/sim-cfn-template.js";
|
|
2
|
+
import type { TerraformPlan } from "./sim-tf-plan.type.js";
|
|
3
|
+
import type { TerraformPlanOverride } from "./sim-tf-override.type.js";
|
|
4
|
+
import type { TerraformImportReport } from "./sim-tf-report.type.js";
|
|
5
|
+
/** A CloudFormation template built from a plan, and what building it did. */
|
|
6
|
+
export interface TerraformImportResult {
|
|
7
|
+
readonly template: CfnTemplateBodyRecord;
|
|
8
|
+
readonly report: TerraformImportReport;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A CloudFormation template body built from a Terraform plan.
|
|
12
|
+
*
|
|
13
|
+
* The plan is the JSON `terraform show -json` writes for a saved plan file.
|
|
14
|
+
* What comes back is the body `deployTemplate` takes, so everything below the
|
|
15
|
+
* template is the machinery a CloudFormation, CDK or SAM deployment already
|
|
16
|
+
* goes through.
|
|
17
|
+
*
|
|
18
|
+
* It is read in three passes. Settling decides which resources the template
|
|
19
|
+
* will declare, and it is what makes the two after it single passes. Every
|
|
20
|
+
* reference then resolves against a set that has stopped changing, so no
|
|
21
|
+
* Resource is built and then taken back, and no property is left naming a
|
|
22
|
+
* logical ID the template does not hold. Declaring builds those Resources.
|
|
23
|
+
* Folding merges in the resources that configure another resource.
|
|
24
|
+
*
|
|
25
|
+
* The report alongside the template says what happened to every resource of
|
|
26
|
+
* the plan. A type with no mapping is skipped and named, in the same spirit as
|
|
27
|
+
* the skipped Resources a Stack records for a CloudFormation type no simulated
|
|
28
|
+
* service models.
|
|
29
|
+
*/
|
|
30
|
+
export declare function cfnTemplateFromTerraformPlan(plan: TerraformPlan, supplied?: readonly TerraformPlanOverride[]): TerraformImportResult;
|
|
31
|
+
//# sourceMappingURL=sim-tf-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-import.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,aAAa,EACnB,QAAQ,GAAE,SAAS,qBAAqB,EAAO,GAC9C,qBAAqB,CAgBvB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { terraformPlanResources } from "./sim-tf-plan-resources.js";
|
|
2
|
+
import { settledTerraformPlan } from "./sim-tf-settle.js";
|
|
3
|
+
import { terraformDeclaredResources } from "./sim-tf-declare.js";
|
|
4
|
+
import { terraformFoldedResources } from "./sim-tf-fold.js";
|
|
5
|
+
import { terraformImportReport } from "./sim-tf-report.js";
|
|
6
|
+
import { TerraformPlanOverrides } from "./sim-tf-overrides.js";
|
|
7
|
+
/**
|
|
8
|
+
* A CloudFormation template body built from a Terraform plan.
|
|
9
|
+
*
|
|
10
|
+
* The plan is the JSON `terraform show -json` writes for a saved plan file.
|
|
11
|
+
* What comes back is the body `deployTemplate` takes, so everything below the
|
|
12
|
+
* template is the machinery a CloudFormation, CDK or SAM deployment already
|
|
13
|
+
* goes through.
|
|
14
|
+
*
|
|
15
|
+
* It is read in three passes. Settling decides which resources the template
|
|
16
|
+
* will declare, and it is what makes the two after it single passes. Every
|
|
17
|
+
* reference then resolves against a set that has stopped changing, so no
|
|
18
|
+
* Resource is built and then taken back, and no property is left naming a
|
|
19
|
+
* logical ID the template does not hold. Declaring builds those Resources.
|
|
20
|
+
* Folding merges in the resources that configure another resource.
|
|
21
|
+
*
|
|
22
|
+
* The report alongside the template says what happened to every resource of
|
|
23
|
+
* the plan. A type with no mapping is skipped and named, in the same spirit as
|
|
24
|
+
* the skipped Resources a Stack records for a CloudFormation type no simulated
|
|
25
|
+
* service models.
|
|
26
|
+
*/
|
|
27
|
+
export function cfnTemplateFromTerraformPlan(plan, supplied = []) {
|
|
28
|
+
const overrides = new TerraformPlanOverrides(supplied);
|
|
29
|
+
const resources = terraformPlanResources(plan);
|
|
30
|
+
const settled = settledTerraformPlan(plan, resources, overrides);
|
|
31
|
+
const declared = terraformDeclaredResources(settled);
|
|
32
|
+
const folded = terraformFoldedResources(resources, declared.templates, settled.resolver, overrides);
|
|
33
|
+
return {
|
|
34
|
+
template: { Resources: Object.fromEntries(folded.templates) },
|
|
35
|
+
report: terraformImportReport({ resources, settled, declared, folded }),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=sim-tf-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-import.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-import.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAU/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAmB,EACnB,QAAQ,GAAqC,EAAE;IAE/C,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,wBAAwB,CACrC,SAAS,EACT,QAAQ,CAAC,SAAS,EAClB,OAAO,CAAC,QAAQ,EAChB,SAAS,CACV,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC7D,MAAM,EAAE,qBAAqB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CloudFormation logical IDs standing for the addresses of one plan.
|
|
3
|
+
*
|
|
4
|
+
* A logical ID is alphanumeric, so the module path, the resource type, the
|
|
5
|
+
* name and any `count` or `for_each` key are folded into one camel-run.
|
|
6
|
+
* Folding loses the separators, and two addresses can therefore arrive at the
|
|
7
|
+
* same run. `aws_s3_bucket.foo_bar` and `aws_s3_bucket.fooBar` both give
|
|
8
|
+
* `AwsS3BucketFooBar`, and so do the `for_each` keys `a-b` and `a_b`.
|
|
9
|
+
*
|
|
10
|
+
* The addresses of a plan are named together rather than one at a time, so a
|
|
11
|
+
* collision can be given a number instead of refusing the plan. Addresses are
|
|
12
|
+
* sorted before they are named, so which of a colliding pair keeps the plain
|
|
13
|
+
* ID is decided by the plan rather than by the order the resources were read
|
|
14
|
+
* in.
|
|
15
|
+
*/
|
|
16
|
+
export declare class TerraformLogicalIds {
|
|
17
|
+
private readonly byAddress;
|
|
18
|
+
constructor(addresses: Iterable<string>);
|
|
19
|
+
/**
|
|
20
|
+
* The logical ID standing for one address.
|
|
21
|
+
*
|
|
22
|
+
* An address this was not built with is named as though it stood alone,
|
|
23
|
+
* which is what a caller asking about a resource outside the template wants.
|
|
24
|
+
*/
|
|
25
|
+
of(address: string): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sim-tf-logical-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-logical-id.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-logical-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD,YAAY,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAEtC;IAED;;;;;OAKG;IACI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjC;CACF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CloudFormation logical IDs standing for the addresses of one plan.
|
|
3
|
+
*
|
|
4
|
+
* A logical ID is alphanumeric, so the module path, the resource type, the
|
|
5
|
+
* name and any `count` or `for_each` key are folded into one camel-run.
|
|
6
|
+
* Folding loses the separators, and two addresses can therefore arrive at the
|
|
7
|
+
* same run. `aws_s3_bucket.foo_bar` and `aws_s3_bucket.fooBar` both give
|
|
8
|
+
* `AwsS3BucketFooBar`, and so do the `for_each` keys `a-b` and `a_b`.
|
|
9
|
+
*
|
|
10
|
+
* The addresses of a plan are named together rather than one at a time, so a
|
|
11
|
+
* collision can be given a number instead of refusing the plan. Addresses are
|
|
12
|
+
* sorted before they are named, so which of a colliding pair keeps the plain
|
|
13
|
+
* ID is decided by the plan rather than by the order the resources were read
|
|
14
|
+
* in.
|
|
15
|
+
*/
|
|
16
|
+
export class TerraformLogicalIds {
|
|
17
|
+
byAddress;
|
|
18
|
+
constructor(addresses) {
|
|
19
|
+
this.byAddress = namedAddresses([...addresses].toSorted(byCodeUnit));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The logical ID standing for one address.
|
|
23
|
+
*
|
|
24
|
+
* An address this was not built with is named as though it stood alone,
|
|
25
|
+
* which is what a caller asking about a resource outside the template wants.
|
|
26
|
+
*/
|
|
27
|
+
of(address) {
|
|
28
|
+
return this.byAddress.get(address) ?? camelRun(address);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Address order by code unit, over addresses that are already distinct.
|
|
33
|
+
*
|
|
34
|
+
* Which of a colliding pair keeps the plain logical ID follows from this, so
|
|
35
|
+
* it has to be the same everywhere. `localeCompare` orders by the collation
|
|
36
|
+
* rules of whatever locale the process is running under, and a template whose
|
|
37
|
+
* logical IDs move with the machine is one a test cannot name a Resource in.
|
|
38
|
+
*/
|
|
39
|
+
function byCodeUnit(a, b) {
|
|
40
|
+
return a < b ? -1 : 1;
|
|
41
|
+
}
|
|
42
|
+
function namedAddresses(addresses) {
|
|
43
|
+
const groups = new Map();
|
|
44
|
+
for (const address of addresses) {
|
|
45
|
+
const base = camelRun(address);
|
|
46
|
+
groups.set(base, [...(groups.get(base) ?? []), address]);
|
|
47
|
+
}
|
|
48
|
+
const taken = new Set(groups.keys());
|
|
49
|
+
const named = new Map();
|
|
50
|
+
for (const [base, group] of groups) {
|
|
51
|
+
for (const [position, address] of group.entries()) {
|
|
52
|
+
named.set(address, position === 0 ? base : numbered(base, taken));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return named;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The next free numbered form of a logical ID.
|
|
59
|
+
*
|
|
60
|
+
* Numbering starts at two, so the first of a colliding group keeps the name
|
|
61
|
+
* the address gives and the second reads as the second of that name. The
|
|
62
|
+
* search steps past a number already taken, since a numbered ID can collide
|
|
63
|
+
* with one an address arrived at on its own.
|
|
64
|
+
*/
|
|
65
|
+
function numbered(base, taken) {
|
|
66
|
+
for (let suffix = 2;; suffix += 1) {
|
|
67
|
+
const candidate = `${base}${suffix}`;
|
|
68
|
+
if (!taken.has(candidate)) {
|
|
69
|
+
taken.add(candidate);
|
|
70
|
+
return candidate;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** One address as a single alphanumeric camel-run. */
|
|
75
|
+
function camelRun(address) {
|
|
76
|
+
const alphanumeric = address
|
|
77
|
+
.split(/[^A-Za-z0-9]+/)
|
|
78
|
+
.filter((part) => part.length > 0)
|
|
79
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
80
|
+
.join("");
|
|
81
|
+
return alphanumeric.length > 0 ? alphanumeric : "Resource";
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=sim-tf-logical-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-logical-id.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-logical-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mBAAmB;IACb,SAAS,CAA8B;IAExD,YAAY,SAA2B;QACrC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,SAA4B;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAkB;IAChD,KAAK,IAAI,MAAM,GAAG,CAAC,GAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;QAErC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAErB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,QAAQ,CAAC,OAAe;IAC/B,MAAM,YAAY,GAAG,OAAO;SACzB,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { SimCfnTemplateValue } from "../service/cloudformation/template/value/sim-cfn-template-value.js";
|
|
2
|
+
import type { TerraformMappingContext } from "./sim-tf-attributes.js";
|
|
3
|
+
import type { TerraformResource } from "./sim-tf-resource.type.js";
|
|
4
|
+
import type { TerraformSkipReason } from "./sim-tf-report.type.js";
|
|
5
|
+
/**
|
|
6
|
+
* One CloudFormation Resource built from one Terraform resource.
|
|
7
|
+
*
|
|
8
|
+
* `lost` names the Terraform attributes the mapping could not carry across.
|
|
9
|
+
* A mapping records them rather than dropping them quietly, because an
|
|
10
|
+
* attribute that goes missing without a word is the kind of gap that only turns
|
|
11
|
+
* up later as a test passing for the wrong reason.
|
|
12
|
+
*/
|
|
13
|
+
export interface TerraformMappedResource {
|
|
14
|
+
readonly Type: string;
|
|
15
|
+
readonly Properties: Record<string, SimCfnTemplateValue>;
|
|
16
|
+
readonly lost?: readonly string[];
|
|
17
|
+
/**
|
|
18
|
+
* Properties the simulated service will refuse the Resource without.
|
|
19
|
+
*
|
|
20
|
+
* A plan can leave a required value unresolvable, and a Resource built
|
|
21
|
+
* without it fails and takes the Stack's other Resources with it. Naming the
|
|
22
|
+
* properties here lets the import drop that one Resource and record it,
|
|
23
|
+
* which is what sim CloudFormation already does with a Resource type it
|
|
24
|
+
* cannot create.
|
|
25
|
+
*/
|
|
26
|
+
readonly requires?: readonly string[];
|
|
27
|
+
/**
|
|
28
|
+
* Why this Resource is one the simulated service would refuse whatever the
|
|
29
|
+
* plan resolved.
|
|
30
|
+
*
|
|
31
|
+
* `requires` covers a property the service needs and the plan could not
|
|
32
|
+
* fill. This covers the other shape, where every property is there and one
|
|
33
|
+
* of them holds a value the target refuses. Terraform's `SecureString`
|
|
34
|
+
* parameter is the example. Real CloudFormation refuses that type on an
|
|
35
|
+
* `AWS::SSM::Parameter` because the plaintext would sit in the template, and
|
|
36
|
+
* so does the simulation, so a Resource built for one fails the Stack around
|
|
37
|
+
* it rather than only itself.
|
|
38
|
+
*/
|
|
39
|
+
readonly refused?: TerraformSkipReason | undefined;
|
|
40
|
+
}
|
|
41
|
+
export type TerraformResourceMapping = (context: TerraformMappingContext) => TerraformMappedResource;
|
|
42
|
+
/** One resource of a plan, with the mapping that will build its Resource. */
|
|
43
|
+
export interface TerraformDeclaration {
|
|
44
|
+
readonly resource: TerraformResource;
|
|
45
|
+
readonly mapping: TerraformResourceMapping;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* How one Terraform resource contributes to another resource's properties.
|
|
49
|
+
*
|
|
50
|
+
* The AWS provider splits a single CloudFormation Resource across several
|
|
51
|
+
* Terraform resources. Six `aws_s3_bucket_*` resources configure one bucket,
|
|
52
|
+
* and CloudFormation carries all six as properties of one `AWS::S3::Bucket`.
|
|
53
|
+
* A fold names the attribute holding the parent's address, and returns the
|
|
54
|
+
* properties to merge into the parent.
|
|
55
|
+
*
|
|
56
|
+
* The properties the parent already carries are given along with the resource,
|
|
57
|
+
* for the fold that adds to a list rather than setting a property outright. An
|
|
58
|
+
* EventBridge rule's targets are one Terraform resource each and one `Targets`
|
|
59
|
+
* list on the Resource, so the second target of a rule has to find the first.
|
|
60
|
+
* A fold writing a property of its own ignores them.
|
|
61
|
+
*/
|
|
62
|
+
export interface TerraformResourceFold {
|
|
63
|
+
/** The attribute naming the resource these properties belong to. */
|
|
64
|
+
readonly parentAttribute: string;
|
|
65
|
+
readonly properties: (context: TerraformMappingContext, parent?: Record<string, SimCfnTemplateValue>) => Record<string, SimCfnTemplateValue>;
|
|
66
|
+
/**
|
|
67
|
+
* The Terraform attributes this fold could not carry across, as a mapping's
|
|
68
|
+
* own `lost` names them. A fold that carries everything it was given
|
|
69
|
+
* declares none.
|
|
70
|
+
*/
|
|
71
|
+
readonly lost?: (context: TerraformMappingContext) => readonly string[];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=sim-tf-mapping.type.d.ts.map
|