@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,44 @@
|
|
|
1
|
+
import { terraformResourceMappings } from "./sim-tf-registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* Why the Resource a mapping builds is one the service would not accept.
|
|
4
|
+
*
|
|
5
|
+
* A plan can leave a value the service requires unresolvable, and a Resource
|
|
6
|
+
* built without it fails and takes the Stack's other Resources with it. The
|
|
7
|
+
* mapping names those properties under `requires`, and names under `refused`
|
|
8
|
+
* the case where every property is there and the service will not take one of
|
|
9
|
+
* the values. Either way the resource is left out of the template rather than
|
|
10
|
+
* deployed into a failure.
|
|
11
|
+
*/
|
|
12
|
+
export function terraformRefusal(declaration, build, unresolved) {
|
|
13
|
+
const built = builtResource(declaration, build);
|
|
14
|
+
if (built.refused !== undefined) {
|
|
15
|
+
return built.refused;
|
|
16
|
+
}
|
|
17
|
+
return missing(built).length === 0 ? undefined : unresolved;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The properties a mapping declares as required and could not fill.
|
|
21
|
+
*
|
|
22
|
+
* A resource with no mapping at all has none. It is refused for the type
|
|
23
|
+
* before any value is read, and there is no mapping to ask what it needed.
|
|
24
|
+
*/
|
|
25
|
+
export function terraformMissingProperties(resource, build) {
|
|
26
|
+
const mapping = terraformResourceMappings.get(resource.type);
|
|
27
|
+
return mapping === undefined
|
|
28
|
+
? []
|
|
29
|
+
: missing(builtResource({ resource, mapping }, build));
|
|
30
|
+
}
|
|
31
|
+
/** The Resource one declaration's mapping builds, against this plan. */
|
|
32
|
+
function builtResource(declaration, build) {
|
|
33
|
+
return declaration.mapping({
|
|
34
|
+
resource: declaration.resource,
|
|
35
|
+
resolver: build.resolver,
|
|
36
|
+
overrides: build.overrides,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function missing(built) {
|
|
40
|
+
return (built.requires ?? []).filter(
|
|
41
|
+
// oxlint-disable-next-line security/detect-object-injection
|
|
42
|
+
(name) => built.Properties[name] === undefined);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sim-tf-refusal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-refusal.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-refusal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAOjE;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAiC,EACjC,KAA4B,EAC5B,UAA+B;IAE/B,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEhD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAA2B,EAC3B,KAA4B;IAE5B,MAAM,OAAO,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,wEAAwE;AACxE,SAAS,aAAa,CACpB,WAAiC,EACjC,KAA4B;IAE5B,OAAO,WAAW,CAAC,OAAO,CAAC;QACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,KAA8B;IAC7C,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM;IAClC,4DAA4D;IAC5D,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,CAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TerraformResourceFold, TerraformResourceMapping } from "./sim-tf-mapping.type.js";
|
|
2
|
+
/**
|
|
3
|
+
* The Terraform resource types this import turns into CloudFormation Resources.
|
|
4
|
+
*
|
|
5
|
+
* A type with no entry is recorded as skipped, which is what the stack already
|
|
6
|
+
* does with a CloudFormation Resource type no simulated service models. The
|
|
7
|
+
* set grows a service at a time.
|
|
8
|
+
*/
|
|
9
|
+
export declare const terraformResourceMappings: ReadonlyMap<string, TerraformResourceMapping>;
|
|
10
|
+
/**
|
|
11
|
+
* The Terraform resource types that configure another resource rather than
|
|
12
|
+
* creating one of their own.
|
|
13
|
+
*/
|
|
14
|
+
export declare const terraformResourceFolds: ReadonlyMap<string, TerraformResourceFold>;
|
|
15
|
+
//# sourceMappingURL=sim-tf-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-registry.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAiClC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CACjD,MAAM,EACN,wBAAwB,CA0BxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAC9C,MAAM,EACN,qBAAqB,CAQrB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { metricAlarm } from "./map/sim-tf-map-cloudwatch.js";
|
|
2
|
+
import { cognitoUserPool } from "./map/sim-tf-map-cognito.js";
|
|
3
|
+
import { cognitoUserPoolClient } from "./map/sim-tf-map-cognito-client.js";
|
|
4
|
+
import { dynamodbTable } from "./map/sim-tf-map-dynamodb.js";
|
|
5
|
+
import { ecrRepository } from "./map/sim-tf-map-ecr.js";
|
|
6
|
+
import { eventRule, eventTargetFolds } from "./map/sim-tf-map-events.js";
|
|
7
|
+
import { httpApi, httpApiStage } from "./map/sim-tf-map-http-api.js";
|
|
8
|
+
import { httpApiIntegration, httpApiRoute, } from "./map/sim-tf-map-http-api-routes.js";
|
|
9
|
+
import { iamRole, iamRoleFolds } from "./map/sim-tf-map-iam.js";
|
|
10
|
+
import { kmsAlias, kmsKey } from "./map/sim-tf-map-kms.js";
|
|
11
|
+
import { lambdaEventSourceMapping, lambdaFunction, lambdaPermission, } from "./map/sim-tf-map-lambda.js";
|
|
12
|
+
import { logGroup } from "./map/sim-tf-map-logs.js";
|
|
13
|
+
import { s3Bucket } from "./map/sim-tf-map-s3.js";
|
|
14
|
+
import { s3BucketFolds } from "./map/sim-tf-map-s3-folds.js";
|
|
15
|
+
import { s3LifecycleFolds } from "./map/sim-tf-map-s3-lifecycle.js";
|
|
16
|
+
import { bucketNotification } from "./map/sim-tf-map-s3-notification.js";
|
|
17
|
+
import { secretsManagerFolds, secretsManagerSecret, } from "./map/sim-tf-map-secretsmanager.js";
|
|
18
|
+
import { snsSubscription, snsTopic } from "./map/sim-tf-map-sns.js";
|
|
19
|
+
import { sqsQueue } from "./map/sim-tf-map-sqs.js";
|
|
20
|
+
import { sqsRedriveFolds } from "./map/sim-tf-map-sqs-redrive.js";
|
|
21
|
+
import { ssmParameter } from "./map/sim-tf-map-ssm.js";
|
|
22
|
+
/**
|
|
23
|
+
* The Terraform resource types this import turns into CloudFormation Resources.
|
|
24
|
+
*
|
|
25
|
+
* A type with no entry is recorded as skipped, which is what the stack already
|
|
26
|
+
* does with a CloudFormation Resource type no simulated service models. The
|
|
27
|
+
* set grows a service at a time.
|
|
28
|
+
*/
|
|
29
|
+
export const terraformResourceMappings = new Map([
|
|
30
|
+
["aws_apigatewayv2_api", httpApi],
|
|
31
|
+
["aws_apigatewayv2_integration", httpApiIntegration],
|
|
32
|
+
["aws_apigatewayv2_route", httpApiRoute],
|
|
33
|
+
["aws_apigatewayv2_stage", httpApiStage],
|
|
34
|
+
["aws_cloudwatch_event_rule", eventRule],
|
|
35
|
+
["aws_cloudwatch_log_group", logGroup],
|
|
36
|
+
["aws_cloudwatch_metric_alarm", metricAlarm],
|
|
37
|
+
["aws_cognito_user_pool", cognitoUserPool],
|
|
38
|
+
["aws_cognito_user_pool_client", cognitoUserPoolClient],
|
|
39
|
+
["aws_dynamodb_table", dynamodbTable],
|
|
40
|
+
["aws_ecr_repository", ecrRepository],
|
|
41
|
+
["aws_iam_role", iamRole],
|
|
42
|
+
["aws_kms_alias", kmsAlias],
|
|
43
|
+
["aws_kms_key", kmsKey],
|
|
44
|
+
["aws_lambda_event_source_mapping", lambdaEventSourceMapping],
|
|
45
|
+
["aws_lambda_function", lambdaFunction],
|
|
46
|
+
["aws_lambda_permission", lambdaPermission],
|
|
47
|
+
["aws_s3_bucket", s3Bucket],
|
|
48
|
+
["aws_s3_bucket_notification", bucketNotification],
|
|
49
|
+
["aws_secretsmanager_secret", secretsManagerSecret],
|
|
50
|
+
["aws_sns_topic", snsTopic],
|
|
51
|
+
["aws_sns_topic_subscription", snsSubscription],
|
|
52
|
+
["aws_sqs_queue", sqsQueue],
|
|
53
|
+
["aws_ssm_parameter", ssmParameter],
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* The Terraform resource types that configure another resource rather than
|
|
57
|
+
* creating one of their own.
|
|
58
|
+
*/
|
|
59
|
+
export const terraformResourceFolds = new Map([
|
|
60
|
+
...s3BucketFolds,
|
|
61
|
+
...s3LifecycleFolds,
|
|
62
|
+
...iamRoleFolds,
|
|
63
|
+
...secretsManagerFolds,
|
|
64
|
+
...eventTargetFolds,
|
|
65
|
+
...sqsRedriveFolds,
|
|
66
|
+
]);
|
|
67
|
+
//# sourceMappingURL=sim-tf-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-registry.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-registry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,YAAY,GACb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,cAAc,EACd,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAGlC,IAAI,GAAG,CAAC;IACV,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACjC,CAAC,8BAA8B,EAAE,kBAAkB,CAAC;IACpD,CAAC,wBAAwB,EAAE,YAAY,CAAC;IACxC,CAAC,wBAAwB,EAAE,YAAY,CAAC;IACxC,CAAC,2BAA2B,EAAE,SAAS,CAAC;IACxC,CAAC,0BAA0B,EAAE,QAAQ,CAAC;IACtC,CAAC,6BAA6B,EAAE,WAAW,CAAC;IAC5C,CAAC,uBAAuB,EAAE,eAAe,CAAC;IAC1C,CAAC,8BAA8B,EAAE,qBAAqB,CAAC;IACvD,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACrC,CAAC,oBAAoB,EAAE,aAAa,CAAC;IACrC,CAAC,cAAc,EAAE,OAAO,CAAC;IACzB,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC3B,CAAC,aAAa,EAAE,MAAM,CAAC;IACvB,CAAC,iCAAiC,EAAE,wBAAwB,CAAC;IAC7D,CAAC,qBAAqB,EAAE,cAAc,CAAC;IACvC,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IAC3C,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC3B,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;IAClD,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;IACnD,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC3B,CAAC,4BAA4B,EAAE,eAAe,CAAC;IAC/C,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC3B,CAAC,mBAAmB,EAAE,YAAY,CAAC;CACpC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAG/B,IAAI,GAAG,CAAC;IACV,GAAG,aAAa;IAChB,GAAG,gBAAgB;IACnB,GAAG,YAAY;IACf,GAAG,mBAAmB;IACtB,GAAG,gBAAgB;IACnB,GAAG,eAAe;CACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TerraformResource } from "./sim-tf-resource.type.js";
|
|
2
|
+
import type { TerraformSettledPlan } from "./sim-tf-settle.js";
|
|
3
|
+
import type { TerraformDeclaredResources } from "./sim-tf-declare.js";
|
|
4
|
+
import type { TerraformFoldedResources } from "./sim-tf-fold.js";
|
|
5
|
+
import type { TerraformImportReport } from "./sim-tf-report.type.js";
|
|
6
|
+
export interface TerraformImportPasses {
|
|
7
|
+
readonly resources: readonly TerraformResource[];
|
|
8
|
+
readonly settled: TerraformSettledPlan;
|
|
9
|
+
readonly declared: TerraformDeclaredResources;
|
|
10
|
+
readonly folded: TerraformFoldedResources;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* What an import did with every resource of the plan.
|
|
14
|
+
*
|
|
15
|
+
* Each resource is in exactly one of mapped, folded and skipped, so the three
|
|
16
|
+
* add up to the plan's managed resource count. That is what makes the mapped
|
|
17
|
+
* fraction a fraction of something, and what a reader checks the report
|
|
18
|
+
* against the configuration with.
|
|
19
|
+
*/
|
|
20
|
+
export declare function terraformImportReport(passes: TerraformImportPasses): TerraformImportReport;
|
|
21
|
+
//# sourceMappingURL=sim-tf-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-report.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAC5B,qBAAqB,CAcvB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { terraformMissingProperties } from "./sim-tf-refusal.js";
|
|
2
|
+
/**
|
|
3
|
+
* What an import did with every resource of the plan.
|
|
4
|
+
*
|
|
5
|
+
* Each resource is in exactly one of mapped, folded and skipped, so the three
|
|
6
|
+
* add up to the plan's managed resource count. That is what makes the mapped
|
|
7
|
+
* fraction a fraction of something, and what a reader checks the report
|
|
8
|
+
* against the configuration with.
|
|
9
|
+
*/
|
|
10
|
+
export function terraformImportReport(passes) {
|
|
11
|
+
const { resources, settled, declared, folded } = passes;
|
|
12
|
+
return {
|
|
13
|
+
total: resources.length,
|
|
14
|
+
mapped: declared.mapped,
|
|
15
|
+
folded: folded.folded,
|
|
16
|
+
skipped: skippedResources(resources, settled, folded.skipped),
|
|
17
|
+
lost: [
|
|
18
|
+
...declared.lost,
|
|
19
|
+
...folded.lost,
|
|
20
|
+
...refusedAttributes(resources, settled),
|
|
21
|
+
],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Every resource the template holds nothing for, in the plan's own order.
|
|
26
|
+
*
|
|
27
|
+
* A resource is refused before anything is built, or is a fold that never
|
|
28
|
+
* found the resource it configures. Reading the plan's order back means the
|
|
29
|
+
* report can be read beside the configuration it came from.
|
|
30
|
+
*/
|
|
31
|
+
function skippedResources(resources, settled, foldSkips) {
|
|
32
|
+
const byAddress = new Map(foldSkips.map((skip) => [skip.address, skip]));
|
|
33
|
+
return resources.flatMap((resource) => {
|
|
34
|
+
const reason = settled.refused.get(resource.address);
|
|
35
|
+
if (reason !== undefined) {
|
|
36
|
+
return [{ address: resource.address, type: resource.type, reason }];
|
|
37
|
+
}
|
|
38
|
+
const foldSkip = byAddress.get(resource.address);
|
|
39
|
+
return foldSkip === undefined ? [] : [foldSkip];
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The attributes a refused resource was refused for.
|
|
44
|
+
*
|
|
45
|
+
* A resource left out because a required value would not resolve names that
|
|
46
|
+
* value here, so the report says which attribute the plan could not carry
|
|
47
|
+
* rather than only that the resource is missing.
|
|
48
|
+
*/
|
|
49
|
+
function refusedAttributes(resources, settled) {
|
|
50
|
+
return resources
|
|
51
|
+
.filter((resource) => settled.refused.has(resource.address))
|
|
52
|
+
.flatMap((resource) => terraformMissingProperties(resource, settled).map((attribute) => ({
|
|
53
|
+
address: resource.address,
|
|
54
|
+
attribute,
|
|
55
|
+
})));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=sim-tf-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-report.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAgBjE;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA6B;IAE7B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAExD,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QAC7D,IAAI,EAAE;YACJ,GAAG,QAAQ,CAAC,IAAI;YAChB,GAAG,MAAM,CAAC,IAAI;YACd,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC;SACzC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,SAAuC,EACvC,OAA6B,EAC7B,SAA8C;IAE9C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,SAAuC,EACvC,OAA6B;IAE7B,OAAO,SAAS;SACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC3D,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS;KACV,CAAC,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What one import of a plan did with every resource in it.
|
|
3
|
+
*
|
|
4
|
+
* A resource is mapped to a Resource of its own, folded into another
|
|
5
|
+
* resource's Resource, or skipped. The three add up to the plan's managed
|
|
6
|
+
* resource count, which is what makes the mapped fraction a fraction of
|
|
7
|
+
* something.
|
|
8
|
+
*/
|
|
9
|
+
export interface TerraformImportReport {
|
|
10
|
+
readonly total: number;
|
|
11
|
+
readonly mapped: readonly TerraformImportedResource[];
|
|
12
|
+
readonly folded: readonly TerraformImportedResource[];
|
|
13
|
+
readonly skipped: readonly TerraformSkippedResource[];
|
|
14
|
+
/** Attributes a mapping could not carry across, named per resource. */
|
|
15
|
+
readonly lost: readonly TerraformLostAttribute[];
|
|
16
|
+
}
|
|
17
|
+
export interface TerraformImportedResource {
|
|
18
|
+
/** The Terraform address, such as `module.uploads.aws_s3_bucket.this`. */
|
|
19
|
+
readonly address: string;
|
|
20
|
+
/** The Terraform resource type, such as `aws_s3_bucket`. */
|
|
21
|
+
readonly type: string;
|
|
22
|
+
/** The CloudFormation type it was deployed as, for a mapped resource. */
|
|
23
|
+
readonly cfnType?: string;
|
|
24
|
+
/** The logical ID the template declares it under, for a mapped resource. */
|
|
25
|
+
readonly logicalId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface TerraformSkippedResource {
|
|
28
|
+
readonly address: string;
|
|
29
|
+
readonly type: string;
|
|
30
|
+
readonly reason: TerraformSkipReason;
|
|
31
|
+
}
|
|
32
|
+
export type TerraformSkipReason = "no mapping for resource type" | "not an AWS provider resource" | "fold target not found" | "unresolved required attribute" | "a property value the service refuses" | "references a resource that was skipped";
|
|
33
|
+
export interface TerraformLostAttribute {
|
|
34
|
+
readonly address: string;
|
|
35
|
+
readonly attribute: string;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=sim-tf-report.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-report.type.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-report.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAC3B,8BAA8B,GAC9B,8BAA8B,GAC9B,uBAAuB,GACvB,+BAA+B,GAC/B,sCAAsC,GACtC,wCAAwC,CAAC;AAE7C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-report.type.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-report.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** The provider whose resource types this import knows how to map. */
|
|
2
|
+
export declare const terraformAwsProvider = "hashicorp/aws";
|
|
3
|
+
/**
|
|
4
|
+
* One resource of a plan, with everything the import needs about it in one
|
|
5
|
+
* place.
|
|
6
|
+
*
|
|
7
|
+
* A plan splits what it knows about a resource across three sections.
|
|
8
|
+
* `planned_values` holds resolved attributes, `resource_changes` marks the
|
|
9
|
+
* attributes that stayed unknown, and `configuration` holds what the resource
|
|
10
|
+
* refers to. This is the three joined up, and it is what every mapping, every
|
|
11
|
+
* reference and every report entry is written against.
|
|
12
|
+
*/
|
|
13
|
+
export interface TerraformResource {
|
|
14
|
+
/** The fully qualified address, such as `module.uploads.aws_s3_bucket.this`. */
|
|
15
|
+
readonly address: string;
|
|
16
|
+
readonly type: string;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
/** The `count` or `for_each` key, for one instance of an expanded resource. */
|
|
19
|
+
readonly index: string | number | undefined;
|
|
20
|
+
/** The provider that owns the type, such as `hashicorp/aws`. */
|
|
21
|
+
readonly provider: string;
|
|
22
|
+
/** Attributes the plan resolved to a value. */
|
|
23
|
+
readonly values: Record<string, unknown>;
|
|
24
|
+
/** `after_unknown`, whose `true` leaves mark attributes still to be decided. */
|
|
25
|
+
readonly unknown: Record<string, unknown>;
|
|
26
|
+
/** Declared expressions, holding the `references` this resource reads. */
|
|
27
|
+
readonly expressions: Record<string, unknown>;
|
|
28
|
+
/** Explicit `depends_on` addresses, relative to the declaring module. */
|
|
29
|
+
readonly dependsOn: readonly string[];
|
|
30
|
+
/** The module call path this resource was declared under. */
|
|
31
|
+
readonly modulePath: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=sim-tf-resource.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-resource.type.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-resource.type.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-resource.type.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-resource.type.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TerraformPlan } from "./sim-tf-plan.type.js";
|
|
2
|
+
import { type TerraformResource } from "./sim-tf-resource.type.js";
|
|
3
|
+
import { TerraformReferenceResolver } from "./sim-tf-reference.js";
|
|
4
|
+
import type { TerraformDeclaration } from "./sim-tf-mapping.type.js";
|
|
5
|
+
import type { TerraformPlanOverrides } from "./sim-tf-overrides.js";
|
|
6
|
+
import type { TerraformSkipReason } from "./sim-tf-report.type.js";
|
|
7
|
+
/**
|
|
8
|
+
* Which resources of a plan the template will declare, and what resolves
|
|
9
|
+
* against them.
|
|
10
|
+
*/
|
|
11
|
+
export interface TerraformSettledPlan {
|
|
12
|
+
/** The resources a Resource is built for, in plan order. */
|
|
13
|
+
readonly declared: readonly TerraformDeclaration[];
|
|
14
|
+
/** A resolver that knows those resources and no others. */
|
|
15
|
+
readonly resolver: TerraformReferenceResolver;
|
|
16
|
+
/** What the deployment supplied for the values the plan could not carry. */
|
|
17
|
+
readonly overrides: TerraformPlanOverrides;
|
|
18
|
+
/** Why a resource is not one of them, by address. */
|
|
19
|
+
readonly refused: ReadonlyMap<string, TerraformSkipReason>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Settle which resources of a plan become CloudFormation Resources.
|
|
23
|
+
*
|
|
24
|
+
* Whether a resource can be built depends on what its references resolve to,
|
|
25
|
+
* and what a reference resolves to depends on which resources are being built.
|
|
26
|
+
* The two are decided together before anything is built. Each round drops the
|
|
27
|
+
* resources whose required properties the round's resolver cannot fill, and a
|
|
28
|
+
* resource dropped is one the next round's references no longer reach. The set
|
|
29
|
+
* only ever shrinks, and the rounds therefore end.
|
|
30
|
+
*
|
|
31
|
+
* Building against the settled set is then a single pass that produces nothing
|
|
32
|
+
* it has to take back. No Resource is built and then removed, and no property
|
|
33
|
+
* is left naming a logical ID the template does not declare.
|
|
34
|
+
*/
|
|
35
|
+
export declare function settledTerraformPlan(plan: TerraformPlan, resources: readonly TerraformResource[], overrides: TerraformPlanOverrides): TerraformSettledPlan;
|
|
36
|
+
//# sourceMappingURL=sim-tf-settle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-settle.d.ts","sourceRoot":"","sources":["../../src/terraform/sim-tf-settle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAKnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,SAAS,iBAAiB,EAAE,EACvC,SAAS,EAAE,sBAAsB,GAChC,oBAAoB,CAuCtB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { terraformAwsProvider, } from "./sim-tf-resource.type.js";
|
|
2
|
+
import { terraformModuleOutputs } from "./sim-tf-module-outputs.js";
|
|
3
|
+
import { TerraformReferenceResolver } from "./sim-tf-reference.js";
|
|
4
|
+
import { terraformResourceFolds, terraformResourceMappings, } from "./sim-tf-registry.js";
|
|
5
|
+
import { terraformRefusal } from "./sim-tf-refusal.js";
|
|
6
|
+
/**
|
|
7
|
+
* Settle which resources of a plan become CloudFormation Resources.
|
|
8
|
+
*
|
|
9
|
+
* Whether a resource can be built depends on what its references resolve to,
|
|
10
|
+
* and what a reference resolves to depends on which resources are being built.
|
|
11
|
+
* The two are decided together before anything is built. Each round drops the
|
|
12
|
+
* resources whose required properties the round's resolver cannot fill, and a
|
|
13
|
+
* resource dropped is one the next round's references no longer reach. The set
|
|
14
|
+
* only ever shrinks, and the rounds therefore end.
|
|
15
|
+
*
|
|
16
|
+
* Building against the settled set is then a single pass that produces nothing
|
|
17
|
+
* it has to take back. No Resource is built and then removed, and no property
|
|
18
|
+
* is left naming a logical ID the template does not declare.
|
|
19
|
+
*/
|
|
20
|
+
export function settledTerraformPlan(plan, resources, overrides) {
|
|
21
|
+
const moduleOutputs = terraformModuleOutputs(plan);
|
|
22
|
+
const refused = new Map();
|
|
23
|
+
let candidates = resources.flatMap((resource) => mappable(resource, refused));
|
|
24
|
+
let reason = "unresolved required attribute";
|
|
25
|
+
for (;;) {
|
|
26
|
+
const resolver = new TerraformReferenceResolver(candidates.map((declaration) => declaration.resource), moduleOutputs);
|
|
27
|
+
const dropped = new Map(candidates.flatMap((declaration) => {
|
|
28
|
+
const why = terraformRefusal(declaration, { resolver, overrides }, reason);
|
|
29
|
+
return why === undefined ? [] : [[declaration.resource.address, why]];
|
|
30
|
+
}));
|
|
31
|
+
if (dropped.size === 0) {
|
|
32
|
+
return { declared: candidates, resolver, overrides, refused };
|
|
33
|
+
}
|
|
34
|
+
for (const [address, why] of dropped) {
|
|
35
|
+
refused.set(address, why);
|
|
36
|
+
}
|
|
37
|
+
candidates = candidates.filter((declaration) => !dropped.has(declaration.resource.address));
|
|
38
|
+
// A resource that was buildable a round ago and is not now lost the
|
|
39
|
+
// resource it was reading, rather than never having had one.
|
|
40
|
+
reason = "references a resource that was skipped";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The mapping a resource will be built with, if this import has one for it.
|
|
45
|
+
*
|
|
46
|
+
* A folding resource comes back with none and without a reason recorded, since
|
|
47
|
+
* the fold pass is what decides whether it reached the resource it configures.
|
|
48
|
+
*/
|
|
49
|
+
function mappable(resource, refused) {
|
|
50
|
+
if (resource.provider !== terraformAwsProvider) {
|
|
51
|
+
refused.set(resource.address, "not an AWS provider resource");
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
const mapping = terraformResourceMappings.get(resource.type);
|
|
55
|
+
if (mapping !== undefined) {
|
|
56
|
+
return [{ resource, mapping }];
|
|
57
|
+
}
|
|
58
|
+
if (!terraformResourceFolds.has(resource.type)) {
|
|
59
|
+
refused.set(resource.address, "no mapping for resource type");
|
|
60
|
+
}
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=sim-tf-settle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-tf-settle.js","sourceRoot":"","sources":["../../src/terraform/sim-tf-settle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,GAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAkBvD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAmB,EACnB,SAAuC,EACvC,SAAiC;IAEjC,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEvD,IAAI,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,IAAI,MAAM,GAAwB,+BAA+B,CAAC;IAElE,SAAS,CAAC;QACR,MAAM,QAAQ,GAAG,IAAI,0BAA0B,CAC7C,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,EACrD,aAAa,CACd,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,gBAAgB,CAC1B,WAAW,EACX,EAAE,QAAQ,EAAE,SAAS,EAAE,EACvB,MAAM,CACP,CAAC;YAEF,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAChE,CAAC;QAED,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAC5B,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC5D,CAAC;QACF,oEAAoE;QACpE,6DAA6D;QAC7D,MAAM,GAAG,wCAAwC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CACf,QAA2B,EAC3B,OAAyC;IAEzC,IAAI,QAAQ,CAAC,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QAE9D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface TestTerraformProjectProperties {
|
|
2
|
+
/**
|
|
3
|
+
* Whether this configuration is expected to fail its `data` blocks.
|
|
4
|
+
*
|
|
5
|
+
* Only a configuration known to read AWS at plan time sets this, and it
|
|
6
|
+
* limits the tolerance to that one. Every other configuration treats a
|
|
7
|
+
* non-zero exit as the failure it is.
|
|
8
|
+
*/
|
|
9
|
+
readonly toleratesDataSourceErrors?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A Terraform configuration under `test/terraform`, planned on demand.
|
|
13
|
+
*
|
|
14
|
+
* The plan JSON a Terraform import reads runs to thousands of lines, and the
|
|
15
|
+
* configuration behind it runs to tens. Only the configuration is in the
|
|
16
|
+
* repository, and this produces the plan from it the way `TestCdkProject`
|
|
17
|
+
* produces a cloud assembly from a CDK app.
|
|
18
|
+
*
|
|
19
|
+
* `terraform init` downloads the AWS provider, which is one binary of about
|
|
20
|
+
* 650MB. That is far too slow to sit inside a test, so it is left to
|
|
21
|
+
* `pnpm tf:init` and to the workflow step that caches it. A configuration that
|
|
22
|
+
* has never been initialised is reported rather than initialised here.
|
|
23
|
+
*/
|
|
24
|
+
export declare class TestTerraformProject {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
private readonly directory;
|
|
27
|
+
private readonly toleratesDataSourceErrors;
|
|
28
|
+
constructor(name: string, properties?: TestTerraformProjectProperties);
|
|
29
|
+
/**
|
|
30
|
+
* The plan JSON for this configuration, as `terraform show -json` writes it.
|
|
31
|
+
*
|
|
32
|
+
* The plan file goes to a temporary directory rather than into the
|
|
33
|
+
* configuration, so a run leaves the repository as it found it.
|
|
34
|
+
*/
|
|
35
|
+
planJson(): Promise<unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* The path of a file holding this configuration's plan JSON.
|
|
38
|
+
*
|
|
39
|
+
* `TerraformAdapter.deployPlan` reads a path rather than a document, so a
|
|
40
|
+
* test of the deployment needs the JSON on disk. It goes to a temporary directory
|
|
41
|
+
* for the same reason the plan file does.
|
|
42
|
+
*/
|
|
43
|
+
planJsonPath(): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Write the plan file.
|
|
46
|
+
*
|
|
47
|
+
* A configuration reading a `data` block that calls AWS cannot be planned
|
|
48
|
+
* offline. Terraform reports each one as an error and exits non-zero, and it
|
|
49
|
+
* still writes a plan covering the managed resources, which are what an
|
|
50
|
+
* import reads. A configuration expecting that says so. Every other failure
|
|
51
|
+
* is a failure, so a broken configuration cannot pass as a partial plan.
|
|
52
|
+
*
|
|
53
|
+
* The state lock is not taken. These configurations have no state and are
|
|
54
|
+
* never applied, and several test files plan the same one at once.
|
|
55
|
+
*/
|
|
56
|
+
private plan;
|
|
57
|
+
private show;
|
|
58
|
+
/**
|
|
59
|
+
* Fail with what to run, rather than with what Terraform says.
|
|
60
|
+
*
|
|
61
|
+
* Terraform's own message for an uninitialised directory names a command
|
|
62
|
+
* that would work and say nothing about the provider cache this repository
|
|
63
|
+
* shares between its two configurations.
|
|
64
|
+
*/
|
|
65
|
+
private requireInitialised;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=test-terraform-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-terraform-project.d.ts","sourceRoot":"","sources":["../../../src/util/filesystem/test-terraform-project.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,8BAA8B;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,oBAAoB;aAKb,IAAI,EAAE,MAAM;IAJ9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAU;IAEpD,YACkB,IAAI,EAAE,MAAM,EAC5B,UAAU,GAAE,8BAAmC,EAKhD;IAED;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAUjC;IAED;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAcpC;IAED;;;;;;;;;;;OAWG;YACW,IAAI;YA6BJ,IAAI;IAUlB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;CAY3B"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { execa } from "execa";
|
|
3
|
+
import { repoPath } from "./path.js";
|
|
4
|
+
import { TemporaryDirectory } from "./temporary-directory.js";
|
|
5
|
+
/**
|
|
6
|
+
* A Terraform configuration under `test/terraform`, planned on demand.
|
|
7
|
+
*
|
|
8
|
+
* The plan JSON a Terraform import reads runs to thousands of lines, and the
|
|
9
|
+
* configuration behind it runs to tens. Only the configuration is in the
|
|
10
|
+
* repository, and this produces the plan from it the way `TestCdkProject`
|
|
11
|
+
* produces a cloud assembly from a CDK app.
|
|
12
|
+
*
|
|
13
|
+
* `terraform init` downloads the AWS provider, which is one binary of about
|
|
14
|
+
* 650MB. That is far too slow to sit inside a test, so it is left to
|
|
15
|
+
* `pnpm tf:init` and to the workflow step that caches it. A configuration that
|
|
16
|
+
* has never been initialised is reported rather than initialised here.
|
|
17
|
+
*/
|
|
18
|
+
export class TestTerraformProject {
|
|
19
|
+
name;
|
|
20
|
+
directory;
|
|
21
|
+
toleratesDataSourceErrors;
|
|
22
|
+
constructor(name, properties = {}) {
|
|
23
|
+
this.name = name;
|
|
24
|
+
this.directory = repoPath(`test/terraform/${name}`);
|
|
25
|
+
this.toleratesDataSourceErrors =
|
|
26
|
+
properties.toleratesDataSourceErrors ?? false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The plan JSON for this configuration, as `terraform show -json` writes it.
|
|
30
|
+
*
|
|
31
|
+
* The plan file goes to a temporary directory rather than into the
|
|
32
|
+
* configuration, so a run leaves the repository as it found it.
|
|
33
|
+
*/
|
|
34
|
+
async planJson() {
|
|
35
|
+
this.requireInitialised();
|
|
36
|
+
const output = new TemporaryDirectory();
|
|
37
|
+
await output.resolvePath();
|
|
38
|
+
const planFile = output.join(`${this.name}.tfplan`);
|
|
39
|
+
await this.plan(planFile);
|
|
40
|
+
return JSON.parse(await this.show(planFile));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The path of a file holding this configuration's plan JSON.
|
|
44
|
+
*
|
|
45
|
+
* `TerraformAdapter.deployPlan` reads a path rather than a document, so a
|
|
46
|
+
* test of the deployment needs the JSON on disk. It goes to a temporary directory
|
|
47
|
+
* for the same reason the plan file does.
|
|
48
|
+
*/
|
|
49
|
+
async planJsonPath() {
|
|
50
|
+
this.requireInitialised();
|
|
51
|
+
const output = new TemporaryDirectory();
|
|
52
|
+
await output.resolvePath();
|
|
53
|
+
const planFile = output.join(`${this.name}.tfplan`);
|
|
54
|
+
await this.plan(planFile);
|
|
55
|
+
await output.writeFile(`${this.name}.tfplan.json`, await this.show(planFile));
|
|
56
|
+
return output.join(`${this.name}.tfplan.json`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Write the plan file.
|
|
60
|
+
*
|
|
61
|
+
* A configuration reading a `data` block that calls AWS cannot be planned
|
|
62
|
+
* offline. Terraform reports each one as an error and exits non-zero, and it
|
|
63
|
+
* still writes a plan covering the managed resources, which are what an
|
|
64
|
+
* import reads. A configuration expecting that says so. Every other failure
|
|
65
|
+
* is a failure, so a broken configuration cannot pass as a partial plan.
|
|
66
|
+
*
|
|
67
|
+
* The state lock is not taken. These configurations have no state and are
|
|
68
|
+
* never applied, and several test files plan the same one at once.
|
|
69
|
+
*/
|
|
70
|
+
async plan(planFile) {
|
|
71
|
+
const result = await execa("terraform", [
|
|
72
|
+
`-chdir=${this.directory}`,
|
|
73
|
+
"plan",
|
|
74
|
+
"-input=false",
|
|
75
|
+
// There is no state to protect. Nothing is ever applied here, and two
|
|
76
|
+
// test files planning the same configuration at once would otherwise
|
|
77
|
+
// fail on each other's state lock rather than on the configuration.
|
|
78
|
+
"-lock=false",
|
|
79
|
+
"-out",
|
|
80
|
+
planFile,
|
|
81
|
+
], { env: { TF_IN_AUTOMATION: "1" }, reject: false });
|
|
82
|
+
if (result.exitCode === 0) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// oxlint-disable-next-line security/detect-non-literal-fs-filename
|
|
86
|
+
if (this.toleratesDataSourceErrors && existsSync(planFile)) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
throw new Error(`terraform plan failed for ${this.name}: ${result.stderr}`);
|
|
90
|
+
}
|
|
91
|
+
async show(planFile) {
|
|
92
|
+
const { stdout } = await execa("terraform", [`-chdir=${this.directory}`, "show", "-json", planFile], { env: { TF_IN_AUTOMATION: "1" } });
|
|
93
|
+
return stdout;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Fail with what to run, rather than with what Terraform says.
|
|
97
|
+
*
|
|
98
|
+
* Terraform's own message for an uninitialised directory names a command
|
|
99
|
+
* that would work and say nothing about the provider cache this repository
|
|
100
|
+
* shares between its two configurations.
|
|
101
|
+
*/
|
|
102
|
+
requireInitialised() {
|
|
103
|
+
// oxlint-disable-next-line security/detect-non-literal-fs-filename
|
|
104
|
+
if (existsSync(`${this.directory}/.terraform`)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
throw new Error(`Terraform configuration ${this.name} is not initialised. ` +
|
|
108
|
+
`Run \`pnpm tf:init\` first. It downloads the AWS provider, which ` +
|
|
109
|
+
`takes a few minutes the first time and nothing afterwards.`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=test-terraform-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-terraform-project.js","sourceRoot":"","sources":["../../../src/util/filesystem/test-terraform-project.ts"],"names":[],"mappings":"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"}
|