@quadnix/octo 0.0.30 → 0.2.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/LICENSE +661 -0
- package/README.md +117 -8
- package/dist/app.type.d.ts +277 -19
- package/dist/app.type.js +80 -9
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +10 -6
- package/dist/decorators/action.decorator.js +19 -6
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.d.ts +12 -5
- package/dist/decorators/anchor.decorator.js +12 -5
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/enable-hook.decorator.d.ts +1 -1
- package/dist/decorators/enable-hook.decorator.js +1 -1
- package/dist/decorators/factory.decorator.d.ts +18 -34
- package/dist/decorators/factory.decorator.js +18 -34
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +4 -6
- package/dist/decorators/model.decorator.js +2 -7
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +16 -10
- package/dist/decorators/module.decorator.js +16 -10
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +7 -2
- package/dist/decorators/on-event.decorator.js +5 -0
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +50 -1
- package/dist/decorators/resource.decorator.js +38 -1
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/decorators/validate.decorator.d.ts +15 -1
- package/dist/decorators/validate.decorator.js +15 -1
- package/dist/decorators/validate.decorator.js.map +1 -1
- package/dist/errors/container.error.d.ts +18 -0
- package/dist/errors/container.error.js +18 -0
- package/dist/errors/container.error.js.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/module.error.d.ts +6 -0
- package/dist/errors/module.error.js +6 -0
- package/dist/errors/module.error.js.map +1 -1
- package/dist/errors/node.error.d.ts +56 -0
- package/dist/errors/node.error.js +56 -0
- package/dist/errors/node.error.js.map +1 -1
- package/dist/errors/schema.error.d.ts +14 -1
- package/dist/errors/schema.error.js +11 -1
- package/dist/errors/schema.error.js.map +1 -1
- package/dist/errors/terraform.error.d.ts +20 -0
- package/dist/errors/terraform.error.js +24 -0
- package/dist/errors/terraform.error.js.map +1 -0
- package/dist/errors/transaction.error.d.ts +93 -2
- package/dist/errors/transaction.error.js +83 -0
- package/dist/errors/transaction.error.js.map +1 -1
- package/dist/events/action.event.d.ts +8 -4
- package/dist/events/action.event.js +2 -4
- package/dist/events/action.event.js.map +1 -1
- package/dist/events/command.event.d.ts +43 -0
- package/dist/events/command.event.js +33 -0
- package/dist/events/command.event.js.map +1 -0
- package/dist/events/event.model.d.ts +26 -8
- package/dist/events/event.model.js +15 -7
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +1 -7
- package/dist/events/hook/commit.hook.event.js +0 -6
- package/dist/events/hook/commit.hook.event.js.map +1 -1
- package/dist/events/hook/hook.event.d.ts +1 -3
- package/dist/events/hook/hook.event.js +0 -2
- package/dist/events/hook/hook.event.js.map +1 -1
- package/dist/events/hook/model.hook.event.d.ts +1 -7
- package/dist/events/hook/model.hook.event.js +0 -6
- package/dist/events/hook/model.hook.event.js.map +1 -1
- package/dist/events/hook/resource.hook.event.d.ts +1 -7
- package/dist/events/hook/resource.hook.event.js +0 -6
- package/dist/events/hook/resource.hook.event.js.map +1 -1
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/mode-result.event.d.ts +57 -0
- package/dist/events/mode-result.event.js +24 -0
- package/dist/events/mode-result.event.js.map +1 -0
- package/dist/events/mode.event.d.ts +61 -0
- package/dist/events/mode.event.js +32 -0
- package/dist/events/mode.event.js.map +1 -0
- package/dist/events/module.event.d.ts +7 -5
- package/dist/events/module.event.js +3 -4
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +19 -15
- package/dist/events/registration.event.js +18 -14
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +16 -13
- package/dist/events/serialization.event.js +15 -12
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/state.event.d.ts +102 -0
- package/dist/events/state.event.js +69 -0
- package/dist/events/state.event.js.map +1 -0
- package/dist/events/terraform.event.d.ts +78 -0
- package/dist/events/terraform.event.js +55 -0
- package/dist/events/terraform.event.js.map +1 -0
- package/dist/events/transaction.event.d.ts +3 -40
- package/dist/events/transaction.event.js +1 -29
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.d.ts +54 -13
- package/dist/functions/container/container.js +64 -19
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.d.ts +43 -29
- package/dist/functions/container/test-container.js +71 -43
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.d.ts +84 -23
- package/dist/functions/dependency/dependency.js +84 -14
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/aggregate-resource-actions.d.ts +19 -0
- package/dist/functions/diff/aggregate-resource-actions.js +41 -0
- package/dist/functions/diff/aggregate-resource-actions.js.map +1 -0
- package/dist/functions/diff/diff-metadata.d.ts +21 -3
- package/dist/functions/diff/diff-metadata.js +18 -0
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +68 -7
- package/dist/functions/diff/diff.js +44 -3
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/hook/commit.hook.d.ts +16 -1
- package/dist/functions/hook/commit.hook.js +21 -6
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/model-action.hook.d.ts +16 -1
- package/dist/functions/hook/model-action.hook.js +21 -6
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/hook/resource-action.hook.d.ts +16 -1
- package/dist/functions/hook/resource-action.hook.js +21 -6
- package/dist/functions/hook/resource-action.hook.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +23 -2
- package/dist/functions/node/node-action.abstract.js +22 -8
- package/dist/functions/node/node-action.abstract.js.map +1 -1
- package/dist/functions/node/node.abstract.d.ts +56 -5
- package/dist/functions/node/node.abstract.js +106 -22
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +3 -1
- package/dist/functions/schema/schema.d.ts +7 -0
- package/dist/functions/schema/schema.js +10 -1
- package/dist/functions/schema/schema.js.map +1 -1
- package/dist/index.d.ts +12 -6
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/index.type.d.ts +5 -0
- package/dist/index.type.js +2 -0
- package/dist/index.type.js.map +1 -0
- package/dist/main.d.ts +245 -14
- package/dist/main.js +377 -72
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +43 -7
- package/dist/models/account/account.model.js +56 -8
- package/dist/models/account/account.model.js.map +1 -1
- package/dist/models/account/account.schema.d.ts +13 -1
- package/dist/models/account/account.schema.js +12 -0
- package/dist/models/account/account.schema.js.map +1 -1
- package/dist/models/app/app.model.d.ts +13 -8
- package/dist/models/app/app.model.js +17 -32
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/app/app.schema.d.ts +6 -0
- package/dist/models/app/app.schema.js +6 -0
- package/dist/models/app/app.schema.js.map +1 -1
- package/dist/models/deployment/deployment.model.d.ts +13 -1
- package/dist/models/deployment/deployment.model.js +16 -4
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +6 -0
- package/dist/models/deployment/deployment.schema.js +6 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +15 -3
- package/dist/models/environment/environment.model.js +22 -10
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/environment/environment.schema.d.ts +2 -0
- package/dist/models/environment/environment.schema.js +2 -0
- package/dist/models/environment/environment.schema.js.map +1 -1
- package/dist/models/execution/execution.model.d.ts +21 -3
- package/dist/models/execution/execution.model.js +47 -29
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/execution/execution.schema.d.ts +11 -0
- package/dist/models/execution/execution.schema.js +11 -0
- package/dist/models/execution/execution.schema.js.map +1 -1
- package/dist/models/filesystem/filesystem.model.d.ts +27 -1
- package/dist/models/filesystem/filesystem.model.js +30 -4
- package/dist/models/filesystem/filesystem.model.js.map +1 -1
- package/dist/models/filesystem/filesystem.schema.d.ts +5 -0
- package/dist/models/filesystem/filesystem.schema.js +5 -0
- package/dist/models/filesystem/filesystem.schema.js.map +1 -1
- package/dist/models/image/image.model.d.ts +19 -5
- package/dist/models/image/image.model.js +25 -11
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/image/image.schema.d.ts +8 -0
- package/dist/models/image/image.schema.js +8 -0
- package/dist/models/image/image.schema.js.map +1 -1
- package/dist/models/model-action.interface.d.ts +17 -4
- package/dist/models/model.abstract.d.ts +96 -1
- package/dist/models/model.abstract.js +107 -8
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +3 -0
- package/dist/models/pipeline/pipeline.model.d.ts +14 -2
- package/dist/models/pipeline/pipeline.model.js +19 -7
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/pipeline/pipeline.schema.d.ts +8 -0
- package/dist/models/pipeline/pipeline.schema.js +8 -0
- package/dist/models/pipeline/pipeline.schema.js.map +1 -1
- package/dist/models/region/region.model.d.ts +16 -1
- package/dist/models/region/region.model.js +19 -4
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/region/region.schema.d.ts +6 -0
- package/dist/models/region/region.schema.js +6 -0
- package/dist/models/region/region.schema.js.map +1 -1
- package/dist/models/server/server.model.d.ts +15 -3
- package/dist/models/server/server.model.js +18 -6
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/server/server.schema.d.ts +3 -1
- package/dist/models/server/server.schema.js +3 -1
- package/dist/models/server/server.schema.js.map +1 -1
- package/dist/models/service/service.model.d.ts +37 -6
- package/dist/models/service/service.model.js +65 -11
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +48 -1
- package/dist/models/service/service.schema.js +56 -1
- package/dist/models/service/service.schema.js.map +1 -1
- package/dist/models/subnet/subnet.model.d.ts +27 -3
- package/dist/models/subnet/subnet.model.js +40 -16
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/models/subnet/subnet.schema.d.ts +9 -0
- package/dist/models/subnet/subnet.schema.js +9 -0
- package/dist/models/subnet/subnet.schema.js.map +1 -1
- package/dist/modes/apply-transaction.d.ts +23 -0
- package/dist/modes/apply-transaction.js +25 -0
- package/dist/modes/apply-transaction.js.map +1 -0
- package/dist/modes/commit.mode.d.ts +54 -0
- package/dist/modes/commit.mode.js +235 -0
- package/dist/modes/commit.mode.js.map +1 -0
- package/dist/modes/generate.mode.d.ts +30 -0
- package/dist/modes/generate.mode.js +50 -0
- package/dist/modes/generate.mode.js.map +1 -0
- package/dist/modes/run-action.mode.d.ts +30 -0
- package/dist/modes/run-action.mode.js +140 -0
- package/dist/modes/run-action.mode.js.map +1 -0
- package/dist/modes/validate.mode.d.ts +186 -0
- package/dist/modes/validate.mode.js +558 -0
- package/dist/modes/validate.mode.js.map +1 -0
- package/dist/modules/module.abstract.d.ts +51 -0
- package/dist/modules/module.abstract.js +36 -0
- package/dist/modules/module.abstract.js.map +1 -1
- package/dist/modules/module.container.d.ts +43 -1
- package/dist/modules/module.container.js +77 -5
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.d.ts +139 -25
- package/dist/modules/test-module.container.js +383 -199
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/anchor.abstract.d.ts +32 -1
- package/dist/overlays/anchor.abstract.js +42 -11
- package/dist/overlays/anchor.abstract.js.map +1 -1
- package/dist/overlays/anchor.schema.d.ts +21 -0
- package/dist/overlays/anchor.schema.js +21 -0
- package/dist/overlays/anchor.schema.js.map +1 -1
- package/dist/overlays/overlay-data.repository.d.ts +18 -0
- package/dist/overlays/overlay-data.repository.js +18 -0
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.d.ts +56 -1
- package/dist/overlays/overlay.abstract.js +79 -20
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.schema.d.ts +20 -0
- package/dist/overlays/overlay.schema.js +20 -0
- package/dist/overlays/overlay.schema.js.map +1 -1
- package/dist/resources/resource-action.interface.d.ts +29 -3
- package/dist/resources/resource-data.repository.d.ts +63 -1
- package/dist/resources/resource-data.repository.js +94 -4
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.d.ts +163 -6
- package/dist/resources/resource.abstract.js +223 -59
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/resource.interface.d.ts +0 -2
- package/dist/resources/resource.schema.d.ts +39 -1
- package/dist/resources/resource.schema.js +38 -0
- package/dist/resources/resource.schema.js.map +1 -1
- package/dist/resources/terraform-resource.abstract.d.ts +44 -0
- package/dist/resources/terraform-resource.abstract.js +45 -0
- package/dist/resources/terraform-resource.abstract.js.map +1 -0
- package/dist/services/event/event.service.d.ts +32 -5
- package/dist/services/event/event.service.js +58 -16
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +82 -5
- package/dist/services/input/input.service.js +143 -12
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/schema-translation/schema-translation.service.d.ts +9 -0
- package/dist/services/schema-translation/schema-translation.service.js +9 -0
- package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.d.ts +25 -3
- package/dist/services/serialization/model/model-serialization.service.js +113 -62
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +36 -6
- package/dist/services/serialization/resource/resource-serialization.service.js +77 -28
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +67 -4
- package/dist/services/state-management/local.state-provider.js +168 -41
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/remote.state-provider.d.ts +216 -0
- package/dist/services/state-management/remote.state-provider.js +645 -0
- package/dist/services/state-management/remote.state-provider.js.map +1 -0
- package/dist/services/state-management/state-management.service.d.ts +195 -17
- package/dist/services/state-management/state-management.service.js +259 -10
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +98 -3
- package/dist/services/state-management/state-provider.interface.js +14 -1
- package/dist/services/state-management/state-provider.interface.js.map +1 -1
- package/dist/services/state-management/terraform-state.service.d.ts +99 -0
- package/dist/services/state-management/terraform-state.service.js +197 -0
- package/dist/services/state-management/terraform-state.service.js.map +1 -0
- package/dist/services/state-management/test.state-provider.d.ts +42 -4
- package/dist/services/state-management/test.state-provider.js +77 -25
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/terraform/terraform.service.d.ts +480 -0
- package/dist/services/terraform/terraform.service.js +1082 -0
- package/dist/services/terraform/terraform.service.js.map +1 -0
- package/dist/services/terraform/terraform.type.d.ts +387 -0
- package/dist/services/terraform/terraform.type.js +579 -0
- package/dist/services/terraform/terraform.type.js.map +1 -0
- package/dist/services/transaction/transaction.service.d.ts +110 -10
- package/dist/services/transaction/transaction.service.js +570 -251
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +15 -3
- package/dist/services/validation/validation.service.js +12 -0
- package/dist/services/validation/validation.service.js.map +1 -1
- package/dist/utilities/array/array.utility.d.ts +3 -0
- package/dist/utilities/array/array.utility.js +3 -0
- package/dist/utilities/array/array.utility.js.map +1 -1
- package/dist/{functions → utilities}/diff/diff.utility.d.ts +19 -3
- package/dist/{functions → utilities}/diff/diff.utility.js +57 -41
- package/dist/utilities/diff/diff.utility.js.map +1 -0
- package/dist/utilities/file/file.utility.d.ts +16 -2
- package/dist/utilities/file/file.utility.js +23 -61
- package/dist/utilities/file/file.utility.js.map +1 -1
- package/dist/utilities/hcl/hcl.utility.d.ts +128 -0
- package/dist/utilities/hcl/hcl.utility.js +402 -0
- package/dist/utilities/hcl/hcl.utility.js.map +1 -0
- package/dist/utilities/http/http.utility.d.ts +57 -0
- package/dist/utilities/http/http.utility.js +98 -0
- package/dist/utilities/http/http.utility.js.map +1 -0
- package/dist/utilities/node/node.utility.d.ts +3 -0
- package/dist/utilities/node/node.utility.js +3 -0
- package/dist/utilities/node/node.utility.js.map +1 -1
- package/dist/utilities/object/object.utility.d.ts +12 -0
- package/dist/utilities/object/object.utility.js +12 -0
- package/dist/utilities/object/object.utility.js.map +1 -1
- package/dist/utilities/project/project.utility.d.ts +28 -0
- package/dist/utilities/project/project.utility.js +35 -0
- package/dist/utilities/project/project.utility.js.map +1 -0
- package/dist/utilities/string/string.utility.d.ts +41 -0
- package/dist/utilities/string/string.utility.js +65 -0
- package/dist/utilities/string/string.utility.js.map +1 -0
- package/dist/utilities/terraform/terraform.utility.d.ts +276 -0
- package/dist/utilities/terraform/terraform.utility.js +623 -0
- package/dist/utilities/terraform/terraform.utility.js.map +1 -0
- package/dist/utilities/test-helpers/test-classes.d.ts +36 -30
- package/dist/utilities/test-helpers/test-classes.js +38 -39
- package/dist/utilities/test-helpers/test-classes.js.map +1 -1
- package/dist/utilities/test-helpers/test-models.d.ts +8 -1
- package/dist/utilities/test-helpers/test-models.js +37 -12
- package/dist/utilities/test-helpers/test-models.js.map +1 -1
- package/dist/utilities/test-helpers/test-modes.d.ts +315 -0
- package/dist/utilities/test-helpers/test-modes.js +486 -0
- package/dist/utilities/test-helpers/test-modes.js.map +1 -0
- package/dist/utilities/test-helpers/test-modules.d.ts +47 -0
- package/dist/utilities/test-helpers/test-modules.js +85 -0
- package/dist/utilities/test-helpers/test-modules.js.map +1 -0
- package/dist/utilities/test-helpers/test-overlays.d.ts +20 -2
- package/dist/utilities/test-helpers/test-overlays.js +56 -6
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
- package/dist/utilities/test-helpers/test-resources.d.ts +23 -3
- package/dist/utilities/test-helpers/test-resources.js +83 -23
- package/dist/utilities/test-helpers/test-resources.js.map +1 -1
- package/dist/utilities/validation/validation.utility.d.ts +24 -0
- package/dist/utilities/validation/validation.utility.js +24 -0
- package/dist/utilities/validation/validation.utility.js.map +1 -1
- package/package.json +12 -6
- package/dist/functions/diff/diff.utility.js.map +0 -1
- package/dist/services/capture/capture.service.d.ts +0 -19
- package/dist/services/capture/capture.service.js +0 -43
- package/dist/services/capture/capture.service.js.map +0 -1
- package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -20
- package/dist/services/state-management/local-encryption.state-provider.js +0 -90
- package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
- package/dist/utilities/cidr/cidr.utility.d.ts +0 -10
- package/dist/utilities/cidr/cidr.utility.js +0 -51
- package/dist/utilities/cidr/cidr.utility.js.map +0 -1
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The terraform variable holding the octo project root.
|
|
3
|
+
*
|
|
4
|
+
* A generated folder names files on the developer's disk relative to this variable rather than by
|
|
5
|
+
* absolute path, so the same intent renders the same text on every machine. Octo supplies the value
|
|
6
|
+
* as `TF_VAR_OCTO_PROJECT_ROOT` on every terragrunt command it runs.
|
|
7
|
+
*/
|
|
8
|
+
export const PROJECT_ROOT_VARIABLE_NAME = 'OCTO_PROJECT_ROOT';
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export function toHclNode(value) {
|
|
13
|
+
if (value instanceof HclExpression) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
if (Array.isArray(value)) {
|
|
17
|
+
return new ListHclNode(value.map(toHclNode));
|
|
18
|
+
}
|
|
19
|
+
if (value !== null && typeof value === 'object') {
|
|
20
|
+
return new MapHclNode(Object.entries(value).map(([k, v]) => [k, toHclNode(v)]));
|
|
21
|
+
}
|
|
22
|
+
return new LiteralHclNode(value);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A rendered terraform expression.
|
|
26
|
+
*
|
|
27
|
+
* You never construct one directly - {@link TerraformModuleScope}'s `raw()`, `jsonencode()`,
|
|
28
|
+
* `mapAttr()`, `type()`, and `getRef()` return them, and you pass them back as attribute values.
|
|
29
|
+
*
|
|
30
|
+
* @group Resources
|
|
31
|
+
*/
|
|
32
|
+
export class HclExpression {
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
collectRefs(_into) { }
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export class ExpressionHclNode extends HclExpression {
|
|
42
|
+
/**
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
constructor(text) {
|
|
46
|
+
super();
|
|
47
|
+
this.text = text;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Renders the expression verbatim. e.g. `aws_vpc.my-vpc.id`.
|
|
51
|
+
*/
|
|
52
|
+
render() {
|
|
53
|
+
return this.text;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
export class InterpolatedStringHclNode extends HclExpression {
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
constructor(parts) {
|
|
64
|
+
super();
|
|
65
|
+
this.parts = parts;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
collectRefs(into) {
|
|
71
|
+
this.parts.forEach((p) => {
|
|
72
|
+
if (p instanceof HclExpression) {
|
|
73
|
+
p.collectRefs(into);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Renders a quoted terraform string built from text parts and embedded `${...}` expressions,
|
|
79
|
+
* e.g. the `local-exec` command of an external resource wrapper:
|
|
80
|
+
* `"octo ... --input my-vpc.VpcId=${var.my_vpc_VpcId} > ..."`.
|
|
81
|
+
*/
|
|
82
|
+
render(indent, context) {
|
|
83
|
+
const content = this.parts.map((p) => (typeof p === 'string' ? p : `\${${p.render(indent, context)}}`)).join('');
|
|
84
|
+
return `"${content}"`;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
export class JsonEncodeHclNode extends HclExpression {
|
|
91
|
+
/**
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
constructor(subject) {
|
|
95
|
+
super();
|
|
96
|
+
this.subject = subject;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
collectRefs(into) {
|
|
102
|
+
const walk = (value) => {
|
|
103
|
+
if (value instanceof HclExpression) {
|
|
104
|
+
value.collectRefs(into);
|
|
105
|
+
}
|
|
106
|
+
else if (Array.isArray(value)) {
|
|
107
|
+
value.forEach(walk);
|
|
108
|
+
}
|
|
109
|
+
else if (value !== null && typeof value === 'object') {
|
|
110
|
+
Object.values(value).forEach(walk);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
walk(this.subject);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Renders a `jsonencode({...})` call. The subject is a plain JS structure;
|
|
117
|
+
* leaf values may be {@link HclExpression} nodes, which render as expressions inside the encoded object.
|
|
118
|
+
*/
|
|
119
|
+
render(currentIndent, context) {
|
|
120
|
+
const formatValue = (value, indent) => {
|
|
121
|
+
if (value instanceof HclExpression) {
|
|
122
|
+
return value.render(indent, context);
|
|
123
|
+
}
|
|
124
|
+
if (typeof value === 'string') {
|
|
125
|
+
return `"${value}"`;
|
|
126
|
+
}
|
|
127
|
+
if (typeof value !== 'object' || value === null) {
|
|
128
|
+
return String(value);
|
|
129
|
+
}
|
|
130
|
+
const nextIndent = indent + context.step;
|
|
131
|
+
if (Array.isArray(value)) {
|
|
132
|
+
if (value.length === 0) {
|
|
133
|
+
return '[]';
|
|
134
|
+
}
|
|
135
|
+
const items = value.map((v) => formatValue(v, nextIndent)).join(', ');
|
|
136
|
+
return `[${items}]`;
|
|
137
|
+
}
|
|
138
|
+
const entries = Object.entries(value).map(([k, v]) => {
|
|
139
|
+
const key = /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(k) ? k : `"${k}"`;
|
|
140
|
+
return `${nextIndent}${key} = ${formatValue(v, nextIndent)}`;
|
|
141
|
+
});
|
|
142
|
+
return `{\n${entries.join('\n')}\n${indent}}`;
|
|
143
|
+
};
|
|
144
|
+
const innerIndent = currentIndent + context.step;
|
|
145
|
+
if (Array.isArray(this.subject)) {
|
|
146
|
+
if (this.subject.length === 0) {
|
|
147
|
+
return 'jsonencode([])';
|
|
148
|
+
}
|
|
149
|
+
const items = this.subject.map((v) => `${innerIndent}${formatValue(v, innerIndent)}`).join(',\n');
|
|
150
|
+
return `jsonencode([\n${items}\n${currentIndent}])`;
|
|
151
|
+
}
|
|
152
|
+
const body = Object.entries(this.subject)
|
|
153
|
+
.map(([k, v]) => `${innerIndent}${k} = ${formatValue(v, innerIndent)}`)
|
|
154
|
+
.join('\n');
|
|
155
|
+
return `jsonencode({\n${body}\n${currentIndent}})`;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
export class ListHclNode extends HclExpression {
|
|
162
|
+
/**
|
|
163
|
+
* @internal
|
|
164
|
+
*/
|
|
165
|
+
constructor(items) {
|
|
166
|
+
super();
|
|
167
|
+
this.items = items;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* @internal
|
|
171
|
+
*/
|
|
172
|
+
collectRefs(into) {
|
|
173
|
+
this.items.forEach((i) => i.collectRefs(into));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Renders a `[a, b, c]` list value in a single-line;
|
|
177
|
+
* items render with the current indent.
|
|
178
|
+
*/
|
|
179
|
+
render(indent, context) {
|
|
180
|
+
return `[${this.items.map((i) => i.render(indent, context)).join(', ')}]`;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @internal
|
|
185
|
+
*/
|
|
186
|
+
export class LiteralHclNode extends HclExpression {
|
|
187
|
+
/**
|
|
188
|
+
* @internal
|
|
189
|
+
*/
|
|
190
|
+
constructor(value) {
|
|
191
|
+
super();
|
|
192
|
+
this.value = value;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Renders string with quotes, other values verbatim.
|
|
196
|
+
*/
|
|
197
|
+
render() {
|
|
198
|
+
return typeof this.value === 'string' ? `"${this.value}"` : `${this.value}`;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* @internal
|
|
203
|
+
*/
|
|
204
|
+
export class MapHclNode extends HclExpression {
|
|
205
|
+
/**
|
|
206
|
+
* @internal
|
|
207
|
+
*/
|
|
208
|
+
constructor(entries) {
|
|
209
|
+
super();
|
|
210
|
+
this.entries = entries;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
collectRefs(into) {
|
|
216
|
+
this.entries.forEach(([, v]) => v.collectRefs(into));
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Renders a `{ key = value }` map value, one entry per line.
|
|
220
|
+
* This is a map ATTRIBUTE (`key = { }`),
|
|
221
|
+
* not a block (`key { }`) - see {@link TerraformService.mapAttr} for the distinction.
|
|
222
|
+
*/
|
|
223
|
+
render(indent, context) {
|
|
224
|
+
const nextIndent = indent + context.step;
|
|
225
|
+
const entries = this.entries.map(([k, v]) => `${nextIndent}${k} = ${v.render(nextIndent, context)}`);
|
|
226
|
+
return `{\n${entries.join('\n')}\n${indent}}`;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* @internal
|
|
231
|
+
*/
|
|
232
|
+
export class MapHclNodeRaw extends HclExpression {
|
|
233
|
+
/**
|
|
234
|
+
* @internal
|
|
235
|
+
*/
|
|
236
|
+
constructor(lines) {
|
|
237
|
+
super();
|
|
238
|
+
this.lines = lines;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Renders a brace-wrapped body with pre-rendered lines,
|
|
242
|
+
* used for `required_providers` entries where the `source =` alignment is part of the expected output.
|
|
243
|
+
*/
|
|
244
|
+
render(indent, context) {
|
|
245
|
+
const nextIndent = indent + context.step;
|
|
246
|
+
return `{\n${this.lines.map((l) => `${nextIndent}${l}`).join('\n')}\n${indent}}`;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* This is the deferred cross-reference primitive in the terraform layer.
|
|
251
|
+
* When one resource needs another resource's output,
|
|
252
|
+
* we can't write the final HCL until every resource has been registered
|
|
253
|
+
* to find out if the producer is in the same module folder or different one.
|
|
254
|
+
* It is a placeholder that stands in for "resource X's response key Y" and gets resolved to HCL at the very end.
|
|
255
|
+
*
|
|
256
|
+
* - `entireResponse`: A normal RefHclNode targets one key (vpc-1.VpcId).
|
|
257
|
+
* When true, the ref points at the producer's entire response map rather than a single key (and `key` is empty).
|
|
258
|
+
* Used to feed an external resource's whole result into a child external resource's inputs.
|
|
259
|
+
* The map is wrapped in `jsonencode(...)` so it survives as a single string argument/trigger value.
|
|
260
|
+
*/
|
|
261
|
+
export class RefHclNode extends HclExpression {
|
|
262
|
+
/**
|
|
263
|
+
* @internal
|
|
264
|
+
*/
|
|
265
|
+
constructor(resourceId, key, entireResponse = false) {
|
|
266
|
+
super();
|
|
267
|
+
this.resourceId = resourceId;
|
|
268
|
+
this.key = key;
|
|
269
|
+
this.entireResponse = entireResponse;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* @internal
|
|
273
|
+
*/
|
|
274
|
+
collectRefs(into) {
|
|
275
|
+
into.push(this);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Renders a reference to a resource's response key whose final form is unknown until render time:
|
|
279
|
+
* same folder → the producer's native expression; other folder → a `var.*` wired through terragrunt.
|
|
280
|
+
* This is what `getRef()` returns. Resolution happens via {@link RenderContext.resolveRef}.
|
|
281
|
+
*/
|
|
282
|
+
render(_indent, context) {
|
|
283
|
+
const resolved = context.resolveRef(this);
|
|
284
|
+
return this.entireResponse ? `jsonencode(${resolved})` : resolved;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* @internal
|
|
289
|
+
*/
|
|
290
|
+
export class TypeHclNode extends HclExpression {
|
|
291
|
+
/**
|
|
292
|
+
* @internal
|
|
293
|
+
*/
|
|
294
|
+
constructor(schema) {
|
|
295
|
+
super();
|
|
296
|
+
this.schema = schema;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Renders a terraform type expression for `variable` declarations:
|
|
300
|
+
* - primitives render bare (`string`),
|
|
301
|
+
* - arrays render as `list(...)`,
|
|
302
|
+
* - objects as `object({ ... })`.
|
|
303
|
+
*/
|
|
304
|
+
render(currentIndent, context) {
|
|
305
|
+
const formatType = (value, indent) => {
|
|
306
|
+
if (value instanceof HclExpression) {
|
|
307
|
+
return value.render(indent, context);
|
|
308
|
+
}
|
|
309
|
+
const primitives = ['any', 'bool', 'number', 'string'];
|
|
310
|
+
if (primitives.includes(value)) {
|
|
311
|
+
return value;
|
|
312
|
+
}
|
|
313
|
+
if (Array.isArray(value)) {
|
|
314
|
+
return `list(${formatType(value[0], indent)})`;
|
|
315
|
+
}
|
|
316
|
+
if (typeof value === 'object' && value !== null) {
|
|
317
|
+
const nextIndent = indent + context.step;
|
|
318
|
+
const fields = Object.entries(value).map(([k, v]) => {
|
|
319
|
+
return `${nextIndent}${k} = ${formatType(v, nextIndent)}`;
|
|
320
|
+
});
|
|
321
|
+
return `object({\n${fields.join('\n')}\n${indent}})`;
|
|
322
|
+
}
|
|
323
|
+
return String(value);
|
|
324
|
+
};
|
|
325
|
+
return formatType(this.schema, currentIndent);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* @internal
|
|
330
|
+
*/
|
|
331
|
+
export class TerraformAttribute {
|
|
332
|
+
/**
|
|
333
|
+
* @internal
|
|
334
|
+
*/
|
|
335
|
+
constructor(key, value) {
|
|
336
|
+
this.key = key;
|
|
337
|
+
this.value = value;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* @internal
|
|
341
|
+
*/
|
|
342
|
+
collectRefs(into) {
|
|
343
|
+
this.value.collectRefs(into);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Renders `<indent><key> = <value>`.
|
|
347
|
+
*/
|
|
348
|
+
render(indent, context) {
|
|
349
|
+
return `${indent}${this.key} = ${this.value.render(indent, context)}`;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* A nested `<type> { ... }` block inside a resource or data source.
|
|
354
|
+
*
|
|
355
|
+
* @group Resources
|
|
356
|
+
*/
|
|
357
|
+
export class TerraformBlock {
|
|
358
|
+
/**
|
|
359
|
+
* @internal
|
|
360
|
+
*/
|
|
361
|
+
constructor(type) {
|
|
362
|
+
this.type = type;
|
|
363
|
+
this.children = [];
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Sets an argument on this block. The value is converted to HCL, so a plain JS value works as
|
|
367
|
+
* well as an {@link HclExpression}.
|
|
368
|
+
*/
|
|
369
|
+
attribute(key, value) {
|
|
370
|
+
this.children.push(new TerraformAttribute(key, toHclNode(value)));
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Opens a nested block, e.g. `image_scanning_configuration { ... }`.
|
|
374
|
+
*/
|
|
375
|
+
block(type) {
|
|
376
|
+
const newBlock = new TerraformBlock(type);
|
|
377
|
+
this.children.push(newBlock);
|
|
378
|
+
return newBlock;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* @internal
|
|
382
|
+
*/
|
|
383
|
+
collectRefs(into) {
|
|
384
|
+
this.children.forEach((c) => c.collectRefs(into));
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Renders a generic `<type> { ...children... }` block, e.g. `provider "aws"` or `triggers`.
|
|
388
|
+
* Prints the block with children one indent step deeper.
|
|
389
|
+
*/
|
|
390
|
+
render(indent, context) {
|
|
391
|
+
const childIndent = indent + context.step;
|
|
392
|
+
const childrenRendered = this.children.map((child) => child.render(childIndent, context));
|
|
393
|
+
return `${indent}${this.type} {\n${childrenRendered.join('\n')}\n${indent}}`;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* A `data "<type>" "<name>"` source, as returned by {@link TerraformModuleScope.addTerraformData}.
|
|
398
|
+
*
|
|
399
|
+
* @group Resources
|
|
400
|
+
*/
|
|
401
|
+
export class TerraformData {
|
|
402
|
+
/**
|
|
403
|
+
* @internal
|
|
404
|
+
*/
|
|
405
|
+
get address() {
|
|
406
|
+
return `data.${this.type}.${this.name}`;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* @internal
|
|
410
|
+
*/
|
|
411
|
+
constructor(type, name) {
|
|
412
|
+
this.type = type;
|
|
413
|
+
this.name = name;
|
|
414
|
+
this.children = [];
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Sets an argument on this block. The value is converted to HCL, so a plain JS value works as
|
|
418
|
+
* well as an {@link HclExpression}.
|
|
419
|
+
*/
|
|
420
|
+
attribute(key, value) {
|
|
421
|
+
this.children.push(new TerraformAttribute(key, toHclNode(value)));
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Opens a nested block, e.g. `image_scanning_configuration { ... }`.
|
|
425
|
+
*/
|
|
426
|
+
block(type) {
|
|
427
|
+
const newBlock = new TerraformBlock(type);
|
|
428
|
+
this.children.push(newBlock);
|
|
429
|
+
return newBlock;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* @internal
|
|
433
|
+
*/
|
|
434
|
+
collectRefs(into) {
|
|
435
|
+
this.children.forEach((c) => c.collectRefs(into));
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Returns an expression referencing an attribute of this data source.
|
|
439
|
+
*/
|
|
440
|
+
ref(attribute) {
|
|
441
|
+
return new ExpressionHclNode(`${this.address}.${attribute}`);
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Renders a `data "<type>" "<name>" { ... }` source.
|
|
445
|
+
* E.g. `data.external.my-name { ... }`
|
|
446
|
+
*/
|
|
447
|
+
render(context) {
|
|
448
|
+
const childrenRendered = this.children.map((child) => child.render(context.step, context));
|
|
449
|
+
return `data "${this.type}" "${this.name}" {\n${childrenRendered.join('\n')}\n}`;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* @internal
|
|
454
|
+
*/
|
|
455
|
+
export class TerraformOutput {
|
|
456
|
+
/**
|
|
457
|
+
* @internal
|
|
458
|
+
*/
|
|
459
|
+
constructor(name, value, sensitive = false) {
|
|
460
|
+
this.name = name;
|
|
461
|
+
this.value = value;
|
|
462
|
+
this.sensitive = sensitive;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Renders an `output "<name>" { value = ... }` block. Marks the output `sensitive = true`
|
|
466
|
+
* when it carries a secret, which Terraform requires for any root output containing sensitive data.
|
|
467
|
+
*/
|
|
468
|
+
render(context) {
|
|
469
|
+
const body = [`${context.step}value = ${this.value.render(context.step, context)}`];
|
|
470
|
+
if (this.sensitive) {
|
|
471
|
+
body.push(`${context.step}sensitive = true`);
|
|
472
|
+
}
|
|
473
|
+
return `output "${this.name}" {\n${body.join('\n')}\n}`;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* A `resource "<type>" "<name>"` block, as returned by
|
|
478
|
+
* {@link OctoTerraformResourceScope.addTerraformResource}.
|
|
479
|
+
*
|
|
480
|
+
* @group Resources
|
|
481
|
+
*/
|
|
482
|
+
export class TerraformResource {
|
|
483
|
+
/**
|
|
484
|
+
* The terraform address of this resource, `<type>.<name>`. Interpolate it to reference an
|
|
485
|
+
* attribute terraform only knows after an apply.
|
|
486
|
+
*/
|
|
487
|
+
get address() {
|
|
488
|
+
return `${this.type}.${this.name}`;
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* @internal
|
|
492
|
+
*/
|
|
493
|
+
constructor(type, name, intraDependsOn) {
|
|
494
|
+
this.type = type;
|
|
495
|
+
this.name = name;
|
|
496
|
+
this.intraDependsOn = intraDependsOn;
|
|
497
|
+
this.children = [];
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Sets an argument on this block. The value is converted to HCL, so a plain JS value works as
|
|
501
|
+
* well as an {@link HclExpression}.
|
|
502
|
+
*/
|
|
503
|
+
attribute(key, value) {
|
|
504
|
+
this.children.push(new TerraformAttribute(key, toHclNode(value)));
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Opens a nested block, e.g. `image_scanning_configuration { ... }`.
|
|
508
|
+
*/
|
|
509
|
+
block(type) {
|
|
510
|
+
const newBlock = new TerraformBlock(type);
|
|
511
|
+
this.children.push(newBlock);
|
|
512
|
+
return newBlock;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* @internal
|
|
516
|
+
*/
|
|
517
|
+
collectRefs(into) {
|
|
518
|
+
this.children.forEach((c) => c.collectRefs(into));
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Renders a `resource "<type>" "<name>" { ... }` block.
|
|
522
|
+
*
|
|
523
|
+
* There are 3 types of dependencies a terraform resource can have - intra, same folder parent, cross folder parent.
|
|
524
|
+
* - A cross folder parent is represented using TerraGrunt's dependency block - no depends_on needed.
|
|
525
|
+
* - `parentDependsOn` carries the same folder addresses of the octo resource's explicit parents
|
|
526
|
+
* derived in wiring phase. These are dependencies that cannot be captured by attribute references alone.
|
|
527
|
+
* E.g. between vpc and igw.
|
|
528
|
+
* - intra-resource dependencies are between two terraform resources produced by the same octo resource.
|
|
529
|
+
* E.g. between s3 bucket and s3 policy.
|
|
530
|
+
*
|
|
531
|
+
* The parentDependsOn and intraDependsOn are merged into one `depends_on` list.
|
|
532
|
+
*/
|
|
533
|
+
render(context, parentDependsOn = []) {
|
|
534
|
+
const childrenRendered = this.children.map((child) => child.render(context.step, context));
|
|
535
|
+
const dependsOn = [...parentDependsOn, ...this.intraDependsOn];
|
|
536
|
+
const dependsOnRendered = dependsOn.length > 0 ? `${context.step}depends_on = [${dependsOn.join(', ')}]` : undefined;
|
|
537
|
+
return `resource "${this.type}" "${this.name}" {\n${childrenRendered.join('\n')}${dependsOnRendered ? `\n\n${dependsOnRendered}` : ''}\n}`;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* A module input variable, as returned by {@link TerraformModuleScope.variable}.
|
|
542
|
+
*
|
|
543
|
+
* @group Resources
|
|
544
|
+
*/
|
|
545
|
+
export class TerraformVariable {
|
|
546
|
+
/**
|
|
547
|
+
* Returns the `var.<name>` expression for consuming this variable.
|
|
548
|
+
*/
|
|
549
|
+
get ref() {
|
|
550
|
+
return new ExpressionHclNode(`var.${this.name}`);
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* @internal
|
|
554
|
+
*/
|
|
555
|
+
constructor(name, typeExpression, options) {
|
|
556
|
+
this.name = name;
|
|
557
|
+
this.typeExpression = typeExpression;
|
|
558
|
+
this.options = options;
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* @internal
|
|
562
|
+
*/
|
|
563
|
+
collectRefs(into) {
|
|
564
|
+
this.typeExpression.collectRefs(into);
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Renders a `variable "<name>" { type, default, sensitive }` declaration (user-defined variables).
|
|
568
|
+
*/
|
|
569
|
+
render(context) {
|
|
570
|
+
const body = [];
|
|
571
|
+
body.push(`${context.step}type = ${this.typeExpression.render(context.step, context)}`);
|
|
572
|
+
body.push(`${context.step}default = ${toHclNode(this.options.default).render(context.step, context)}`);
|
|
573
|
+
if (this.options.sensitive) {
|
|
574
|
+
body.push(`${context.step}sensitive = true`);
|
|
575
|
+
}
|
|
576
|
+
return `variable "${this.name}" {\n${body.join('\n')}\n}`;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
//# sourceMappingURL=terraform.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform.type.js","sourceRoot":"","sources":["../../../src/services/terraform/terraform.type.ts"],"names":[],"mappings":"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"}
|