tfts 0.2.13 → 0.3.0
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 +5 -161
- package/dist/cli/config.d.ts +18 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +36 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/get.d.ts +8 -0
- package/dist/cli/get.d.ts.map +1 -0
- package/dist/cli/get.js +107 -0
- package/dist/cli/get.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +85 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/synth.d.ts +7 -0
- package/dist/cli/synth.d.ts.map +1 -0
- package/dist/cli/synth.js +35 -0
- package/dist/cli/synth.js.map +1 -0
- package/dist/codegen/fetch-schema.d.ts +9 -0
- package/dist/codegen/fetch-schema.d.ts.map +1 -0
- package/dist/codegen/fetch-schema.js +51 -0
- package/dist/codegen/fetch-schema.js.map +1 -0
- package/dist/codegen/fetch-schema.spec.d.ts +2 -0
- package/dist/codegen/fetch-schema.spec.d.ts.map +1 -0
- package/dist/codegen/fetch-schema.spec.js +63 -0
- package/dist/codegen/fetch-schema.spec.js.map +1 -0
- package/dist/codegen/generator.d.ts +8 -0
- package/dist/codegen/generator.d.ts.map +1 -0
- package/dist/codegen/generator.js +582 -0
- package/dist/codegen/generator.js.map +1 -0
- package/dist/codegen/generator.spec.d.ts.map +1 -0
- package/dist/codegen/generator.spec.js +387 -0
- package/dist/codegen/generator.spec.js.map +1 -0
- package/dist/codegen/index.d.ts +5 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +5 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/schema.d.ts +46 -0
- package/dist/codegen/schema.d.ts.map +1 -0
- package/dist/codegen/schema.js +64 -0
- package/dist/codegen/schema.js.map +1 -0
- package/dist/codegen/type-mapper.d.ts +11 -0
- package/dist/codegen/type-mapper.d.ts.map +1 -0
- package/dist/codegen/type-mapper.js +130 -0
- package/dist/codegen/type-mapper.js.map +1 -0
- package/dist/core/synthesize.d.ts +2 -0
- package/dist/core/synthesize.d.ts.map +1 -0
- package/dist/core/synthesize.js +51 -0
- package/dist/core/synthesize.js.map +1 -0
- package/dist/core/synthesize.spec.d.ts.map +1 -0
- package/dist/core/synthesize.spec.js +72 -0
- package/dist/core/synthesize.spec.js.map +1 -0
- package/dist/core/terraform-json.d.ts +86 -0
- package/dist/core/terraform-json.d.ts.map +1 -0
- package/dist/core/terraform-json.js.map +1 -0
- package/dist/core/tokens.d.ts +46 -0
- package/dist/core/tokens.d.ts.map +1 -0
- package/dist/core/tokens.js +256 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/{src/core → core}/tokens.spec.d.ts.map +1 -1
- package/dist/core/tokens.spec.js +140 -0
- package/dist/core/tokens.spec.js.map +1 -0
- package/dist/core/tree.d.ts +11 -0
- package/dist/core/tree.d.ts.map +1 -0
- package/dist/core/tree.js +89 -0
- package/dist/core/tree.js.map +1 -0
- package/dist/{src/core → core}/tree.spec.d.ts.map +1 -1
- package/dist/core/tree.spec.js +110 -0
- package/dist/core/tree.spec.js.map +1 -0
- package/dist/core/types.d.ts +165 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validate.d.ts +5 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +186 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/core/validate.spec.d.ts.map +1 -0
- package/dist/core/validate.spec.js +126 -0
- package/dist/core/validate.spec.js.map +1 -0
- package/dist/facade/annotations.d.ts +17 -0
- package/dist/facade/annotations.d.ts.map +1 -0
- package/dist/facade/annotations.js +29 -0
- package/dist/facade/annotations.js.map +1 -0
- package/dist/facade/app.d.ts +51 -0
- package/dist/facade/app.d.ts.map +1 -0
- package/dist/facade/app.js +121 -0
- package/dist/facade/app.js.map +1 -0
- package/dist/facade/aspects.d.ts +13 -0
- package/dist/facade/aspects.d.ts.map +1 -0
- package/dist/facade/aspects.js +34 -0
- package/dist/facade/aspects.js.map +1 -0
- package/dist/facade/backends/cloud-backend.d.ts +34 -0
- package/dist/facade/backends/cloud-backend.d.ts.map +1 -0
- package/dist/facade/backends/cloud-backend.js +84 -0
- package/dist/facade/backends/cloud-backend.js.map +1 -0
- package/dist/facade/backends/gcs-backend.d.ts +29 -0
- package/dist/facade/backends/gcs-backend.d.ts.map +1 -0
- package/dist/facade/backends/gcs-backend.js +34 -0
- package/dist/facade/backends/gcs-backend.js.map +1 -0
- package/dist/facade/backends/index.d.ts +5 -0
- package/dist/facade/backends/index.d.ts.map +1 -0
- package/dist/facade/backends/index.js +5 -0
- package/dist/facade/backends/index.js.map +1 -0
- package/dist/facade/backends/remote-backend.d.ts +34 -0
- package/dist/facade/backends/remote-backend.d.ts.map +1 -0
- package/dist/facade/backends/remote-backend.js +50 -0
- package/dist/facade/backends/remote-backend.js.map +1 -0
- package/dist/facade/backends/s3-backend.d.ts +97 -0
- package/dist/facade/backends/s3-backend.d.ts.map +1 -0
- package/dist/facade/backends/s3-backend.js +34 -0
- package/dist/facade/backends/s3-backend.js.map +1 -0
- package/dist/facade/complex-computed-list.d.ts +117 -0
- package/dist/facade/complex-computed-list.d.ts.map +1 -0
- package/dist/facade/complex-computed-list.js +370 -0
- package/dist/facade/complex-computed-list.js.map +1 -0
- package/dist/facade/construct.d.ts +49 -0
- package/dist/facade/construct.d.ts.map +1 -0
- package/dist/facade/construct.js +129 -0
- package/dist/facade/construct.js.map +1 -0
- package/dist/facade/importable-resource.d.ts +17 -0
- package/dist/facade/importable-resource.d.ts.map +1 -0
- package/dist/facade/importable-resource.js +27 -0
- package/dist/facade/importable-resource.js.map +1 -0
- package/dist/facade/index.d.ts +27 -0
- package/dist/facade/index.d.ts.map +1 -0
- package/dist/facade/index.js +27 -0
- package/dist/facade/index.js.map +1 -0
- package/dist/facade/runtime.d.ts +16 -0
- package/dist/facade/runtime.d.ts.map +1 -0
- package/dist/facade/runtime.js +76 -0
- package/dist/facade/runtime.js.map +1 -0
- package/dist/facade/stack-registry.d.ts +13 -0
- package/dist/facade/stack-registry.d.ts.map +1 -0
- package/dist/facade/stack-registry.js +8 -0
- package/dist/facade/stack-registry.js.map +1 -0
- package/dist/facade/terraform-addressable.d.ts +9 -0
- package/dist/facade/terraform-addressable.d.ts.map +1 -0
- package/dist/facade/terraform-addressable.js +2 -0
- package/dist/facade/terraform-addressable.js.map +1 -0
- package/dist/facade/terraform-asset.d.ts +27 -0
- package/dist/facade/terraform-asset.d.ts.map +1 -0
- package/dist/facade/terraform-asset.js +118 -0
- package/dist/facade/terraform-asset.js.map +1 -0
- package/dist/facade/terraform-backend.d.ts +23 -0
- package/dist/facade/terraform-backend.d.ts.map +1 -0
- package/dist/facade/terraform-backend.js +53 -0
- package/dist/facade/terraform-backend.js.map +1 -0
- package/dist/facade/terraform-data-source.d.ts +45 -0
- package/dist/facade/terraform-data-source.d.ts.map +1 -0
- package/dist/facade/terraform-data-source.js +85 -0
- package/dist/facade/terraform-data-source.js.map +1 -0
- package/dist/facade/terraform-element.d.ts +28 -0
- package/dist/facade/terraform-element.d.ts.map +1 -0
- package/dist/facade/terraform-element.js +100 -0
- package/dist/facade/terraform-element.js.map +1 -0
- package/dist/facade/terraform-functions.d.ts +148 -0
- package/dist/facade/terraform-functions.d.ts.map +1 -0
- package/dist/facade/terraform-functions.js +615 -0
- package/dist/facade/terraform-functions.js.map +1 -0
- package/dist/facade/terraform-functions.spec.d.ts +2 -0
- package/dist/facade/terraform-functions.spec.d.ts.map +1 -0
- package/dist/facade/terraform-functions.spec.js +282 -0
- package/dist/facade/terraform-functions.spec.js.map +1 -0
- package/dist/facade/terraform-hcl-module.d.ts +18 -0
- package/dist/facade/terraform-hcl-module.d.ts.map +1 -0
- package/dist/facade/terraform-hcl-module.js +39 -0
- package/dist/facade/terraform-hcl-module.js.map +1 -0
- package/dist/facade/terraform-iterator.d.ts +39 -0
- package/dist/facade/terraform-iterator.d.ts.map +1 -0
- package/dist/facade/terraform-iterator.js +77 -0
- package/dist/facade/terraform-iterator.js.map +1 -0
- package/dist/facade/terraform-local.d.ts +18 -0
- package/dist/facade/terraform-local.d.ts.map +1 -0
- package/dist/facade/terraform-local.js +34 -0
- package/dist/facade/terraform-local.js.map +1 -0
- package/dist/facade/terraform-module.d.ts +35 -0
- package/dist/facade/terraform-module.d.ts.map +1 -0
- package/dist/facade/terraform-module.js +94 -0
- package/dist/facade/terraform-module.js.map +1 -0
- package/dist/facade/terraform-output.d.ts +20 -0
- package/dist/facade/terraform-output.d.ts.map +1 -0
- package/dist/facade/terraform-output.js +38 -0
- package/dist/facade/terraform-output.js.map +1 -0
- package/dist/facade/terraform-provider.d.ts +27 -0
- package/dist/facade/terraform-provider.d.ts.map +1 -0
- package/dist/facade/terraform-provider.js +48 -0
- package/dist/facade/terraform-provider.js.map +1 -0
- package/dist/facade/terraform-remote-state.d.ts +33 -0
- package/dist/facade/terraform-remote-state.d.ts.map +1 -0
- package/dist/facade/terraform-remote-state.js +62 -0
- package/dist/facade/terraform-remote-state.js.map +1 -0
- package/dist/facade/terraform-resource.d.ts +64 -0
- package/dist/facade/terraform-resource.d.ts.map +1 -0
- package/dist/facade/terraform-resource.js +170 -0
- package/dist/facade/terraform-resource.js.map +1 -0
- package/dist/facade/terraform-stack.d.ts +36 -0
- package/dist/facade/terraform-stack.d.ts.map +1 -0
- package/dist/facade/terraform-stack.js +161 -0
- package/dist/facade/terraform-stack.js.map +1 -0
- package/dist/facade/terraform-variable.d.ts +32 -0
- package/dist/facade/terraform-variable.d.ts.map +1 -0
- package/dist/facade/terraform-variable.js +66 -0
- package/dist/facade/terraform-variable.js.map +1 -0
- package/dist/facade/tokenization.d.ts +4 -0
- package/dist/facade/tokenization.d.ts.map +1 -0
- package/dist/facade/tokenization.js +13 -0
- package/dist/facade/tokenization.js.map +1 -0
- package/dist/facade/util.d.ts +7 -0
- package/dist/facade/util.d.ts.map +1 -0
- package/dist/facade/util.js +55 -0
- package/dist/facade/util.js.map +1 -0
- package/dist/facade/util.spec.d.ts +2 -0
- package/dist/facade/util.spec.d.ts.map +1 -0
- package/dist/facade/util.spec.js +103 -0
- package/dist/facade/util.spec.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/index.spec.d.ts +2 -0
- package/dist/index.spec.d.ts.map +1 -0
- package/dist/index.spec.js +7 -0
- package/dist/index.spec.js.map +1 -0
- package/dist/integration.spec.d.ts +2 -0
- package/dist/integration.spec.d.ts.map +1 -0
- package/dist/integration.spec.js +345 -0
- package/dist/integration.spec.js.map +1 -0
- package/dist/testing/index.d.ts +40 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +160 -0
- package/dist/testing/index.js.map +1 -0
- package/package.json +9 -7
- package/dist/bin/tfts.d.ts +0 -3
- package/dist/bin/tfts.d.ts.map +0 -1
- package/dist/bin/tfts.js +0 -5
- package/dist/bin/tfts.js.map +0 -1
- package/dist/src/cli/config.d.ts +0 -43
- package/dist/src/cli/config.d.ts.map +0 -1
- package/dist/src/cli/config.js +0 -63
- package/dist/src/cli/config.js.map +0 -1
- package/dist/src/cli/diff.d.ts +0 -25
- package/dist/src/cli/diff.d.ts.map +0 -1
- package/dist/src/cli/diff.js +0 -108
- package/dist/src/cli/diff.js.map +0 -1
- package/dist/src/cli/get.d.ts +0 -24
- package/dist/src/cli/get.d.ts.map +0 -1
- package/dist/src/cli/get.js +0 -86
- package/dist/src/cli/get.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -2
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js +0 -157
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/synth.d.ts +0 -32
- package/dist/src/cli/synth.d.ts.map +0 -1
- package/dist/src/cli/synth.js +0 -55
- package/dist/src/cli/synth.js.map +0 -1
- package/dist/src/codegen/__tests__/fixtures.d.ts +0 -7
- package/dist/src/codegen/__tests__/fixtures.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/fixtures.js +0 -202
- package/dist/src/codegen/__tests__/fixtures.js.map +0 -1
- package/dist/src/codegen/__tests__/generator.spec.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generator.spec.js +0 -382
- package/dist/src/codegen/__tests__/generator.spec.js.map +0 -1
- package/dist/src/codegen/fn-generator.d.ts +0 -22
- package/dist/src/codegen/fn-generator.d.ts.map +0 -1
- package/dist/src/codegen/fn-generator.js +0 -203
- package/dist/src/codegen/fn-generator.js.map +0 -1
- package/dist/src/codegen/generator.d.ts +0 -4
- package/dist/src/codegen/generator.d.ts.map +0 -1
- package/dist/src/codegen/generator.js +0 -479
- package/dist/src/codegen/generator.js.map +0 -1
- package/dist/src/codegen/raw-schema.d.ts +0 -38
- package/dist/src/codegen/raw-schema.d.ts.map +0 -1
- package/dist/src/codegen/raw-schema.js +0 -3
- package/dist/src/codegen/raw-schema.js.map +0 -1
- package/dist/src/codegen/schema.d.ts +0 -68
- package/dist/src/codegen/schema.d.ts.map +0 -1
- package/dist/src/codegen/schema.js +0 -71
- package/dist/src/codegen/schema.js.map +0 -1
- package/dist/src/core/backend.d.ts +0 -5
- package/dist/src/core/backend.d.ts.map +0 -1
- package/dist/src/core/backend.js +0 -2
- package/dist/src/core/backend.js.map +0 -1
- package/dist/src/core/construct.d.ts +0 -42
- package/dist/src/core/construct.d.ts.map +0 -1
- package/dist/src/core/construct.js +0 -2
- package/dist/src/core/construct.js.map +0 -1
- package/dist/src/core/datasource.d.ts +0 -8
- package/dist/src/core/datasource.d.ts.map +0 -1
- package/dist/src/core/datasource.js +0 -2
- package/dist/src/core/datasource.js.map +0 -1
- package/dist/src/core/errors.d.ts +0 -29
- package/dist/src/core/errors.d.ts.map +0 -1
- package/dist/src/core/errors.js +0 -2
- package/dist/src/core/errors.js.map +0 -1
- package/dist/src/core/local.d.ts +0 -4
- package/dist/src/core/local.d.ts.map +0 -1
- package/dist/src/core/local.js +0 -2
- package/dist/src/core/local.js.map +0 -1
- package/dist/src/core/logical-id.d.ts +0 -3
- package/dist/src/core/logical-id.d.ts.map +0 -1
- package/dist/src/core/logical-id.js +0 -48
- package/dist/src/core/logical-id.js.map +0 -1
- package/dist/src/core/output.d.ts +0 -8
- package/dist/src/core/output.d.ts.map +0 -1
- package/dist/src/core/output.js +0 -2
- package/dist/src/core/output.js.map +0 -1
- package/dist/src/core/provider.d.ts +0 -7
- package/dist/src/core/provider.d.ts.map +0 -1
- package/dist/src/core/provider.js +0 -2
- package/dist/src/core/provider.js.map +0 -1
- package/dist/src/core/resource.d.ts +0 -30
- package/dist/src/core/resource.d.ts.map +0 -1
- package/dist/src/core/resource.js +0 -2
- package/dist/src/core/resource.js.map +0 -1
- package/dist/src/core/synthesize.d.ts +0 -78
- package/dist/src/core/synthesize.d.ts.map +0 -1
- package/dist/src/core/synthesize.js +0 -293
- package/dist/src/core/synthesize.js.map +0 -1
- package/dist/src/core/synthesize.spec.d.ts.map +0 -1
- package/dist/src/core/synthesize.spec.js +0 -506
- package/dist/src/core/synthesize.spec.js.map +0 -1
- package/dist/src/core/terraform-json.d.ts +0 -36
- package/dist/src/core/terraform-json.d.ts.map +0 -1
- package/dist/src/core/terraform-json.js.map +0 -1
- package/dist/src/core/tokens.d.ts +0 -62
- package/dist/src/core/tokens.d.ts.map +0 -1
- package/dist/src/core/tokens.js +0 -133
- package/dist/src/core/tokens.js.map +0 -1
- package/dist/src/core/tokens.spec.js +0 -119
- package/dist/src/core/tokens.spec.js.map +0 -1
- package/dist/src/core/tree.d.ts +0 -6
- package/dist/src/core/tree.d.ts.map +0 -1
- package/dist/src/core/tree.js +0 -52
- package/dist/src/core/tree.js.map +0 -1
- package/dist/src/core/tree.spec.js +0 -138
- package/dist/src/core/tree.spec.js.map +0 -1
- package/dist/src/core/validate.d.ts +0 -5
- package/dist/src/core/validate.d.ts.map +0 -1
- package/dist/src/core/validate.js +0 -94
- package/dist/src/core/validate.js.map +0 -1
- package/dist/src/core/validate.spec.d.ts.map +0 -1
- package/dist/src/core/validate.spec.js +0 -69
- package/dist/src/core/validate.spec.js.map +0 -1
- package/dist/src/core/variable.d.ts +0 -14
- package/dist/src/core/variable.d.ts.map +0 -1
- package/dist/src/core/variable.js +0 -2
- package/dist/src/core/variable.js.map +0 -1
- package/dist/src/facade/app.d.ts +0 -23
- package/dist/src/facade/app.d.ts.map +0 -1
- package/dist/src/facade/app.js +0 -55
- package/dist/src/facade/app.js.map +0 -1
- package/dist/src/facade/backends/backend.d.ts +0 -7
- package/dist/src/facade/backends/backend.d.ts.map +0 -1
- package/dist/src/facade/backends/backend.js +0 -15
- package/dist/src/facade/backends/backend.js.map +0 -1
- package/dist/src/facade/backends/gcs.d.ts +0 -18
- package/dist/src/facade/backends/gcs.d.ts.map +0 -1
- package/dist/src/facade/backends/gcs.js +0 -28
- package/dist/src/facade/backends/gcs.js.map +0 -1
- package/dist/src/facade/backends/index.d.ts +0 -6
- package/dist/src/facade/backends/index.d.ts.map +0 -1
- package/dist/src/facade/backends/index.js +0 -6
- package/dist/src/facade/backends/index.js.map +0 -1
- package/dist/src/facade/backends/local.d.ts +0 -12
- package/dist/src/facade/backends/local.d.ts.map +0 -1
- package/dist/src/facade/backends/local.js +0 -16
- package/dist/src/facade/backends/local.js.map +0 -1
- package/dist/src/facade/backends/remote.d.ts +0 -22
- package/dist/src/facade/backends/remote.d.ts.map +0 -1
- package/dist/src/facade/backends/remote.js +0 -23
- package/dist/src/facade/backends/remote.js.map +0 -1
- package/dist/src/facade/backends/s3.d.ts +0 -24
- package/dist/src/facade/backends/s3.d.ts.map +0 -1
- package/dist/src/facade/backends/s3.js +0 -39
- package/dist/src/facade/backends/s3.js.map +0 -1
- package/dist/src/facade/construct.d.ts +0 -9
- package/dist/src/facade/construct.d.ts.map +0 -1
- package/dist/src/facade/construct.js +0 -32
- package/dist/src/facade/construct.js.map +0 -1
- package/dist/src/facade/datasource.d.ts +0 -19
- package/dist/src/facade/datasource.d.ts.map +0 -1
- package/dist/src/facade/datasource.js +0 -33
- package/dist/src/facade/datasource.js.map +0 -1
- package/dist/src/facade/facade.spec.d.ts +0 -2
- package/dist/src/facade/facade.spec.d.ts.map +0 -1
- package/dist/src/facade/facade.spec.js +0 -434
- package/dist/src/facade/facade.spec.js.map +0 -1
- package/dist/src/facade/local.d.ts +0 -15
- package/dist/src/facade/local.d.ts.map +0 -1
- package/dist/src/facade/local.js +0 -27
- package/dist/src/facade/local.js.map +0 -1
- package/dist/src/facade/output.d.ts +0 -18
- package/dist/src/facade/output.d.ts.map +0 -1
- package/dist/src/facade/output.js +0 -29
- package/dist/src/facade/output.js.map +0 -1
- package/dist/src/facade/provider.d.ts +0 -13
- package/dist/src/facade/provider.d.ts.map +0 -1
- package/dist/src/facade/provider.js +0 -25
- package/dist/src/facade/provider.js.map +0 -1
- package/dist/src/facade/resource.d.ts +0 -34
- package/dist/src/facade/resource.d.ts.map +0 -1
- package/dist/src/facade/resource.js +0 -58
- package/dist/src/facade/resource.js.map +0 -1
- package/dist/src/facade/stack.d.ts +0 -11
- package/dist/src/facade/stack.d.ts.map +0 -1
- package/dist/src/facade/stack.js +0 -28
- package/dist/src/facade/stack.js.map +0 -1
- package/dist/src/facade/variable.d.ts +0 -27
- package/dist/src/facade/variable.d.ts.map +0 -1
- package/dist/src/facade/variable.js +0 -45
- package/dist/src/facade/variable.js.map +0 -1
- package/dist/src/generated/fn.d.ts +0 -599
- package/dist/src/generated/fn.d.ts.map +0 -1
- package/dist/src/generated/fn.js +0 -998
- package/dist/src/generated/fn.js.map +0 -1
- package/dist/src/index.d.ts +0 -35
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -23
- package/dist/src/index.js.map +0 -1
- /package/dist/{src/codegen/__tests__ → codegen}/generator.spec.d.ts +0 -0
- /package/dist/{src/core → core}/synthesize.spec.d.ts +0 -0
- /package/dist/{src/core → core}/terraform-json.js +0 -0
- /package/dist/{src/core → core}/tokens.spec.d.ts +0 -0
- /package/dist/{src/core → core}/tree.spec.d.ts +0 -0
- /package/dist/{src/core → core}/validate.spec.d.ts +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { Construct } from "./construct.js";
|
|
5
|
+
import { getStack } from "./stack-registry.js";
|
|
6
|
+
import { TerraformElement } from "./terraform-element.js";
|
|
7
|
+
const ContextSchema = z.record(z.string(), z.unknown());
|
|
8
|
+
const APP_SYMBOL = Symbol.for("tfts/App");
|
|
9
|
+
export const CONTEXT_ENV = "CDKTF_CONTEXT_JSON";
|
|
10
|
+
export class App extends Construct {
|
|
11
|
+
outdir;
|
|
12
|
+
hclOutput;
|
|
13
|
+
targetStackId;
|
|
14
|
+
skipValidation;
|
|
15
|
+
skipBackendValidation;
|
|
16
|
+
manifest;
|
|
17
|
+
_synthesized = false;
|
|
18
|
+
constructor(config = {}) {
|
|
19
|
+
super(undefined, "");
|
|
20
|
+
Object.defineProperty(this, APP_SYMBOL, { value: true });
|
|
21
|
+
this.outdir = config.outdir ?? process.env["CDKTF_OUTDIR"] ?? "cdktf.out";
|
|
22
|
+
const envHclOutput = process.env["SYNTH_HCL_OUTPUT"];
|
|
23
|
+
this.hclOutput =
|
|
24
|
+
envHclOutput !== undefined ? envHclOutput === "true" : (config.hclOutput ?? false);
|
|
25
|
+
this.targetStackId = process.env["CDKTF_TARGET_STACK_ID"];
|
|
26
|
+
this.skipValidation = config.skipValidation ?? false;
|
|
27
|
+
this.skipBackendValidation = config.skipBackendValidation ?? false;
|
|
28
|
+
this.loadContext(config.context);
|
|
29
|
+
if (config.stackTraces === false) {
|
|
30
|
+
this.node.setContext("DISABLE_STACK_TRACE_IN_METADATA", true);
|
|
31
|
+
}
|
|
32
|
+
this.node.setContext("cdktfVersion", "0.0.0");
|
|
33
|
+
this.manifest = {
|
|
34
|
+
version: "0.0.0",
|
|
35
|
+
outdir: this.outdir,
|
|
36
|
+
hclOutput: this.hclOutput,
|
|
37
|
+
stacks: {},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static asApp(x) {
|
|
41
|
+
if (x instanceof App) {
|
|
42
|
+
return x;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
static of(construct) {
|
|
47
|
+
let current = construct;
|
|
48
|
+
while (current !== undefined) {
|
|
49
|
+
const app = App.asApp(current);
|
|
50
|
+
if (app !== null) {
|
|
51
|
+
return app;
|
|
52
|
+
}
|
|
53
|
+
current = current._scope;
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
synth() {
|
|
58
|
+
if (this._synthesized) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const stacks = this.node.findAll().flatMap((c) => {
|
|
62
|
+
const stack = this.asStack(c);
|
|
63
|
+
return stack !== null ? [stack] : [];
|
|
64
|
+
});
|
|
65
|
+
for (const stack of stacks) {
|
|
66
|
+
stack.prepareStack();
|
|
67
|
+
}
|
|
68
|
+
for (const stack of stacks) {
|
|
69
|
+
stack.synthesize();
|
|
70
|
+
}
|
|
71
|
+
if (!this.skipValidation) {
|
|
72
|
+
const errors = [];
|
|
73
|
+
for (const construct of this.node.findAll()) {
|
|
74
|
+
errors.push(...construct.node.validate());
|
|
75
|
+
}
|
|
76
|
+
if (errors.length > 0) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
this.writeManifest();
|
|
81
|
+
this._synthesized = true;
|
|
82
|
+
}
|
|
83
|
+
asStack(c) {
|
|
84
|
+
if (!(c instanceof TerraformElement)) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
if (c.kind !== "stack") {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const stack = getStack(c);
|
|
91
|
+
return stack !== undefined ? stack : null;
|
|
92
|
+
}
|
|
93
|
+
loadContext(defaults = {}) {
|
|
94
|
+
for (const [k, v] of Object.entries(defaults)) {
|
|
95
|
+
this.node.setContext(k, v);
|
|
96
|
+
}
|
|
97
|
+
const contextJson = process.env[CONTEXT_ENV];
|
|
98
|
+
if (contextJson !== undefined && contextJson !== "") {
|
|
99
|
+
const parsed = ContextSchema.safeParse(JSON.parse(contextJson));
|
|
100
|
+
if (parsed.success) {
|
|
101
|
+
for (const [k, v] of Object.entries(parsed.data)) {
|
|
102
|
+
this.node.setContext(k, v);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
writeManifest() {
|
|
108
|
+
if (!existsSync(this.outdir)) {
|
|
109
|
+
mkdirSync(this.outdir, { recursive: true });
|
|
110
|
+
}
|
|
111
|
+
const manifestPath = join(this.outdir, "manifest.json");
|
|
112
|
+
writeFileSync(manifestPath, JSON.stringify(this.manifest, null, 2));
|
|
113
|
+
}
|
|
114
|
+
crossStackReference(fromStack, toStack, identifier) {
|
|
115
|
+
toStack.addDependency(fromStack);
|
|
116
|
+
const outputId = fromStack.registerOutgoingCrossStackReference(identifier);
|
|
117
|
+
const remoteState = toStack.registerIncomingCrossStackReference(fromStack);
|
|
118
|
+
return remoteState.getString(outputId);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/facade/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IConstruct } from "./construct.js";
|
|
2
|
+
export type IAspect = {
|
|
3
|
+
visit(node: IConstruct): void;
|
|
4
|
+
};
|
|
5
|
+
export declare class Aspects {
|
|
6
|
+
static of(scope: IConstruct): Aspects;
|
|
7
|
+
private readonly _aspects;
|
|
8
|
+
private constructor();
|
|
9
|
+
add(aspect: IAspect): void;
|
|
10
|
+
get all(): IAspect[];
|
|
11
|
+
}
|
|
12
|
+
export declare function invokeAspects(root: IConstruct): void;
|
|
13
|
+
//# sourceMappingURL=aspects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspects.d.ts","sourceRoot":"","sources":["../../src/facade/aspects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,qBAAa,OAAO;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAUrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C,OAAO;IAEP,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI1B,IAAI,GAAG,IAAI,OAAO,EAAE,CAEnB;CACF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAepD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const aspectsRegistry = new WeakMap();
|
|
2
|
+
export class Aspects {
|
|
3
|
+
static of(scope) {
|
|
4
|
+
const existing = aspectsRegistry.get(scope);
|
|
5
|
+
if (existing !== undefined) {
|
|
6
|
+
return existing;
|
|
7
|
+
}
|
|
8
|
+
const aspects = new Aspects();
|
|
9
|
+
aspectsRegistry.set(scope, aspects);
|
|
10
|
+
return aspects;
|
|
11
|
+
}
|
|
12
|
+
_aspects = [];
|
|
13
|
+
constructor() { }
|
|
14
|
+
add(aspect) {
|
|
15
|
+
this._aspects.push(aspect);
|
|
16
|
+
}
|
|
17
|
+
get all() {
|
|
18
|
+
return [...this._aspects];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function invokeAspects(root) {
|
|
22
|
+
recurse(root, []);
|
|
23
|
+
function recurse(construct, inheritedAspects) {
|
|
24
|
+
const localAspects = Aspects.of(construct).all;
|
|
25
|
+
const allAspects = [...inheritedAspects, ...localAspects];
|
|
26
|
+
for (const aspect of allAspects) {
|
|
27
|
+
aspect.visit(construct);
|
|
28
|
+
}
|
|
29
|
+
for (const child of construct.node.children) {
|
|
30
|
+
recurse(child, allAspects);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=aspects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspects.js","sourceRoot":"","sources":["../../src/facade/aspects.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,IAAI,OAAO,EAAuB,CAAC;AAM3D,MAAM,OAAO,OAAO;IAClB,MAAM,CAAC,EAAE,CAAC,KAAiB;QACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEgB,QAAQ,GAAc,EAAE,CAAC;IAE1C,gBAAuB,CAAC;IAExB,GAAG,CAAC,MAAe;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAElB,SAAS,OAAO,CAAC,SAAqB,EAAE,gBAA2B;QACjE,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;QAC/C,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC,CAAC;QAE1D,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Construct } from "../construct.js";
|
|
2
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
3
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
4
|
+
export declare function getHostNameType(hostname?: string): "tfc" | "tfe";
|
|
5
|
+
export declare class CloudBackend extends TerraformBackend {
|
|
6
|
+
private readonly props;
|
|
7
|
+
constructor(scope: Construct, props: CloudBackendConfig);
|
|
8
|
+
toMetadata(): Record<string, unknown>;
|
|
9
|
+
getRemoteStateDataSource(scope: Construct, name: string, _fromStack: string): TerraformRemoteState;
|
|
10
|
+
toTerraform(): Record<string, unknown>;
|
|
11
|
+
protected synthesizeAttributes(): Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export type CloudBackendConfig = {
|
|
14
|
+
readonly organization: string;
|
|
15
|
+
readonly workspaces: NamedCloudWorkspace | TaggedCloudWorkspaces;
|
|
16
|
+
readonly hostname?: string;
|
|
17
|
+
readonly token?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare abstract class CloudWorkspace {
|
|
20
|
+
abstract toTerraform(): Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export declare class NamedCloudWorkspace extends CloudWorkspace {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
readonly project?: string | undefined;
|
|
25
|
+
constructor(name: string, project?: string | undefined);
|
|
26
|
+
toTerraform(): Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export declare class TaggedCloudWorkspaces extends CloudWorkspace {
|
|
29
|
+
readonly tags: string[];
|
|
30
|
+
readonly project?: string | undefined;
|
|
31
|
+
constructor(tags: string[], project?: string | undefined);
|
|
32
|
+
toTerraform(): Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=cloud-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-backend.d.ts","sourceRoot":"","sources":["../../../src/facade/backends/cloud-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAGhE;AAED,qBAAa,YAAa,SAAQ,gBAAgB;IAG9C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADtB,KAAK,EAAE,SAAS,EACC,KAAK,EAAE,kBAAkB;IAKnC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKrC,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,oBAAoB;IAcd,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAe5B,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMnE;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,8BAAsB,cAAc;IAClC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAChD;AAED,qBAAa,mBAAoB,SAAQ,cAAc;aAEnC,IAAI,EAAE,MAAM;aACZ,OAAO,CAAC,EAAE,MAAM;gBADhB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,YAAA;IAKlC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMvC;AAED,qBAAa,qBAAsB,SAAQ,cAAc;aAErC,IAAI,EAAE,MAAM,EAAE;aACd,OAAO,CAAC,EAAE,MAAM;gBADhB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,MAAM,YAAA;IAKlC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMvC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
2
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
3
|
+
import { keysToSnakeCase } from "../util.js";
|
|
4
|
+
import { DataTerraformRemoteStateRemote } from "./remote-backend.js";
|
|
5
|
+
export function getHostNameType(hostname) {
|
|
6
|
+
if (hostname === undefined || hostname === "")
|
|
7
|
+
return "tfc";
|
|
8
|
+
return hostname.startsWith("app.terraform.io") ? "tfc" : "tfe";
|
|
9
|
+
}
|
|
10
|
+
export class CloudBackend extends TerraformBackend {
|
|
11
|
+
props;
|
|
12
|
+
constructor(scope, props) {
|
|
13
|
+
super(scope, "backend");
|
|
14
|
+
this.props = props;
|
|
15
|
+
}
|
|
16
|
+
toMetadata() {
|
|
17
|
+
const cloud = getHostNameType(this.props.hostname);
|
|
18
|
+
return { cloud };
|
|
19
|
+
}
|
|
20
|
+
getRemoteStateDataSource(scope, name, _fromStack) {
|
|
21
|
+
if (this.props.workspaces instanceof NamedCloudWorkspace) {
|
|
22
|
+
return new DataTerraformRemoteStateRemote(scope, name, {
|
|
23
|
+
organization: this.props.organization,
|
|
24
|
+
workspaces: { name: this.props.workspaces.name },
|
|
25
|
+
token: this.props.token,
|
|
26
|
+
hostname: this.props.hostname,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
throw new Error("The cloud backend does not support cross-stack references when using tagged workspaces. Please use named workspaces instead.");
|
|
30
|
+
}
|
|
31
|
+
toTerraform() {
|
|
32
|
+
return {
|
|
33
|
+
terraform: {
|
|
34
|
+
cloud: {
|
|
35
|
+
...keysToSnakeCase({
|
|
36
|
+
organization: this.props.organization,
|
|
37
|
+
hostname: this.props.hostname,
|
|
38
|
+
token: this.props.token,
|
|
39
|
+
}),
|
|
40
|
+
workspaces: this.props.workspaces.toTerraform(),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
synthesizeAttributes() {
|
|
46
|
+
return keysToSnakeCase({
|
|
47
|
+
...this.props,
|
|
48
|
+
workspaces: this.props.workspaces.toTerraform(),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export class CloudWorkspace {
|
|
53
|
+
}
|
|
54
|
+
export class NamedCloudWorkspace extends CloudWorkspace {
|
|
55
|
+
name;
|
|
56
|
+
project;
|
|
57
|
+
constructor(name, project) {
|
|
58
|
+
super();
|
|
59
|
+
this.name = name;
|
|
60
|
+
this.project = project;
|
|
61
|
+
}
|
|
62
|
+
toTerraform() {
|
|
63
|
+
return {
|
|
64
|
+
name: this.name,
|
|
65
|
+
...(this.project !== undefined && this.project !== "" ? { project: this.project } : {}),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class TaggedCloudWorkspaces extends CloudWorkspace {
|
|
70
|
+
tags;
|
|
71
|
+
project;
|
|
72
|
+
constructor(tags, project) {
|
|
73
|
+
super();
|
|
74
|
+
this.tags = tags;
|
|
75
|
+
this.project = project;
|
|
76
|
+
}
|
|
77
|
+
toTerraform() {
|
|
78
|
+
return {
|
|
79
|
+
tags: this.tags,
|
|
80
|
+
...(this.project !== undefined && this.project !== "" ? { project: this.project } : {}),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=cloud-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-backend.js","sourceRoot":"","sources":["../../../src/facade/backends/cloud-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Construct } from "../construct.js";
|
|
2
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
3
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
4
|
+
export declare class GcsBackend extends TerraformBackend {
|
|
5
|
+
private readonly props;
|
|
6
|
+
constructor(scope: Construct, props: GcsBackendConfig);
|
|
7
|
+
getRemoteStateDataSource(scope: Construct, name: string, _fromStack: string): TerraformRemoteState;
|
|
8
|
+
toTerraform(): Record<string, unknown>;
|
|
9
|
+
protected synthesizeAttributes(): Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export declare class DataTerraformRemoteStateGcs extends TerraformRemoteState {
|
|
12
|
+
constructor(scope: Construct, id: string, config: DataTerraformRemoteStateGcsConfig);
|
|
13
|
+
}
|
|
14
|
+
export type GcsBackendConfig = {
|
|
15
|
+
readonly bucket: string;
|
|
16
|
+
readonly credentials?: string;
|
|
17
|
+
readonly accessToken?: string;
|
|
18
|
+
readonly prefix?: string;
|
|
19
|
+
readonly encryptionKey?: string;
|
|
20
|
+
readonly impersonateServiceAccount?: string;
|
|
21
|
+
readonly impersonateServiceAccountDelegates?: string[];
|
|
22
|
+
readonly kmsEncryptionKey?: string;
|
|
23
|
+
readonly storageCustomEndpoint?: string;
|
|
24
|
+
};
|
|
25
|
+
export type DataTerraformRemoteStateGcsConfig = GcsBackendConfig & {
|
|
26
|
+
readonly workspace?: string;
|
|
27
|
+
readonly defaults?: Record<string, unknown>;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=gcs-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcs-backend.d.ts","sourceRoot":"","sources":["../../../src/facade/backends/gcs-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,qBAAa,UAAW,SAAQ,gBAAgB;IAG5C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADtB,KAAK,EAAE,SAAS,EACC,KAAK,EAAE,gBAAgB;IAKjC,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,oBAAoB;IAOd,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAU5B,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnE;AAED,qBAAa,2BAA4B,SAAQ,oBAAoB;gBACvD,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC;CAGpF;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kCAAkC,CAAC,EAAE,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,gBAAgB,GAAG;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
2
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
3
|
+
import { keysToSnakeCase } from "../util.js";
|
|
4
|
+
export class GcsBackend extends TerraformBackend {
|
|
5
|
+
props;
|
|
6
|
+
constructor(scope, props) {
|
|
7
|
+
super(scope, "backend");
|
|
8
|
+
this.props = props;
|
|
9
|
+
}
|
|
10
|
+
getRemoteStateDataSource(scope, name, _fromStack) {
|
|
11
|
+
return new DataTerraformRemoteStateGcs(scope, name, {
|
|
12
|
+
...this.props,
|
|
13
|
+
workspace: "${terraform.workspace}",
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
toTerraform() {
|
|
17
|
+
return {
|
|
18
|
+
terraform: {
|
|
19
|
+
backend: {
|
|
20
|
+
gcs: keysToSnakeCase({ ...this.props }),
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
synthesizeAttributes() {
|
|
26
|
+
return keysToSnakeCase({ ...this.props });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class DataTerraformRemoteStateGcs extends TerraformRemoteState {
|
|
30
|
+
constructor(scope, id, config) {
|
|
31
|
+
super(scope, id, "gcs", keysToSnakeCase(config));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=gcs-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcs-backend.js","sourceRoot":"","sources":["../../../src/facade/backends/gcs-backend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,OAAO,UAAW,SAAQ,gBAAgB;IAG3B;IAFnB,YACE,KAAgB,EACC,KAAuB;QAExC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAFP,UAAK,GAAL,KAAK,CAAkB;IAG1C,CAAC;IAEQ,wBAAwB,CAC/B,KAAgB,EAChB,IAAY,EACZ,UAAkB;QAElB,OAAO,IAAI,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE;YAClD,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,wBAAwB;SACpC,CAAC,CAAC;IACL,CAAC;IAEQ,WAAW;QAClB,OAAO;YACL,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,GAAG,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;iBACxC;aACF;SACF,CAAC;IACJ,CAAC;IAEkB,oBAAoB;QACrC,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,oBAAoB;IACnE,YAAY,KAAgB,EAAE,EAAU,EAAE,MAAyC;QACjF,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/facade/backends/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/facade/backends/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Construct } from "../construct.js";
|
|
2
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
3
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
4
|
+
export declare class RemoteBackend extends TerraformBackend {
|
|
5
|
+
private readonly props;
|
|
6
|
+
constructor(scope: Construct, props: RemoteBackendConfig);
|
|
7
|
+
toMetadata(): Record<string, unknown>;
|
|
8
|
+
getRemoteStateDataSource(scope: Construct, name: string, _fromStack: string): TerraformRemoteState;
|
|
9
|
+
toTerraform(): Record<string, unknown>;
|
|
10
|
+
protected synthesizeAttributes(): Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export declare class DataTerraformRemoteStateRemote extends TerraformRemoteState {
|
|
13
|
+
constructor(scope: Construct, id: string, config: DataTerraformRemoteStateRemoteConfig);
|
|
14
|
+
}
|
|
15
|
+
export type IRemoteWorkspace = {};
|
|
16
|
+
export declare class NamedRemoteWorkspace implements IRemoteWorkspace {
|
|
17
|
+
readonly name: string;
|
|
18
|
+
constructor(name: string);
|
|
19
|
+
}
|
|
20
|
+
export declare class PrefixedRemoteWorkspaces implements IRemoteWorkspace {
|
|
21
|
+
readonly prefix: string;
|
|
22
|
+
constructor(prefix: string);
|
|
23
|
+
}
|
|
24
|
+
export type RemoteBackendConfig = {
|
|
25
|
+
readonly hostname?: string;
|
|
26
|
+
readonly organization: string;
|
|
27
|
+
readonly token?: string;
|
|
28
|
+
readonly workspaces: IRemoteWorkspace;
|
|
29
|
+
};
|
|
30
|
+
export type DataTerraformRemoteStateRemoteConfig = RemoteBackendConfig & {
|
|
31
|
+
readonly workspace?: string;
|
|
32
|
+
readonly defaults?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=remote-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../../../src/facade/backends/remote-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,qBAAa,aAAc,SAAQ,gBAAgB;IAG/C,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADtB,KAAK,EAAE,SAAS,EACC,KAAK,EAAE,mBAAmB;IAKpC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKrC,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,oBAAoB;IAMd,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAU5B,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnE;AAED,qBAAa,8BAA+B,SAAQ,oBAAoB;gBAC1D,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oCAAoC;CAGvF;AAED,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAElC,qBAAa,oBAAqB,YAAW,gBAAgB;aAC/B,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CACzC;AAED,qBAAa,wBAAyB,YAAW,gBAAgB;aACnC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAC3C;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,mBAAmB,GAAG;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
2
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
3
|
+
import { keysToSnakeCase } from "../util.js";
|
|
4
|
+
import { getHostNameType } from "./cloud-backend.js";
|
|
5
|
+
export class RemoteBackend extends TerraformBackend {
|
|
6
|
+
props;
|
|
7
|
+
constructor(scope, props) {
|
|
8
|
+
super(scope, "backend");
|
|
9
|
+
this.props = props;
|
|
10
|
+
}
|
|
11
|
+
toMetadata() {
|
|
12
|
+
const cloud = getHostNameType(this.props.hostname);
|
|
13
|
+
return { cloud };
|
|
14
|
+
}
|
|
15
|
+
getRemoteStateDataSource(scope, name, _fromStack) {
|
|
16
|
+
return new DataTerraformRemoteStateRemote(scope, name, {
|
|
17
|
+
...this.props,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
toTerraform() {
|
|
21
|
+
return {
|
|
22
|
+
terraform: {
|
|
23
|
+
backend: {
|
|
24
|
+
remote: keysToSnakeCase({ ...this.props }),
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
synthesizeAttributes() {
|
|
30
|
+
return keysToSnakeCase({ ...this.props });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class DataTerraformRemoteStateRemote extends TerraformRemoteState {
|
|
34
|
+
constructor(scope, id, config) {
|
|
35
|
+
super(scope, id, "remote", keysToSnakeCase(config));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class NamedRemoteWorkspace {
|
|
39
|
+
name;
|
|
40
|
+
constructor(name) {
|
|
41
|
+
this.name = name;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class PrefixedRemoteWorkspaces {
|
|
45
|
+
prefix;
|
|
46
|
+
constructor(prefix) {
|
|
47
|
+
this.prefix = prefix;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=remote-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-backend.js","sourceRoot":"","sources":["../../../src/facade/backends/remote-backend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAG9B;IAFnB,YACE,KAAgB,EACC,KAA0B;QAE3C,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAFP,UAAK,GAAL,KAAK,CAAqB;IAG7C,CAAC;IAEQ,UAAU;QACjB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAEQ,wBAAwB,CAC/B,KAAgB,EAChB,IAAY,EACZ,UAAkB;QAElB,OAAO,IAAI,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE;YACrD,GAAG,IAAI,CAAC,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAEQ,WAAW;QAClB,OAAO;YACL,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,MAAM,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC;IAEkB,oBAAoB;QACrC,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,oBAAoB;IACtE,YAAY,KAAgB,EAAE,EAAU,EAAE,MAA4C;QACpF,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC;CACF;AAID,MAAM,OAAO,oBAAoB;IACH;IAA5B,YAA4B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;CAC7C;AAED,MAAM,OAAO,wBAAwB;IACP;IAA5B,YAA4B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;CAC/C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Construct } from "../construct.js";
|
|
2
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
3
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
4
|
+
export declare class S3Backend extends TerraformBackend {
|
|
5
|
+
private readonly props;
|
|
6
|
+
constructor(scope: Construct, props: S3BackendConfig);
|
|
7
|
+
getRemoteStateDataSource(scope: Construct, name: string, _fromStack: string): TerraformRemoteState;
|
|
8
|
+
toTerraform(): Record<string, unknown>;
|
|
9
|
+
protected synthesizeAttributes(): Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export declare class DataTerraformRemoteStateS3 extends TerraformRemoteState {
|
|
12
|
+
constructor(scope: Construct, id: string, config: DataTerraformRemoteStateS3Config);
|
|
13
|
+
}
|
|
14
|
+
export type S3BackendConfig = {
|
|
15
|
+
readonly bucket: string;
|
|
16
|
+
readonly key: string;
|
|
17
|
+
readonly region?: string;
|
|
18
|
+
readonly endpoint?: string;
|
|
19
|
+
readonly encrypt?: boolean;
|
|
20
|
+
readonly acl?: string;
|
|
21
|
+
readonly accessKey?: string;
|
|
22
|
+
readonly secretKey?: string;
|
|
23
|
+
readonly kmsKeyId?: string;
|
|
24
|
+
readonly dynamodbTable?: string;
|
|
25
|
+
readonly profile?: string;
|
|
26
|
+
readonly sharedCredentialsFile?: string;
|
|
27
|
+
readonly sharedCredentialsFiles?: string[];
|
|
28
|
+
readonly sharedConfigFiles?: string[];
|
|
29
|
+
readonly token?: string;
|
|
30
|
+
readonly roleArn?: string;
|
|
31
|
+
readonly assumeRolePolicy?: string;
|
|
32
|
+
readonly assumeRolePolicyArns?: string[];
|
|
33
|
+
readonly assumeRoleTags?: Record<string, string>;
|
|
34
|
+
readonly assumeRoleTransitiveTagKeys?: string[];
|
|
35
|
+
readonly externalId?: string;
|
|
36
|
+
readonly sessionName?: string;
|
|
37
|
+
readonly workspaceKeyPrefix?: string;
|
|
38
|
+
readonly dynamodbEndpoint?: string;
|
|
39
|
+
readonly iamEndpoint?: string;
|
|
40
|
+
readonly stsEndpoint?: string;
|
|
41
|
+
readonly stsRegion?: string;
|
|
42
|
+
readonly forcePathStyle?: boolean;
|
|
43
|
+
readonly usePathStyle?: boolean;
|
|
44
|
+
readonly skipCredentialsValidation?: boolean;
|
|
45
|
+
readonly skipRegionValidation?: boolean;
|
|
46
|
+
readonly skipRequestingAccountId?: boolean;
|
|
47
|
+
readonly skipMetadataApiCheck?: boolean;
|
|
48
|
+
readonly skipS3Checksum?: boolean;
|
|
49
|
+
readonly sseCustomerKey?: string;
|
|
50
|
+
readonly maxRetries?: number;
|
|
51
|
+
readonly useLegacyWorkflow?: boolean;
|
|
52
|
+
readonly allowedAccountIds?: string[];
|
|
53
|
+
readonly forbiddenAccountIds?: string[];
|
|
54
|
+
readonly customCaBundle?: string;
|
|
55
|
+
readonly ec2MetadataServiceEndpoint?: string;
|
|
56
|
+
readonly ec2MetadataServiceEndpointMode?: string;
|
|
57
|
+
readonly httpProxy?: string;
|
|
58
|
+
readonly httpsProxy?: string;
|
|
59
|
+
readonly insecure?: boolean;
|
|
60
|
+
readonly noProxy?: string;
|
|
61
|
+
readonly retryMode?: string;
|
|
62
|
+
readonly endpoints?: S3BackendEndpointConfig;
|
|
63
|
+
readonly assumeRole?: S3BackendAssumeRoleConfig;
|
|
64
|
+
readonly assumeRoleWithWebIdentity?: S3BackendAssumeRoleWithWebIdentityConfig;
|
|
65
|
+
};
|
|
66
|
+
export type S3BackendEndpointConfig = {
|
|
67
|
+
readonly dynamodb?: string;
|
|
68
|
+
readonly iam?: string;
|
|
69
|
+
readonly s3?: string;
|
|
70
|
+
readonly sso?: string;
|
|
71
|
+
readonly sts?: string;
|
|
72
|
+
};
|
|
73
|
+
export type S3BackendAssumeRoleConfig = {
|
|
74
|
+
readonly roleArn: string;
|
|
75
|
+
readonly duration?: string;
|
|
76
|
+
readonly externalId?: string;
|
|
77
|
+
readonly policy?: string;
|
|
78
|
+
readonly policyArns?: string[];
|
|
79
|
+
readonly sessionName?: string;
|
|
80
|
+
readonly sourceIdentity?: string;
|
|
81
|
+
readonly tags?: Record<string, string>;
|
|
82
|
+
readonly transitiveTagKeys?: string[];
|
|
83
|
+
};
|
|
84
|
+
export type S3BackendAssumeRoleWithWebIdentityConfig = {
|
|
85
|
+
readonly roleArn?: string;
|
|
86
|
+
readonly duration?: string;
|
|
87
|
+
readonly policy?: string;
|
|
88
|
+
readonly policyArns?: string[];
|
|
89
|
+
readonly sessionName?: string;
|
|
90
|
+
readonly webIdentityToken?: string;
|
|
91
|
+
readonly webIdentityTokenFile?: string;
|
|
92
|
+
};
|
|
93
|
+
export type DataTerraformRemoteStateS3Config = S3BackendConfig & {
|
|
94
|
+
readonly workspace?: string;
|
|
95
|
+
readonly defaults?: Record<string, unknown>;
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=s3-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-backend.d.ts","sourceRoot":"","sources":["../../../src/facade/backends/s3-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TerraformBackend } from "../terraform-backend.js";
|
|
2
|
+
import { TerraformRemoteState } from "../terraform-remote-state.js";
|
|
3
|
+
import { keysToSnakeCase } from "../util.js";
|
|
4
|
+
export class S3Backend extends TerraformBackend {
|
|
5
|
+
props;
|
|
6
|
+
constructor(scope, props) {
|
|
7
|
+
super(scope, "backend");
|
|
8
|
+
this.props = props;
|
|
9
|
+
}
|
|
10
|
+
getRemoteStateDataSource(scope, name, _fromStack) {
|
|
11
|
+
return new DataTerraformRemoteStateS3(scope, name, {
|
|
12
|
+
...this.props,
|
|
13
|
+
workspace: "${terraform.workspace}",
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
toTerraform() {
|
|
17
|
+
return {
|
|
18
|
+
terraform: {
|
|
19
|
+
backend: {
|
|
20
|
+
s3: keysToSnakeCase({ ...this.props }),
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
synthesizeAttributes() {
|
|
26
|
+
return keysToSnakeCase({ ...this.props });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class DataTerraformRemoteStateS3 extends TerraformRemoteState {
|
|
30
|
+
constructor(scope, id, config) {
|
|
31
|
+
super(scope, id, "s3", keysToSnakeCase(config));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=s3-backend.js.map
|