cdktf

package module
v0.21.0-pre.74 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2024 License: MPL-2.0 Imports: 6 Imported by: 90,246

README

// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0

cdktf

cdktf is a framework for defining cloud infrastructure using Terraform providers and modules. It allows for users to define infrastructure resources using higher-level programming languages.

Build

Install dependencies

yarn install

Build the package

yarn build

Learn More

Documentation

Overview

Cloud Development Kit for Terraform

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func App_IsApp added in v0.9.0

func App_IsApp(x interface{}) *bool

Experimental.

func App_IsConstruct added in v0.6.0

func App_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func AzurermBackend_IsBackend added in v0.9.0

func AzurermBackend_IsBackend(x interface{}) *bool

Experimental.

func AzurermBackend_IsConstruct added in v0.6.0

func AzurermBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func AzurermBackend_IsTerraformElement added in v0.14.0

func AzurermBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func CloudBackend_IsBackend added in v0.12.2

func CloudBackend_IsBackend(x interface{}) *bool

Experimental.

func CloudBackend_IsConstruct added in v0.12.2

func CloudBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func CloudBackend_IsTerraformElement added in v0.14.0

func CloudBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func ConsulBackend_IsBackend added in v0.9.0

func ConsulBackend_IsBackend(x interface{}) *bool

Experimental.

func ConsulBackend_IsConstruct added in v0.6.0

func ConsulBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func ConsulBackend_IsTerraformElement added in v0.14.0

func ConsulBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func CosBackend_IsBackend added in v0.9.0

func CosBackend_IsBackend(x interface{}) *bool

Experimental.

func CosBackend_IsConstruct added in v0.6.0

func CosBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func CosBackend_IsTerraformElement added in v0.14.0

func CosBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func DataResource_IsConstruct added in v0.20.0

func DataResource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataResource_IsTerraformElement added in v0.20.0

func DataResource_IsTerraformElement(x interface{}) *bool

Experimental.

func DataResource_IsTerraformResource added in v0.20.0

func DataResource_IsTerraformResource(x interface{}) *bool

Experimental.

func DataResource_TfResourceType added in v0.20.0

func DataResource_TfResourceType() *string

func DataTerraformRemoteStateAzurerm_IsConstruct added in v0.6.0

func DataTerraformRemoteStateAzurerm_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateAzurerm_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateAzurerm_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateAzurerm_TfResourceType added in v0.9.0

func DataTerraformRemoteStateAzurerm_TfResourceType() *string

func DataTerraformRemoteStateConsul_IsConstruct added in v0.6.0

func DataTerraformRemoteStateConsul_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateConsul_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateConsul_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateConsul_TfResourceType added in v0.9.0

func DataTerraformRemoteStateConsul_TfResourceType() *string

func DataTerraformRemoteStateCos_IsConstruct added in v0.6.0

func DataTerraformRemoteStateCos_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateCos_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateCos_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateCos_TfResourceType added in v0.9.0

func DataTerraformRemoteStateCos_TfResourceType() *string

func DataTerraformRemoteStateGcs_IsConstruct added in v0.6.0

func DataTerraformRemoteStateGcs_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateGcs_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateGcs_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateGcs_TfResourceType added in v0.9.0

func DataTerraformRemoteStateGcs_TfResourceType() *string

func DataTerraformRemoteStateHttp_IsConstruct added in v0.6.0

func DataTerraformRemoteStateHttp_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateHttp_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateHttp_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateHttp_TfResourceType added in v0.9.0

func DataTerraformRemoteStateHttp_TfResourceType() *string

func DataTerraformRemoteStateLocal_IsConstruct added in v0.6.0

func DataTerraformRemoteStateLocal_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateLocal_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateLocal_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateLocal_TfResourceType added in v0.9.0

func DataTerraformRemoteStateLocal_TfResourceType() *string

func DataTerraformRemoteStateOss_IsConstruct added in v0.6.0

func DataTerraformRemoteStateOss_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateOss_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateOss_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateOss_TfResourceType added in v0.9.0

func DataTerraformRemoteStateOss_TfResourceType() *string

func DataTerraformRemoteStatePg_IsConstruct added in v0.6.0

func DataTerraformRemoteStatePg_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStatePg_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStatePg_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStatePg_TfResourceType added in v0.9.0

func DataTerraformRemoteStatePg_TfResourceType() *string

func DataTerraformRemoteStateS3_IsConstruct added in v0.6.0

func DataTerraformRemoteStateS3_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteStateS3_IsTerraformElement added in v0.14.0

func DataTerraformRemoteStateS3_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteStateS3_TfResourceType added in v0.9.0

func DataTerraformRemoteStateS3_TfResourceType() *string

func DataTerraformRemoteStateSwift_IsConstruct added in v0.6.0

func DataTerraformRemoteStateSwift_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func DataTerraformRemoteStateSwift_IsTerraformElement deprecated added in v0.14.0

func DataTerraformRemoteStateSwift_IsTerraformElement(x interface{}) *bool

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func DataTerraformRemoteStateSwift_TfResourceType added in v0.9.0

func DataTerraformRemoteStateSwift_TfResourceType() *string

func DataTerraformRemoteState_IsConstruct added in v0.6.0

func DataTerraformRemoteState_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func DataTerraformRemoteState_IsTerraformElement added in v0.14.0

func DataTerraformRemoteState_IsTerraformElement(x interface{}) *bool

Experimental.

func DataTerraformRemoteState_TfResourceType added in v0.9.0

func DataTerraformRemoteState_TfResourceType() *string

func FnGenerated_Abs added in v0.16.0

func FnGenerated_Abs(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/abs abs} returns the absolute value of the given number. In other words, if the number is zero or positive then it is returned as-is, but if it is negative then it is multiplied by -1 to make it positive before returning it. Experimental.

func FnGenerated_Abspath added in v0.16.0

func FnGenerated_Abspath(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/abspath abspath} takes a string containing a filesystem path and converts it to an absolute path. That is, if the path is not absolute, it will be joined with the current working directory. Experimental.

func FnGenerated_Base64decode added in v0.16.0

func FnGenerated_Base64decode(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64decode base64decode} takes a string containing a Base64 character sequence and returns the original string. Experimental.

func FnGenerated_Base64encode added in v0.16.0

func FnGenerated_Base64encode(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64encode base64encode} applies Base64 encoding to a string. Experimental.

func FnGenerated_Base64gzip added in v0.16.0

func FnGenerated_Base64gzip(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64gzip base64gzip} compresses a string with gzip and then encodes the result in Base64 encoding. Experimental.

func FnGenerated_Base64sha256 added in v0.16.0

func FnGenerated_Base64sha256(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64sha256 base64sha256} computes the SHA256 hash of a given string and encodes it with Base64. This is not equivalent to `base64encode(sha256("test"))` since `sha256()` returns hexadecimal representation. Experimental.

func FnGenerated_Base64sha512 added in v0.16.0

func FnGenerated_Base64sha512(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64sha512 base64sha512} computes the SHA512 hash of a given string and encodes it with Base64. This is not equivalent to `base64encode(sha512("test"))` since `sha512()` returns hexadecimal representation. Experimental.

func FnGenerated_Basename added in v0.16.0

func FnGenerated_Basename(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/basename basename} takes a string containing a filesystem path and removes all except the last portion from it. Experimental.

func FnGenerated_Ceil added in v0.16.0

func FnGenerated_Ceil(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/ceil ceil} returns the closest whole number that is greater than or equal to the given value, which may be a fraction. Experimental.

func FnGenerated_Chomp added in v0.16.0

func FnGenerated_Chomp(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/chomp chomp} removes newline characters at the end of a string. Experimental.

func FnGenerated_Chunklist added in v0.16.0

func FnGenerated_Chunklist(list *[]interface{}, size *float64) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/chunklist chunklist} splits a single list into fixed-size chunks, returning a list of lists. Experimental.

func FnGenerated_Cidrhost added in v0.16.0

func FnGenerated_Cidrhost(prefix *string, hostnum *float64) *string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrhost cidrhost} calculates a full host IP address for a given host number within a given IP network address prefix. Experimental.

func FnGenerated_Cidrnetmask added in v0.16.0

func FnGenerated_Cidrnetmask(prefix *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrnetmask cidrnetmask} converts an IPv4 address prefix given in CIDR notation into a subnet mask address. Experimental.

func FnGenerated_Cidrsubnet added in v0.16.0

func FnGenerated_Cidrsubnet(prefix *string, newbits *float64, netnum *float64) *string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrsubnet cidrsubnet} calculates a subnet address within given IP network address prefix. Experimental.

func FnGenerated_Cidrsubnets added in v0.16.0

func FnGenerated_Cidrsubnets(prefix *string, newbits *[]*float64) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrsubnets cidrsubnets} calculates a sequence of consecutive IP address ranges within a particular CIDR prefix. Experimental.

func FnGenerated_Coalesce added in v0.16.0

func FnGenerated_Coalesce(vals *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/coalesce coalesce} takes any number of arguments and returns the first one that isn't null or an empty string. Experimental.

func FnGenerated_Coalescelist added in v0.16.0

func FnGenerated_Coalescelist(vals *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/coalescelist coalescelist} takes any number of list arguments and returns the first one that isn't empty. Experimental.

func FnGenerated_Compact added in v0.16.0

func FnGenerated_Compact(list *[]*string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/compact compact} takes a list of strings and returns a new list with any empty string elements removed. Experimental.

func FnGenerated_Concat added in v0.16.0

func FnGenerated_Concat(seqs *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/concat concat} takes two or more lists and combines them into a single list. Experimental.

func FnGenerated_Contains added in v0.16.0

func FnGenerated_Contains(list interface{}, value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/contains contains} determines whether a given list or set contains a given single value as one of its elements. Experimental.

func FnGenerated_Csvdecode added in v0.16.0

func FnGenerated_Csvdecode(str *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/csvdecode csvdecode} decodes a string containing CSV-formatted data and produces a list of maps representing that data. Experimental.

func FnGenerated_Dirname added in v0.16.0

func FnGenerated_Dirname(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/dirname dirname} takes a string containing a filesystem path and removes the last portion from it. Experimental.

func FnGenerated_Distinct added in v0.16.0

func FnGenerated_Distinct(list *[]interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/distinct distinct} takes a list and returns a new list with any duplicate elements removed. Experimental.

func FnGenerated_Element added in v0.16.0

func FnGenerated_Element(list interface{}, index *float64) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/element element} retrieves a single element from a list. Experimental.

func FnGenerated_File added in v0.16.0

func FnGenerated_File(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/file file} reads the contents of a file at the given path and returns them as a string. Experimental.

func FnGenerated_Filebase64 added in v0.16.0

func FnGenerated_Filebase64(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filebase64 filebase64} reads the contents of a file at the given path and returns them as a base64-encoded string. Experimental.

func FnGenerated_Filebase64sha256 added in v0.16.0

func FnGenerated_Filebase64sha256(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filebase64sha256 filebase64sha256} is a variant of `base64sha256` that hashes the contents of a given file rather than a literal string. Experimental.

func FnGenerated_Filebase64sha512 added in v0.16.0

func FnGenerated_Filebase64sha512(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filebase64sha512 filebase64sha512} is a variant of `base64sha512` that hashes the contents of a given file rather than a literal string. Experimental.

func FnGenerated_Filemd5 added in v0.16.0

func FnGenerated_Filemd5(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filemd5 filemd5} is a variant of `md5` that hashes the contents of a given file rather than a literal string. Experimental.

func FnGenerated_Fileset added in v0.16.0

func FnGenerated_Fileset(path *string, pattern *string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/fileset fileset} enumerates a set of regular file names given a path and pattern. The path is automatically removed from the resulting set of file names and any result still containing path separators always returns forward slash (`/`) as the path separator for cross-system compatibility. Experimental.

func FnGenerated_Filesha1 added in v0.16.0

func FnGenerated_Filesha1(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filesha1 filesha1} is a variant of `sha1` that hashes the contents of a given file rather than a literal string. Experimental.

func FnGenerated_Filesha256 added in v0.16.0

func FnGenerated_Filesha256(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filesha256 filesha256} is a variant of `sha256` that hashes the contents of a given file rather than a literal string. Experimental.

func FnGenerated_Filesha512 added in v0.16.0

func FnGenerated_Filesha512(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filesha512 filesha512} is a variant of `sha512` that hashes the contents of a given file rather than a literal string. Experimental.

func FnGenerated_Flatten added in v0.16.0

func FnGenerated_Flatten(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/flatten flatten} takes a list and replaces any elements that are lists with a flattened sequence of the list contents. Experimental.

func FnGenerated_Floor added in v0.16.0

func FnGenerated_Floor(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/floor floor} returns the closest whole number that is less than or equal to the given value, which may be a fraction. Experimental.

func FnGenerated_Format added in v0.16.0

func FnGenerated_Format(format *string, args *[]interface{}) interface{}

The {@link https://developer.hashicorp.com/terraform/language/functions/format format} function produces a string by formatting a number of other values according to a specification string. It is similar to the `printf` function in C, and other similar functions in other programming languages. Experimental.

func FnGenerated_Formatdate added in v0.16.0

func FnGenerated_Formatdate(format *string, time *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/formatdate formatdate} converts a timestamp into a different time format. Experimental.

func FnGenerated_Formatlist added in v0.16.0

func FnGenerated_Formatlist(format *string, args *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/formatlist formatlist} produces a list of strings by formatting a number of other values according to a specification string. Experimental.

func FnGenerated_Indent added in v0.16.0

func FnGenerated_Indent(spaces *float64, str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/indent indent} adds a given number of spaces to the beginnings of all but the first line in a given multi-line string. Experimental.

func FnGenerated_Index added in v0.16.0

func FnGenerated_Index(list interface{}, value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/index index} finds the element index for a given value in a list. Experimental.

func FnGenerated_Jsondecode added in v0.16.0

func FnGenerated_Jsondecode(str *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/jsondecode jsondecode} interprets a given string as JSON, returning a representation of the result of decoding that string. Experimental.

func FnGenerated_Jsonencode added in v0.16.0

func FnGenerated_Jsonencode(val interface{}) *string

{@link https://developer.hashicorp.com/terraform/language/functions/jsonencode jsonencode} encodes a given value to a string using JSON syntax. Experimental.

func FnGenerated_Keys added in v0.16.0

func FnGenerated_Keys(inputMap interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/keys keys} takes a map and returns a list containing the keys from that map. Experimental.

func FnGenerated_LengthOf added in v0.16.0

func FnGenerated_LengthOf(value interface{}) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/length length} determines the length of a given list, map, or string. Experimental.

func FnGenerated_Log added in v0.16.0

func FnGenerated_Log(num *float64, base *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/log log} returns the logarithm of a given number in a given base. Experimental.

func FnGenerated_Lower added in v0.16.0

func FnGenerated_Lower(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/lower lower} converts all cased letters in the given string to lowercase. Experimental.

func FnGenerated_Matchkeys added in v0.16.0

func FnGenerated_Matchkeys(values *[]interface{}, keys *[]interface{}, searchset *[]interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/matchkeys matchkeys} constructs a new list by taking a subset of elements from one list whose indexes match the corresponding indexes of values in another list. Experimental.

func FnGenerated_Max added in v0.16.0

func FnGenerated_Max(numbers *[]*float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/max max} takes one or more numbers and returns the greatest number from the set. Experimental.

func FnGenerated_Md5 added in v0.16.0

func FnGenerated_Md5(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/md5 md5} computes the MD5 hash of a given string and encodes it with hexadecimal digits. Experimental.

func FnGenerated_Merge added in v0.16.0

func FnGenerated_Merge(maps *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/merge merge} takes an arbitrary number of maps or objects, and returns a single map or object that contains a merged set of elements from all arguments. Experimental.

func FnGenerated_Min added in v0.16.0

func FnGenerated_Min(numbers *[]*float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/min min} takes one or more numbers and returns the smallest number from the set. Experimental.

func FnGenerated_Nonsensitive added in v0.16.0

func FnGenerated_Nonsensitive(value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/nonsensitive nonsensitive} takes a sensitive value and returns a copy of that value with the sensitive marking removed, thereby exposing the sensitive value. Experimental.

func FnGenerated_One added in v0.16.0

func FnGenerated_One(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/one one} takes a list, set, or tuple value with either zero or one elements. If the collection is empty, `one` returns `null`. Otherwise, `one` returns the first element. If there are two or more elements then `one` will return an error. Experimental.

func FnGenerated_Parseint added in v0.16.0

func FnGenerated_Parseint(number interface{}, base *float64) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/parseint parseint} parses the given string as a representation of an integer in the specified base and returns the resulting number. The base must be between 2 and 62 inclusive. Experimental.

func FnGenerated_Pathexpand added in v0.16.0

func FnGenerated_Pathexpand(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/pathexpand pathexpand} takes a filesystem path that might begin with a `~` segment, and if so it replaces that segment with the current user's home directory path. Experimental.

func FnGenerated_Plantimestamp added in v0.20.0

func FnGenerated_Plantimestamp() *string

{@link https://developer.hashicorp.com/terraform/language/functions/plantimestamp plantimestamp} returns a UTC timestamp string in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, fixed to a constant time representing the time of the plan. Experimental.

func FnGenerated_Pow added in v0.16.0

func FnGenerated_Pow(num *float64, power *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/pow pow} calculates an exponent, by raising its first argument to the power of the second argument. Experimental.

func FnGenerated_Regex added in v0.16.0

func FnGenerated_Regex(pattern *string, str *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/regex regex} applies a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) to a string and returns the matching substrings. Experimental.

func FnGenerated_Regexall added in v0.16.0

func FnGenerated_Regexall(pattern *string, str *string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/regexall regexall} applies a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) to a string and returns a list of all matches. Experimental.

func FnGenerated_Replace added in v0.16.0

func FnGenerated_Replace(str *string, substr *string, replace *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/replace replace} searches a given string for another given substring, and replaces each occurrence with a given replacement string. Experimental.

func FnGenerated_Reverse added in v0.16.0

func FnGenerated_Reverse(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/reverse reverse} takes a sequence and produces a new sequence of the same length with all of the same elements as the given sequence but in reverse order. Experimental.

func FnGenerated_Rsadecrypt added in v0.16.0

func FnGenerated_Rsadecrypt(ciphertext *string, privatekey *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/rsadecrypt rsadecrypt} decrypts an RSA-encrypted ciphertext, returning the corresponding cleartext. Experimental.

func FnGenerated_Sensitive added in v0.16.0

func FnGenerated_Sensitive(value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/sensitive sensitive} takes any value and returns a copy of it marked so that Terraform will treat it as sensitive, with the same meaning and behavior as for [sensitive input variables](/terraform/language/values/variables#suppressing-values-in-cli-output). Experimental.

func FnGenerated_Setintersection added in v0.16.0

func FnGenerated_Setintersection(first_set *[]interface{}, other_sets *[]*[]interface{}) *[]*string

The {@link https://developer.hashicorp.com/terraform/language/functions/setintersection setintersection} function takes multiple sets and produces a single set containing only the elements that all of the given sets have in common. In other words, it computes the [intersection](https://en.wikipedia.org/wiki/Intersection_\(set_theory\)) of the sets. Experimental.

func FnGenerated_Setproduct added in v0.16.0

func FnGenerated_Setproduct(sets *[]interface{}) interface{}

The {@link https://developer.hashicorp.com/terraform/language/functions/setproduct setproduct} function finds all of the possible combinations of elements from all of the given sets by computing the [Cartesian product](https://en.wikipedia.org/wiki/Cartesian_product). Experimental.

func FnGenerated_Setsubtract added in v0.16.0

func FnGenerated_Setsubtract(a *[]interface{}, b *[]interface{}) *[]*string

The {@link https://developer.hashicorp.com/terraform/language/functions/setsubtract setsubtract} function returns a new set containing the elements from the first set that are not present in the second set. In other words, it computes the [relative complement](https://en.wikipedia.org/wiki/Complement_\(set_theory\)#Relative_complement) of the second set. Experimental.

func FnGenerated_Setunion added in v0.16.0

func FnGenerated_Setunion(first_set *[]interface{}, other_sets *[]*[]interface{}) *[]*string

The {@link https://developer.hashicorp.com/terraform/language/functions/setunion setunion} function takes multiple sets and produces a single set containing the elements from all of the given sets. In other words, it computes the [union](https://en.wikipedia.org/wiki/Union_\(set_theory\)) of the sets. Experimental.

func FnGenerated_Sha1 added in v0.16.0

func FnGenerated_Sha1(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/sha1 sha1} computes the SHA1 hash of a given string and encodes it with hexadecimal digits. Experimental.

func FnGenerated_Sha256 added in v0.16.0

func FnGenerated_Sha256(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/sha256 sha256} computes the SHA256 hash of a given string and encodes it with hexadecimal digits. Experimental.

func FnGenerated_Sha512 added in v0.16.0

func FnGenerated_Sha512(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/sha512 sha512} computes the SHA512 hash of a given string and encodes it with hexadecimal digits. Experimental.

func FnGenerated_Signum added in v0.16.0

func FnGenerated_Signum(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/signum signum} determines the sign of a number, returning a number between -1 and 1 to represent the sign. Experimental.

func FnGenerated_Slice added in v0.16.0

func FnGenerated_Slice(list interface{}, start_index *float64, end_index *float64) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/slice slice} extracts some consecutive elements from within a list. Experimental.

func FnGenerated_Sort added in v0.16.0

func FnGenerated_Sort(list *[]*string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/sort sort} takes a list of strings and returns a new list with those strings sorted lexicographically. Experimental.

func FnGenerated_Split added in v0.16.0

func FnGenerated_Split(separator *string, str *string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/split split} produces a list by dividing a given string at all occurrences of a given separator. Experimental.

func FnGenerated_Strrev added in v0.16.0

func FnGenerated_Strrev(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/strrev strrev} reverses the characters in a string. Note that the characters are treated as _Unicode characters_ (in technical terms, Unicode [grapheme cluster boundaries](https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries) are respected). Experimental.

func FnGenerated_Substr added in v0.16.0

func FnGenerated_Substr(str *string, offset *float64, length *float64) *string

{@link https://developer.hashicorp.com/terraform/language/functions/substr substr} extracts a substring from a given string by offset and (maximum) length. Experimental.

func FnGenerated_Sum added in v0.16.0

func FnGenerated_Sum(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/sum sum} takes a list or set of numbers and returns the sum of those numbers. Experimental.

func FnGenerated_Templatefile added in v0.16.0

func FnGenerated_Templatefile(path *string, vars interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/templatefile templatefile} reads the file at the given path and renders its content as a template using a supplied set of template variables. Experimental.

func FnGenerated_Textdecodebase64 added in v0.16.0

func FnGenerated_Textdecodebase64(source *string, encoding *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/textdecodebase64 textdecodebase64} function decodes a string that was previously Base64-encoded, and then interprets the result as characters in a specified character encoding. Experimental.

func FnGenerated_Textencodebase64 added in v0.16.0

func FnGenerated_Textencodebase64(str *string, encoding *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/textencodebase64 textencodebase64} encodes the unicode characters in a given string using a specified character encoding, returning the result base64 encoded because Terraform language strings are always sequences of unicode characters. Experimental.

func FnGenerated_Timeadd added in v0.16.0

func FnGenerated_Timeadd(timestamp *string, duration *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/timeadd timeadd} adds a duration to a timestamp, returning a new timestamp. Experimental.

func FnGenerated_Timecmp added in v0.16.0

func FnGenerated_Timecmp(timestamp_a *string, timestamp_b *string) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/timecmp timecmp} compares two timestamps and returns a number that represents the ordering of the instants those timestamps represent. Experimental.

func FnGenerated_Timestamp added in v0.16.0

func FnGenerated_Timestamp() *string

{@link https://developer.hashicorp.com/terraform/language/functions/timestamp timestamp} returns a UTC timestamp string in [RFC 3339](https://tools.ietf.org/html/rfc3339) format. Experimental.

func FnGenerated_Title added in v0.16.0

func FnGenerated_Title(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/title title} converts the first letter of each word in the given string to uppercase. Experimental.

func FnGenerated_Tolist added in v0.16.0

func FnGenerated_Tolist(v interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/tolist tolist} converts its argument to a list value. Experimental.

func FnGenerated_Tomap added in v0.16.0

func FnGenerated_Tomap(v interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/tomap tomap} converts its argument to a map value. Experimental.

func FnGenerated_Tonumber added in v0.16.0

func FnGenerated_Tonumber(v interface{}) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/tonumber tonumber} converts its argument to a number value. Experimental.

func FnGenerated_Toset added in v0.16.0

func FnGenerated_Toset(v interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/toset toset} converts its argument to a set value. Experimental.

func FnGenerated_Tostring added in v0.16.0

func FnGenerated_Tostring(v interface{}) *string

{@link https://developer.hashicorp.com/terraform/language/functions/tostring tostring} converts its argument to a string value. Experimental.

func FnGenerated_Transpose added in v0.16.0

func FnGenerated_Transpose(values interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/transpose transpose} takes a map of lists of strings and swaps the keys and values to produce a new map of lists of strings. Experimental.

func FnGenerated_Trim added in v0.16.0

func FnGenerated_Trim(str *string, cutset *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trim trim} removes the specified set of characters from the start and end of the given string. Experimental.

func FnGenerated_Trimprefix added in v0.16.0

func FnGenerated_Trimprefix(str *string, prefix *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trimprefix trimprefix} removes the specified prefix from the start of the given string. If the string does not start with the prefix, the string is returned unchanged. Experimental.

func FnGenerated_Trimspace added in v0.16.0

func FnGenerated_Trimspace(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trimspace trimspace} removes any space characters from the start and end of the given string. Experimental.

func FnGenerated_Trimsuffix added in v0.16.0

func FnGenerated_Trimsuffix(str *string, suffix *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trimsuffix trimsuffix} removes the specified suffix from the end of the given string. Experimental.

func FnGenerated_Try added in v0.16.0

func FnGenerated_Try(expressions *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/try try} evaluates all of its argument expressions in turn and returns the result of the first one that does not produce any errors. Experimental.

func FnGenerated_Upper added in v0.16.0

func FnGenerated_Upper(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/upper upper} converts all cased letters in the given string to uppercase. Experimental.

func FnGenerated_Urlencode added in v0.16.0

func FnGenerated_Urlencode(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/urlencode urlencode} applies URL encoding to a given string. Experimental.

func FnGenerated_Uuid added in v0.16.0

func FnGenerated_Uuid() *string

{@link https://developer.hashicorp.com/terraform/language/functions/uuid uuid} generates a unique identifier string. Experimental.

func FnGenerated_Uuidv5 added in v0.16.0

func FnGenerated_Uuidv5(namespace *string, name *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/uuidv5 uuidv5} generates a _name-based_ UUID, as described in [RFC 4122 section 4.3](https://tools.ietf.org/html/rfc4122#section-4.3), also known as a "version 5" UUID. Experimental.

func FnGenerated_Values added in v0.16.0

func FnGenerated_Values(mapping interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/values values} takes a map and returns a list containing the values of the elements in that map. Experimental.

func FnGenerated_Yamldecode added in v0.16.0

func FnGenerated_Yamldecode(src *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/yamldecode yamldecode} parses a string as a subset of YAML, and produces a representation of its value. Experimental.

func FnGenerated_Yamlencode added in v0.16.0

func FnGenerated_Yamlencode(value interface{}) *string

{@link https://developer.hashicorp.com/terraform/language/functions/yamlencode yamlencode} encodes a given value to a string using [YAML 1.2](https://yaml.org/spec/1.2/spec.html) block syntax. Experimental.

func FnGenerated_Zipmap added in v0.16.0

func FnGenerated_Zipmap(keys *[]*string, values interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/zipmap zipmap} constructs a map from a list of keys and a corresponding list of values. Experimental.

func Fn_Abs added in v0.6.0

func Fn_Abs(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/abs abs} returns the absolute value of the given number. In other words, if the number is zero or positive then it is returned as-is, but if it is negative then it is multiplied by -1 to make it positive before returning it. Experimental.

func Fn_Abspath added in v0.6.0

func Fn_Abspath(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/abspath abspath} takes a string containing a filesystem path and converts it to an absolute path. That is, if the path is not absolute, it will be joined with the current working directory. Experimental.

func Fn_Base64decode added in v0.6.0

func Fn_Base64decode(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64decode base64decode} takes a string containing a Base64 character sequence and returns the original string. Experimental.

func Fn_Base64encode added in v0.6.0

func Fn_Base64encode(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64encode base64encode} applies Base64 encoding to a string. Experimental.

func Fn_Base64gzip added in v0.6.0

func Fn_Base64gzip(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64gzip base64gzip} compresses a string with gzip and then encodes the result in Base64 encoding. Experimental.

func Fn_Base64sha256 added in v0.6.0

func Fn_Base64sha256(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64sha256 base64sha256} computes the SHA256 hash of a given string and encodes it with Base64. This is not equivalent to `base64encode(sha256("test"))` since `sha256()` returns hexadecimal representation. Experimental.

func Fn_Base64sha512 added in v0.6.0

func Fn_Base64sha512(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/base64sha512 base64sha512} computes the SHA512 hash of a given string and encodes it with Base64. This is not equivalent to `base64encode(sha512("test"))` since `sha512()` returns hexadecimal representation. Experimental.

func Fn_Basename added in v0.6.0

func Fn_Basename(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/basename basename} takes a string containing a filesystem path and removes all except the last portion from it. Experimental.

func Fn_Bcrypt added in v0.6.0

func Fn_Bcrypt(str *string, cost *float64) *string

{@link /terraform/docs/language/functions/bcrypt.html bcrypt} computes a hash of the given string using the Blowfish cipher, returning a string in [the _Modular Crypt Format_](https://passlib.readthedocs.io/en/stable/modular_crypt_format.html) usually expected in the shadow password file on many Unix systems. Experimental.

func Fn_Ceil added in v0.6.0

func Fn_Ceil(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/ceil ceil} returns the closest whole number that is greater than or equal to the given value, which may be a fraction. Experimental.

func Fn_Chomp added in v0.6.0

func Fn_Chomp(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/chomp chomp} removes newline characters at the end of a string. Experimental.

func Fn_Chunklist added in v0.6.0

func Fn_Chunklist(list *[]interface{}, size *float64) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/chunklist chunklist} splits a single list into fixed-size chunks, returning a list of lists. Experimental.

func Fn_Cidrhost added in v0.6.0

func Fn_Cidrhost(prefix *string, hostnum *float64) *string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrhost cidrhost} calculates a full host IP address for a given host number within a given IP network address prefix. Experimental.

func Fn_Cidrnetmask added in v0.6.0

func Fn_Cidrnetmask(prefix *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrnetmask cidrnetmask} converts an IPv4 address prefix given in CIDR notation into a subnet mask address. Experimental.

func Fn_Cidrsubnet added in v0.6.0

func Fn_Cidrsubnet(prefix *string, newbits *float64, netnum *float64) *string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrsubnet cidrsubnet} calculates a subnet address within given IP network address prefix. Experimental.

func Fn_Cidrsubnets added in v0.6.0

func Fn_Cidrsubnets(prefix *string, newbits *[]*float64) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/cidrsubnets cidrsubnets} calculates a sequence of consecutive IP address ranges within a particular CIDR prefix. Experimental.

func Fn_Coalesce added in v0.6.0

func Fn_Coalesce(vals *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/coalesce coalesce} takes any number of arguments and returns the first one that isn't null or an empty string. Experimental.

func Fn_Coalescelist added in v0.6.0

func Fn_Coalescelist(vals *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/coalescelist coalescelist} takes any number of list arguments and returns the first one that isn't empty. Experimental.

func Fn_Compact added in v0.6.0

func Fn_Compact(list *[]*string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/compact compact} takes a list of strings and returns a new list with any empty string elements removed. Experimental.

func Fn_Concat added in v0.6.0

func Fn_Concat(seqs *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/concat concat} takes two or more lists and combines them into a single list. Experimental.

func Fn_Conditional added in v0.20.0

func Fn_Conditional(condition interface{}, trueValue interface{}, falseValue interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/expressions/conditionals} A conditional expression uses the value of a boolean expression to select one of two values. Experimental.

func Fn_Contains added in v0.6.0

func Fn_Contains(list interface{}, value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/contains contains} determines whether a given list or set contains a given single value as one of its elements. Experimental.

func Fn_Csvdecode added in v0.6.0

func Fn_Csvdecode(str *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/csvdecode csvdecode} decodes a string containing CSV-formatted data and produces a list of maps representing that data. Experimental.

func Fn_Dirname added in v0.6.0

func Fn_Dirname(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/dirname dirname} takes a string containing a filesystem path and removes the last portion from it. Experimental.

func Fn_Distinct added in v0.6.0

func Fn_Distinct(list *[]interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/distinct distinct} takes a list and returns a new list with any duplicate elements removed. Experimental.

func Fn_Element added in v0.6.0

func Fn_Element(list interface{}, index *float64) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/element element} retrieves a single element from a list. Experimental.

func Fn_File added in v0.6.0

func Fn_File(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/file file} reads the contents of a file at the given path and returns them as a string. Experimental.

func Fn_Filebase64 added in v0.6.0

func Fn_Filebase64(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filebase64 filebase64} reads the contents of a file at the given path and returns them as a base64-encoded string. Experimental.

func Fn_Filebase64sha256 added in v0.6.0

func Fn_Filebase64sha256(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filebase64sha256 filebase64sha256} is a variant of `base64sha256` that hashes the contents of a given file rather than a literal string. Experimental.

func Fn_Filebase64sha512 added in v0.6.0

func Fn_Filebase64sha512(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filebase64sha512 filebase64sha512} is a variant of `base64sha512` that hashes the contents of a given file rather than a literal string. Experimental.

func Fn_Filemd5 added in v0.6.0

func Fn_Filemd5(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filemd5 filemd5} is a variant of `md5` that hashes the contents of a given file rather than a literal string. Experimental.

func Fn_Fileset added in v0.6.0

func Fn_Fileset(path *string, pattern *string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/fileset fileset} enumerates a set of regular file names given a path and pattern. The path is automatically removed from the resulting set of file names and any result still containing path separators always returns forward slash (`/`) as the path separator for cross-system compatibility. Experimental.

func Fn_Filesha1 added in v0.6.0

func Fn_Filesha1(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filesha1 filesha1} is a variant of `sha1` that hashes the contents of a given file rather than a literal string. Experimental.

func Fn_Filesha256 added in v0.6.0

func Fn_Filesha256(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filesha256 filesha256} is a variant of `sha256` that hashes the contents of a given file rather than a literal string. Experimental.

func Fn_Filesha512 added in v0.6.0

func Fn_Filesha512(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/filesha512 filesha512} is a variant of `sha512` that hashes the contents of a given file rather than a literal string. Experimental.

func Fn_Flatten added in v0.6.0

func Fn_Flatten(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/flatten flatten} takes a list and replaces any elements that are lists with a flattened sequence of the list contents. Experimental.

func Fn_Floor added in v0.6.0

func Fn_Floor(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/floor floor} returns the closest whole number that is less than or equal to the given value, which may be a fraction. Experimental.

func Fn_Format added in v0.6.0

func Fn_Format(format *string, args *[]interface{}) interface{}

The {@link https://developer.hashicorp.com/terraform/language/functions/format format} function produces a string by formatting a number of other values according to a specification string. It is similar to the `printf` function in C, and other similar functions in other programming languages. Experimental.

func Fn_Formatdate added in v0.6.0

func Fn_Formatdate(format *string, time *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/formatdate formatdate} converts a timestamp into a different time format. Experimental.

func Fn_Formatlist added in v0.6.0

func Fn_Formatlist(format *string, args *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/formatlist formatlist} produces a list of strings by formatting a number of other values according to a specification string. Experimental.

func Fn_Indent added in v0.6.0

func Fn_Indent(spaces *float64, str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/indent indent} adds a given number of spaces to the beginnings of all but the first line in a given multi-line string. Experimental.

func Fn_Index added in v0.6.0

func Fn_Index(list interface{}, value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/index index} finds the element index for a given value in a list. Experimental.

func Fn_Join added in v0.6.0

func Fn_Join(separator *string, list *[]*string) *string

{@link /terraform/docs/language/functions/join.html join} produces a string by concatenating together all elements of a given list of strings with the given delimiter. Experimental.

func Fn_Jsondecode added in v0.6.0

func Fn_Jsondecode(str *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/jsondecode jsondecode} interprets a given string as JSON, returning a representation of the result of decoding that string. Experimental.

func Fn_Jsonencode added in v0.6.0

func Fn_Jsonencode(val interface{}) *string

{@link https://developer.hashicorp.com/terraform/language/functions/jsonencode jsonencode} encodes a given value to a string using JSON syntax. Experimental.

func Fn_Keys added in v0.6.0

func Fn_Keys(inputMap interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/keys keys} takes a map and returns a list containing the keys from that map. Experimental.

func Fn_LengthOf added in v0.6.0

func Fn_LengthOf(value interface{}) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/length length} determines the length of a given list, map, or string. Experimental.

func Fn_Log added in v0.6.0

func Fn_Log(num *float64, base *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/log log} returns the logarithm of a given number in a given base. Experimental.

func Fn_Lookup added in v0.6.0

func Fn_Lookup(inputMap interface{}, key *string, defaultValue interface{}) interface{}

{@link /terraform/docs/language/functions/lookup.html lookup} retrieves the value of a single element from a map, given its key. If the given key does not exist, the given default value is returned instead. Experimental.

func Fn_LookupNested added in v0.18.0

func Fn_LookupNested(inputMap interface{}, path *[]interface{}) interface{}

returns a property access expression that accesses the property at the given path in the given inputMap.

For example lookupNested(x, ["a", "b", "c"]) will return a Terraform expression like x["a"]["b"]["c"]. Experimental.

func Fn_Lower added in v0.6.0

func Fn_Lower(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/lower lower} converts all cased letters in the given string to lowercase. Experimental.

func Fn_Matchkeys added in v0.6.0

func Fn_Matchkeys(values *[]interface{}, keys *[]interface{}, searchset *[]interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/matchkeys matchkeys} constructs a new list by taking a subset of elements from one list whose indexes match the corresponding indexes of values in another list. Experimental.

func Fn_Max added in v0.6.0

func Fn_Max(numbers *[]*float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/max max} takes one or more numbers and returns the greatest number from the set. Experimental.

func Fn_Md5 added in v0.6.0

func Fn_Md5(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/md5 md5} computes the MD5 hash of a given string and encodes it with hexadecimal digits. Experimental.

func Fn_Merge added in v0.6.0

func Fn_Merge(maps *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/merge merge} takes an arbitrary number of maps or objects, and returns a single map or object that contains a merged set of elements from all arguments. Experimental.

func Fn_Min added in v0.6.0

func Fn_Min(numbers *[]*float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/min min} takes one or more numbers and returns the smallest number from the set. Experimental.

func Fn_Nonsensitive added in v0.6.0

func Fn_Nonsensitive(value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/nonsensitive nonsensitive} takes a sensitive value and returns a copy of that value with the sensitive marking removed, thereby exposing the sensitive value. Experimental.

func Fn_One added in v0.6.0

func Fn_One(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/one one} takes a list, set, or tuple value with either zero or one elements. If the collection is empty, `one` returns `null`. Otherwise, `one` returns the first element. If there are two or more elements then `one` will return an error. Experimental.

func Fn_Parseint added in v0.16.0

func Fn_Parseint(number interface{}, base *float64) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/parseint parseint} parses the given string as a representation of an integer in the specified base and returns the resulting number. The base must be between 2 and 62 inclusive. Experimental.

func Fn_Pathexpand added in v0.6.0

func Fn_Pathexpand(path *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/pathexpand pathexpand} takes a filesystem path that might begin with a `~` segment, and if so it replaces that segment with the current user's home directory path. Experimental.

func Fn_Plantimestamp added in v0.20.0

func Fn_Plantimestamp() *string

{@link https://developer.hashicorp.com/terraform/language/functions/plantimestamp plantimestamp} returns a UTC timestamp string in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, fixed to a constant time representing the time of the plan. Experimental.

func Fn_Pow added in v0.6.0

func Fn_Pow(num *float64, power *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/pow pow} calculates an exponent, by raising its first argument to the power of the second argument. Experimental.

func Fn_Range added in v0.6.0

func Fn_Range(start *float64, limit *float64, step *float64) *[]*string

{@link /terraform/docs/language/functions/range.html range} generates a list of numbers using a start value, a limit value, and a step value. Experimental.

func Fn_RawString added in v0.8.0

func Fn_RawString(str *string) *string

Use this function to wrap a string and escape it properly for the use in Terraform This is only needed in certain scenarios (e.g., if you have unescaped double quotes in the string). Experimental.

func Fn_Regex added in v0.9.1

func Fn_Regex(pattern *string, str *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/regex regex} applies a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) to a string and returns the matching substrings. Experimental.

func Fn_Regexall added in v0.6.0

func Fn_Regexall(pattern *string, str *string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/regexall regexall} applies a [regular expression](https://en.wikipedia.org/wiki/Regular_expression) to a string and returns a list of all matches. Experimental.

func Fn_Replace added in v0.6.0

func Fn_Replace(str *string, substr *string, replace *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/replace replace} searches a given string for another given substring, and replaces each occurrence with a given replacement string. Experimental.

func Fn_Reverse added in v0.6.0

func Fn_Reverse(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/reverse reverse} takes a sequence and produces a new sequence of the same length with all of the same elements as the given sequence but in reverse order. Experimental.

func Fn_Rsadecrypt added in v0.6.0

func Fn_Rsadecrypt(ciphertext *string, privatekey *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/rsadecrypt rsadecrypt} decrypts an RSA-encrypted ciphertext, returning the corresponding cleartext. Experimental.

func Fn_Sensitive added in v0.6.0

func Fn_Sensitive(value interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/sensitive sensitive} takes any value and returns a copy of it marked so that Terraform will treat it as sensitive, with the same meaning and behavior as for [sensitive input variables](/terraform/language/values/variables#suppressing-values-in-cli-output). Experimental.

func Fn_Setintersection added in v0.6.0

func Fn_Setintersection(first_set *[]interface{}, other_sets *[]*[]interface{}) *[]*string

The {@link https://developer.hashicorp.com/terraform/language/functions/setintersection setintersection} function takes multiple sets and produces a single set containing only the elements that all of the given sets have in common. In other words, it computes the [intersection](https://en.wikipedia.org/wiki/Intersection_\(set_theory\)) of the sets. Experimental.

func Fn_Setproduct added in v0.6.0

func Fn_Setproduct(sets *[]interface{}) interface{}

The {@link https://developer.hashicorp.com/terraform/language/functions/setproduct setproduct} function finds all of the possible combinations of elements from all of the given sets by computing the [Cartesian product](https://en.wikipedia.org/wiki/Cartesian_product). Experimental.

func Fn_Setsubtract added in v0.6.0

func Fn_Setsubtract(a *[]interface{}, b *[]interface{}) *[]*string

The {@link https://developer.hashicorp.com/terraform/language/functions/setsubtract setsubtract} function returns a new set containing the elements from the first set that are not present in the second set. In other words, it computes the [relative complement](https://en.wikipedia.org/wiki/Complement_\(set_theory\)#Relative_complement) of the second set. Experimental.

func Fn_Setunion added in v0.6.0

func Fn_Setunion(first_set *[]interface{}, other_sets *[]*[]interface{}) *[]*string

The {@link https://developer.hashicorp.com/terraform/language/functions/setunion setunion} function takes multiple sets and produces a single set containing the elements from all of the given sets. In other words, it computes the [union](https://en.wikipedia.org/wiki/Union_\(set_theory\)) of the sets. Experimental.

func Fn_Sha1 added in v0.6.0

func Fn_Sha1(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/sha1 sha1} computes the SHA1 hash of a given string and encodes it with hexadecimal digits. Experimental.

func Fn_Sha256 added in v0.6.0

func Fn_Sha256(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/sha256 sha256} computes the SHA256 hash of a given string and encodes it with hexadecimal digits. Experimental.

func Fn_Sha512 added in v0.6.0

func Fn_Sha512(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/sha512 sha512} computes the SHA512 hash of a given string and encodes it with hexadecimal digits. Experimental.

func Fn_Signum added in v0.6.0

func Fn_Signum(num *float64) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/signum signum} determines the sign of a number, returning a number between -1 and 1 to represent the sign. Experimental.

func Fn_Slice added in v0.6.0

func Fn_Slice(list interface{}, start_index *float64, end_index *float64) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/slice slice} extracts some consecutive elements from within a list. Experimental.

func Fn_Sort added in v0.6.0

func Fn_Sort(list *[]*string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/sort sort} takes a list of strings and returns a new list with those strings sorted lexicographically. Experimental.

func Fn_Split added in v0.6.0

func Fn_Split(separator *string, str *string) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/split split} produces a list by dividing a given string at all occurrences of a given separator. Experimental.

func Fn_Strrev added in v0.6.0

func Fn_Strrev(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/strrev strrev} reverses the characters in a string. Note that the characters are treated as _Unicode characters_ (in technical terms, Unicode [grapheme cluster boundaries](https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries) are respected). Experimental.

func Fn_Substr added in v0.6.0

func Fn_Substr(str *string, offset *float64, length *float64) *string

{@link https://developer.hashicorp.com/terraform/language/functions/substr substr} extracts a substring from a given string by offset and (maximum) length. Experimental.

func Fn_Sum added in v0.6.0

func Fn_Sum(list interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/sum sum} takes a list or set of numbers and returns the sum of those numbers. Experimental.

func Fn_Templatefile added in v0.6.0

func Fn_Templatefile(path *string, vars interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/templatefile templatefile} reads the file at the given path and renders its content as a template using a supplied set of template variables. Experimental.

func Fn_Textdecodebase64 added in v0.6.0

func Fn_Textdecodebase64(source *string, encoding *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/textdecodebase64 textdecodebase64} function decodes a string that was previously Base64-encoded, and then interprets the result as characters in a specified character encoding. Experimental.

func Fn_Textencodebase64 added in v0.6.0

func Fn_Textencodebase64(str *string, encoding *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/textencodebase64 textencodebase64} encodes the unicode characters in a given string using a specified character encoding, returning the result base64 encoded because Terraform language strings are always sequences of unicode characters. Experimental.

func Fn_Timeadd added in v0.6.0

func Fn_Timeadd(timestamp *string, duration *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/timeadd timeadd} adds a duration to a timestamp, returning a new timestamp. Experimental.

func Fn_Timecmp added in v0.16.0

func Fn_Timecmp(timestamp_a *string, timestamp_b *string) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/timecmp timecmp} compares two timestamps and returns a number that represents the ordering of the instants those timestamps represent. Experimental.

func Fn_Timestamp added in v0.6.0

func Fn_Timestamp() *string

{@link https://developer.hashicorp.com/terraform/language/functions/timestamp timestamp} returns a UTC timestamp string in [RFC 3339](https://tools.ietf.org/html/rfc3339) format. Experimental.

func Fn_Title added in v0.6.0

func Fn_Title(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/title title} converts the first letter of each word in the given string to uppercase. Experimental.

func Fn_Tolist added in v0.6.0

func Fn_Tolist(v interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/tolist tolist} converts its argument to a list value. Experimental.

func Fn_Tomap added in v0.6.0

func Fn_Tomap(v interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/tomap tomap} converts its argument to a map value. Experimental.

func Fn_Tonumber added in v0.6.0

func Fn_Tonumber(v interface{}) *float64

{@link https://developer.hashicorp.com/terraform/language/functions/tonumber tonumber} converts its argument to a number value. Experimental.

func Fn_Toset added in v0.6.0

func Fn_Toset(v interface{}) *[]*string

{@link https://developer.hashicorp.com/terraform/language/functions/toset toset} converts its argument to a set value. Experimental.

func Fn_Tostring added in v0.6.0

func Fn_Tostring(v interface{}) *string

{@link https://developer.hashicorp.com/terraform/language/functions/tostring tostring} converts its argument to a string value. Experimental.

func Fn_Transpose added in v0.6.0

func Fn_Transpose(values interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/transpose transpose} takes a map of lists of strings and swaps the keys and values to produce a new map of lists of strings. Experimental.

func Fn_Trim added in v0.6.0

func Fn_Trim(str *string, cutset *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trim trim} removes the specified set of characters from the start and end of the given string. Experimental.

func Fn_Trimprefix added in v0.6.0

func Fn_Trimprefix(str *string, prefix *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trimprefix trimprefix} removes the specified prefix from the start of the given string. If the string does not start with the prefix, the string is returned unchanged. Experimental.

func Fn_Trimspace added in v0.6.0

func Fn_Trimspace(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trimspace trimspace} removes any space characters from the start and end of the given string. Experimental.

func Fn_Trimsuffix added in v0.6.0

func Fn_Trimsuffix(str *string, suffix *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/trimsuffix trimsuffix} removes the specified suffix from the end of the given string. Experimental.

func Fn_Try added in v0.6.0

func Fn_Try(expressions *[]interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/try try} evaluates all of its argument expressions in turn and returns the result of the first one that does not produce any errors. Experimental.

func Fn_Upper added in v0.6.0

func Fn_Upper(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/upper upper} converts all cased letters in the given string to uppercase. Experimental.

func Fn_Urlencode added in v0.6.0

func Fn_Urlencode(str *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/urlencode urlencode} applies URL encoding to a given string. Experimental.

func Fn_Uuid added in v0.6.0

func Fn_Uuid() *string

{@link https://developer.hashicorp.com/terraform/language/functions/uuid uuid} generates a unique identifier string. Experimental.

func Fn_Uuidv5 added in v0.6.0

func Fn_Uuidv5(namespace *string, name *string) *string

{@link https://developer.hashicorp.com/terraform/language/functions/uuidv5 uuidv5} generates a _name-based_ UUID, as described in [RFC 4122 section 4.3](https://tools.ietf.org/html/rfc4122#section-4.3), also known as a "version 5" UUID. Experimental.

func Fn_Values added in v0.6.0

func Fn_Values(mapping interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/values values} takes a map and returns a list containing the values of the elements in that map. Experimental.

func Fn_Yamldecode added in v0.6.0

func Fn_Yamldecode(src *string) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/yamldecode yamldecode} parses a string as a subset of YAML, and produces a representation of its value. Experimental.

func Fn_Yamlencode added in v0.6.0

func Fn_Yamlencode(value interface{}) *string

{@link https://developer.hashicorp.com/terraform/language/functions/yamlencode yamlencode} encodes a given value to a string using [YAML 1.2](https://yaml.org/spec/1.2/spec.html) block syntax. Experimental.

func Fn_Zipmap added in v0.6.0

func Fn_Zipmap(keys *[]*string, values interface{}) interface{}

{@link https://developer.hashicorp.com/terraform/language/functions/zipmap zipmap} constructs a map from a list of keys and a corresponding list of values. Experimental.

func GcsBackend_IsBackend added in v0.9.0

func GcsBackend_IsBackend(x interface{}) *bool

Experimental.

func GcsBackend_IsConstruct added in v0.6.0

func GcsBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func GcsBackend_IsTerraformElement added in v0.14.0

func GcsBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func HttpBackend_IsBackend added in v0.9.0

func HttpBackend_IsBackend(x interface{}) *bool

Experimental.

func HttpBackend_IsConstruct added in v0.6.0

func HttpBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func HttpBackend_IsTerraformElement added in v0.14.0

func HttpBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func ImportableResource_IsConstruct added in v0.19.0

func ImportableResource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func ImportableResource_IsTerraformElement added in v0.19.0

func ImportableResource_IsTerraformElement(x interface{}) *bool

Experimental.

func Lazy_ListValue

func Lazy_ListValue(producer IListProducer, options *LazyListValueOptions) *[]*string

Returns a list-ified token for a lazy value. Experimental.

func Lazy_NumberValue

func Lazy_NumberValue(producer INumberProducer) *float64

Returns a numberified token for a lazy value. Experimental.

func Lazy_StringValue

func Lazy_StringValue(producer IStringProducer, options *LazyStringValueOptions) *string

Returns a stringified token for a lazy value. Experimental.

func LocalBackend_IsBackend added in v0.9.0

func LocalBackend_IsBackend(x interface{}) *bool

Experimental.

func LocalBackend_IsConstruct added in v0.6.0

func LocalBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func LocalBackend_IsTerraformElement added in v0.14.0

func LocalBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func Manifest_FileName

func Manifest_FileName() *string

func Manifest_StackMetadataPath added in v0.20.0

func Manifest_StackMetadataPath() *string

func Manifest_StacksFolder

func Manifest_StacksFolder() *string

func NewAnyListList_Override added in v0.17.0

func NewAnyListList_Override(a AnyListList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewAnyListMap_Override added in v0.16.0

func NewAnyListMap_Override(a AnyListMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewAnyMapList_Override added in v0.11.0

func NewAnyMapList_Override(a AnyMapList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewAnyMap_Override added in v0.9.0

func NewAnyMap_Override(a AnyMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewApp_Override

func NewApp_Override(a App, config *AppConfig)

Defines an app. Experimental.

func NewAzurermBackend_Override

func NewAzurermBackend_Override(a AzurermBackend, scope constructs.Construct, props *AzurermBackendConfig)

Experimental.

func NewBooleanListList_Override added in v0.17.0

func NewBooleanListList_Override(b BooleanListList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewBooleanListMap_Override added in v0.16.0

func NewBooleanListMap_Override(b BooleanListMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewBooleanList_Override added in v0.16.0

func NewBooleanList_Override(b BooleanList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewBooleanMapList_Override added in v0.11.0

func NewBooleanMapList_Override(b BooleanMapList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewBooleanMap_Override

func NewBooleanMap_Override(b BooleanMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewCloudBackend_Override added in v0.12.2

func NewCloudBackend_Override(c CloudBackend, scope constructs.Construct, props *CloudBackendConfig)

Experimental.

func NewCloudWorkspace_Override added in v0.12.2

func NewCloudWorkspace_Override(c CloudWorkspace)

Experimental.

func NewComplexComputedList_Override deprecated

func NewComplexComputedList_Override(c ComplexComputedList, terraformResource IInterpolatingParent, terraformAttribute *string, complexComputedListIndex *string, wrapsSet *bool)

Deprecated: Going to be replaced by Array of ComplexListItem and will be removed in the future.

func NewComplexList_Override added in v0.10.0

func NewComplexList_Override(c ComplexList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewComplexMap_Override added in v0.10.0

func NewComplexMap_Override(c ComplexMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewComplexObject_Override added in v0.7.0

func NewComplexObject_Override(c ComplexObject, terraformResource IInterpolatingParent, terraformAttribute *string, complexObjectIsFromSet *bool, complexObjectIndex interface{})

Experimental.

func NewConsulBackend_Override

func NewConsulBackend_Override(c ConsulBackend, scope constructs.Construct, props *ConsulBackendConfig)

Experimental.

func NewCosBackend_Override

func NewCosBackend_Override(c CosBackend, scope constructs.Construct, props *CosBackendConfig)

Experimental.

func NewDataResource_Override added in v0.20.0

func NewDataResource_Override(d DataResource, scope constructs.Construct, id *string, config *DataConfig)

Create a new TerraformData Resource.

The DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them. Experimental.

func NewDataTerraformRemoteStateAzurerm_Override

func NewDataTerraformRemoteStateAzurerm_Override(d DataTerraformRemoteStateAzurerm, scope constructs.Construct, id *string, config *DataTerraformRemoteStateAzurermConfig)

Experimental.

func NewDataTerraformRemoteStateConsul_Override

func NewDataTerraformRemoteStateConsul_Override(d DataTerraformRemoteStateConsul, scope constructs.Construct, id *string, config *DataTerraformRemoteStateConsulConfig)

Experimental.

func NewDataTerraformRemoteStateCos_Override

func NewDataTerraformRemoteStateCos_Override(d DataTerraformRemoteStateCos, scope constructs.Construct, id *string, config *DataTerraformRemoteStateCosConfig)

Experimental.

func NewDataTerraformRemoteStateGcs_Override

func NewDataTerraformRemoteStateGcs_Override(d DataTerraformRemoteStateGcs, scope constructs.Construct, id *string, config *DataTerraformRemoteStateGcsConfig)

Experimental.

func NewDataTerraformRemoteStateHttp_Override

func NewDataTerraformRemoteStateHttp_Override(d DataTerraformRemoteStateHttp, scope constructs.Construct, id *string, config *DataTerraformRemoteStateHttpConfig)

Experimental.

func NewDataTerraformRemoteStateLocal_Override

func NewDataTerraformRemoteStateLocal_Override(d DataTerraformRemoteStateLocal, scope constructs.Construct, id *string, config *DataTerraformRemoteStateLocalConfig)

Experimental.

func NewDataTerraformRemoteStateOss_Override

func NewDataTerraformRemoteStateOss_Override(d DataTerraformRemoteStateOss, scope constructs.Construct, id *string, config *DataTerraformRemoteStateOssConfig)

Experimental.

func NewDataTerraformRemoteStatePg_Override

func NewDataTerraformRemoteStatePg_Override(d DataTerraformRemoteStatePg, scope constructs.Construct, id *string, config *DataTerraformRemoteStatePgConfig)

Experimental.

func NewDataTerraformRemoteStateS3_Override

func NewDataTerraformRemoteStateS3_Override(d DataTerraformRemoteStateS3, scope constructs.Construct, id *string, config *DataTerraformRemoteStateS3Config)

Experimental.

func NewDataTerraformRemoteStateSwift_Override deprecated

func NewDataTerraformRemoteStateSwift_Override(d DataTerraformRemoteStateSwift, scope constructs.Construct, id *string, config *DataTerraformRemoteStateSwiftConfig)

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func NewDataTerraformRemoteState_Override

func NewDataTerraformRemoteState_Override(d DataTerraformRemoteState, scope constructs.Construct, id *string, config *DataTerraformRemoteStateRemoteConfig)

Experimental.

func NewDefaultTokenResolver_Override

func NewDefaultTokenResolver_Override(d DefaultTokenResolver, concat IFragmentConcatenator)

Resolves tokens. Experimental.

func NewDynamicListTerraformIterator_Override added in v0.20.0

func NewDynamicListTerraformIterator_Override(d DynamicListTerraformIterator, list interface{}, mapKeyAttributeName *string)

Experimental.

func NewFnGenerated_Override added in v0.16.0

func NewFnGenerated_Override(f FnGenerated)

Experimental.

func NewFn_Override added in v0.6.0

func NewFn_Override(f Fn)

Experimental.

func NewGcsBackend_Override

func NewGcsBackend_Override(g GcsBackend, scope constructs.Construct, props *GcsBackendConfig)

Experimental.

func NewHttpBackend_Override

func NewHttpBackend_Override(h HttpBackend, scope constructs.Construct, props *HttpBackendConfig)

Experimental.

func NewImportableResource_Override added in v0.19.0

func NewImportableResource_Override(i ImportableResource, scope constructs.Construct, name *string, config IImportableConfig)

Experimental.

func NewLazyBase_Override added in v0.7.0

func NewLazyBase_Override(l LazyBase)

Experimental.

func NewLazy_Override

func NewLazy_Override(l Lazy)

Experimental.

func NewListTerraformIterator_Override added in v0.12.0

func NewListTerraformIterator_Override(l ListTerraformIterator, list interface{})

Experimental.

func NewLocalBackend_Override

func NewLocalBackend_Override(l LocalBackend, scope constructs.Construct, props *LocalBackendConfig)

Experimental.

func NewManifest_Override

func NewManifest_Override(m Manifest, version *string, outdir *string, hclOutput *bool)

Experimental.

func NewMapList_Override added in v0.16.0

func NewMapList_Override(m MapList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewMapTerraformIterator_Override added in v0.12.0

func NewMapTerraformIterator_Override(m MapTerraformIterator, map_ interface{})

Experimental.

func NewMigrateIds_Override added in v0.19.2

func NewMigrateIds_Override(m MigrateIds)

Experimental.

func NewNamedCloudWorkspace_Override added in v0.12.2

func NewNamedCloudWorkspace_Override(n NamedCloudWorkspace, name *string, project *string)

Experimental.

func NewNamedRemoteWorkspace_Override

func NewNamedRemoteWorkspace_Override(n NamedRemoteWorkspace, name *string)

Experimental.

func NewNumberListList_Override added in v0.17.0

func NewNumberListList_Override(n NumberListList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewNumberListMap_Override added in v0.16.0

func NewNumberListMap_Override(n NumberListMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewNumberMapList_Override added in v0.11.0

func NewNumberMapList_Override(n NumberMapList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewNumberMap_Override

func NewNumberMap_Override(n NumberMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewOp_Override added in v0.14.0

func NewOp_Override(o Op)

Experimental.

func NewOssBackend_Override

func NewOssBackend_Override(o OssBackend, scope constructs.Construct, props *OssBackendConfig)

Experimental.

func NewPgBackend_Override

func NewPgBackend_Override(p PgBackend, scope constructs.Construct, props *PgBackendConfig)

Experimental.

func NewPrefixedRemoteWorkspaces_Override

func NewPrefixedRemoteWorkspaces_Override(p PrefixedRemoteWorkspaces, prefix *string)

Experimental.

func NewRemoteBackend_Override

func NewRemoteBackend_Override(r RemoteBackend, scope constructs.Construct, props *RemoteBackendConfig)

Experimental.

func NewResourceTerraformIterator_Override added in v0.20.0

func NewResourceTerraformIterator_Override(r ResourceTerraformIterator, element ITerraformResource)

Experimental.

func NewResource_Override deprecated

func NewResource_Override(r Resource, scope constructs.Construct, id *string)

Deprecated: - Please use Construct from the constructs package instead.

func NewS3Backend_Override

func NewS3Backend_Override(s S3Backend, scope constructs.Construct, props *S3BackendConfig)

Experimental.

func NewStringConcat_Override

func NewStringConcat_Override(s StringConcat)

Experimental.

func NewStringListList_Override added in v0.17.0

func NewStringListList_Override(s StringListList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewStringListMap_Override added in v0.16.0

func NewStringListMap_Override(s StringListMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewStringMapList_Override added in v0.11.0

func NewStringMapList_Override(s StringMapList, terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool)

Experimental.

func NewStringMap_Override

func NewStringMap_Override(s StringMap, terraformResource IInterpolatingParent, terraformAttribute *string)

Experimental.

func NewSwiftBackend_Override deprecated

func NewSwiftBackend_Override(s SwiftBackend, scope constructs.Construct, props *SwiftBackendConfig)

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func NewTaggedCloudWorkspaces_Override added in v0.12.2

func NewTaggedCloudWorkspaces_Override(t TaggedCloudWorkspaces, tags *[]*string, project *string)

Experimental.

func NewTerraformAsset_Override added in v0.4.0

func NewTerraformAsset_Override(t TerraformAsset, scope constructs.Construct, id *string, config *TerraformAssetConfig)

A Terraform Asset takes a file or directory outside of the CDK for Terraform context and moves it into it.

Assets copy referenced files into the stacks context for further usage in other resources. Experimental.

func NewTerraformBackend_Override

func NewTerraformBackend_Override(t TerraformBackend, scope constructs.Construct, id *string, name *string)

Experimental.

func NewTerraformDataSource_Override

func NewTerraformDataSource_Override(t TerraformDataSource, scope constructs.Construct, id *string, config *TerraformResourceConfig)

Experimental.

func NewTerraformElement_Override

func NewTerraformElement_Override(t TerraformElement, scope constructs.Construct, id *string, elementType *string)

Experimental.

func NewTerraformHclModule_Override

func NewTerraformHclModule_Override(t TerraformHclModule, scope constructs.Construct, id *string, options *TerraformHclModuleConfig)

Experimental.

func NewTerraformIterator_Override added in v0.12.0

func NewTerraformIterator_Override(t TerraformIterator)

Experimental.

func NewTerraformLocal_Override

func NewTerraformLocal_Override(t TerraformLocal, scope constructs.Construct, id *string, expression interface{})

Experimental.

func NewTerraformModule_Override

func NewTerraformModule_Override(t TerraformModule, scope constructs.Construct, id *string, options *TerraformModuleConfig)

Experimental.

func NewTerraformOutput_Override

func NewTerraformOutput_Override(t TerraformOutput, scope constructs.Construct, id *string, config *TerraformOutputConfig)

Experimental.

func NewTerraformProvider_Override

func NewTerraformProvider_Override(t TerraformProvider, scope constructs.Construct, id *string, config *TerraformProviderConfig)

Experimental.

func NewTerraformRemoteState_Override

func NewTerraformRemoteState_Override(t TerraformRemoteState, scope constructs.Construct, id *string, backend *string, config *DataTerraformRemoteStateConfig)

Experimental.

func NewTerraformResourceTargets_Override added in v0.19.0

func NewTerraformResourceTargets_Override(t TerraformResourceTargets)

Experimental.

func NewTerraformResource_Override

func NewTerraformResource_Override(t TerraformResource, scope constructs.Construct, id *string, config *TerraformResourceConfig)

Experimental.

func NewTerraformSelf_Override added in v0.12.0

func NewTerraformSelf_Override(t TerraformSelf)

Experimental.

func NewTerraformStack_Override

func NewTerraformStack_Override(t TerraformStack, scope constructs.Construct, id *string)

Experimental.

func NewTerraformVariable_Override

func NewTerraformVariable_Override(t TerraformVariable, scope constructs.Construct, id *string, config *TerraformVariableConfig)

Experimental.

func NewTesting_Override added in v0.12.0

func NewTesting_Override(t Testing)

Experimental.

func NewToken_Override

func NewToken_Override(t Token)

Experimental.

func NewTokenization_Override

func NewTokenization_Override(t Tokenization)

Experimental.

func NewTokenizedStringFragments_Override

func NewTokenizedStringFragments_Override(t TokenizedStringFragments)

Experimental.

func NewVariableType_Override

func NewVariableType_Override(v VariableType)

Experimental.

func Op_Add added in v0.14.0

func Op_Add(left interface{}, right interface{}) *float64

Renders left + right. Experimental.

func Op_Div added in v0.14.0

func Op_Div(left interface{}, right interface{}) *float64

Renders left / right. Experimental.

func Op_Mod added in v0.14.0

func Op_Mod(left interface{}, right interface{}) *float64

Renders left % right. Experimental.

func Op_Mul added in v0.14.0

func Op_Mul(left interface{}, right interface{}) *float64

Renders left * right. Experimental.

func Op_Negate added in v0.14.0

func Op_Negate(expression interface{}) *float64

Renders -expression. Experimental.

func Op_Sub added in v0.14.0

func Op_Sub(left interface{}, right interface{}) *float64

Renders left - right. Experimental.

func OssBackend_IsBackend added in v0.9.0

func OssBackend_IsBackend(x interface{}) *bool

Experimental.

func OssBackend_IsConstruct added in v0.6.0

func OssBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func OssBackend_IsTerraformElement added in v0.14.0

func OssBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func PgBackend_IsBackend added in v0.9.0

func PgBackend_IsBackend(x interface{}) *bool

Experimental.

func PgBackend_IsConstruct added in v0.6.0

func PgBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func PgBackend_IsTerraformElement added in v0.14.0

func PgBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func RemoteBackend_IsBackend added in v0.9.0

func RemoteBackend_IsBackend(x interface{}) *bool

Experimental.

func RemoteBackend_IsConstruct added in v0.6.0

func RemoteBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func RemoteBackend_IsTerraformElement added in v0.14.0

func RemoteBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func Resource_IsConstruct added in v0.6.0

func Resource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: - Please use Construct from the constructs package instead.

func S3Backend_IsBackend added in v0.9.0

func S3Backend_IsBackend(x interface{}) *bool

Experimental.

func S3Backend_IsConstruct added in v0.6.0

func S3Backend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func S3Backend_IsTerraformElement added in v0.14.0

func S3Backend_IsTerraformElement(x interface{}) *bool

Experimental.

func SwiftBackend_IsBackend deprecated added in v0.9.0

func SwiftBackend_IsBackend(x interface{}) *bool

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func SwiftBackend_IsConstruct added in v0.6.0

func SwiftBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func SwiftBackend_IsTerraformElement deprecated added in v0.14.0

func SwiftBackend_IsTerraformElement(x interface{}) *bool

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func TerraformAsset_IsConstruct added in v0.6.0

func TerraformAsset_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformBackend_IsBackend added in v0.9.0

func TerraformBackend_IsBackend(x interface{}) *bool

Experimental.

func TerraformBackend_IsConstruct added in v0.6.0

func TerraformBackend_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformBackend_IsTerraformElement added in v0.14.0

func TerraformBackend_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformCount_IsTerraformCount added in v0.16.0

func TerraformCount_IsTerraformCount(x interface{}) *bool

Experimental.

func TerraformDataSource_IsConstruct added in v0.6.0

func TerraformDataSource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformDataSource_IsTerraformDataSource added in v0.14.0

func TerraformDataSource_IsTerraformDataSource(x interface{}) *bool

Experimental.

func TerraformDataSource_IsTerraformElement added in v0.14.0

func TerraformDataSource_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformElement_IsConstruct added in v0.6.0

func TerraformElement_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformElement_IsTerraformElement added in v0.14.0

func TerraformElement_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformHclModule_IsConstruct added in v0.6.0

func TerraformHclModule_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformHclModule_IsTerraformElement added in v0.14.0

func TerraformHclModule_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformLocal_IsConstruct added in v0.6.0

func TerraformLocal_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformLocal_IsTerraformElement added in v0.14.0

func TerraformLocal_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformModule_IsConstruct added in v0.6.0

func TerraformModule_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformModule_IsTerraformElement added in v0.14.0

func TerraformModule_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformOutput_IsConstruct added in v0.6.0

func TerraformOutput_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformOutput_IsTerraformElement added in v0.14.0

func TerraformOutput_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformOutput_IsTerraformOutput added in v0.15.0

func TerraformOutput_IsTerraformOutput(x interface{}) *bool

Experimental.

func TerraformProvider_IsConstruct added in v0.6.0

func TerraformProvider_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformProvider_IsTerraformElement added in v0.14.0

func TerraformProvider_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformProvider_IsTerraformProvider added in v0.14.0

func TerraformProvider_IsTerraformProvider(x interface{}) *bool

Experimental.

func TerraformRemoteState_IsConstruct added in v0.6.0

func TerraformRemoteState_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformRemoteState_IsTerraformElement added in v0.14.0

func TerraformRemoteState_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformRemoteState_TfResourceType added in v0.9.0

func TerraformRemoteState_TfResourceType() *string

func TerraformResource_IsConstruct added in v0.6.0

func TerraformResource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformResource_IsTerraformElement added in v0.14.0

func TerraformResource_IsTerraformElement(x interface{}) *bool

Experimental.

func TerraformResource_IsTerraformResource added in v0.14.0

func TerraformResource_IsTerraformResource(x interface{}) *bool

Experimental.

func TerraformSelf_GetAny added in v0.12.0

func TerraformSelf_GetAny(key *string) interface{}

Only usable within a connection block to reference the connections parent resource.

Access a property on the resource like this: `getAny("hostPort")`. Experimental.

func TerraformSelf_GetNumber added in v0.12.0

func TerraformSelf_GetNumber(key *string) *float64

Only usable within a connection block to reference the connections parent resource.

Access a property on the resource like this: `getNumber("hostPort")`. Experimental.

func TerraformSelf_GetString added in v0.12.0

func TerraformSelf_GetString(key *string) *string

Only usable within a connection block to reference the connections parent resource.

Access a property on the resource like this: `getString("publicIp")`. Experimental.

func TerraformStack_IsConstruct added in v0.6.0

func TerraformStack_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformStack_IsStack

func TerraformStack_IsStack(x interface{}) *bool

Experimental.

func TerraformVariable_IsConstruct added in v0.6.0

func TerraformVariable_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.

Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.

func TerraformVariable_IsTerraformElement added in v0.14.0

func TerraformVariable_IsTerraformElement(x interface{}) *bool

Experimental.

func Testing_FullSynth added in v0.6.0

func Testing_FullSynth(stack TerraformStack) *string

Experimental.

func Testing_RenderConstructTree added in v0.6.0

func Testing_RenderConstructTree(construct constructs.IConstruct) *string

Experimental.

func Testing_SetupJest added in v0.6.0

func Testing_SetupJest()

Experimental.

func Testing_Synth

func Testing_Synth(stack TerraformStack, runValidations *bool) *string

Returns the Terraform synthesized JSON. Experimental.

func Testing_SynthHcl added in v0.20.0

func Testing_SynthHcl(stack TerraformStack, runValidations *bool, returnMetadata *bool) interface{}

Returns the Terraform synthesized JSON. Experimental.

func Testing_SynthScope added in v0.6.0

func Testing_SynthScope(fn IScopeCallback) *string

Experimental.

func Testing_ToBeValidTerraform added in v0.12.0

func Testing_ToBeValidTerraform(received *string) *bool

Experimental.

func Testing_ToHaveDataSource added in v0.12.0

func Testing_ToHaveDataSource(received *string, resourceType *string) *bool

Experimental.

func Testing_ToHaveDataSourceWithProperties added in v0.12.0

func Testing_ToHaveDataSourceWithProperties(received *string, resourceType *string, properties *map[string]interface{}) *bool

Experimental.

func Testing_ToHaveProvider added in v0.14.0

func Testing_ToHaveProvider(received *string, resourceType *string) *bool

Experimental.

func Testing_ToHaveProviderWithProperties added in v0.14.0

func Testing_ToHaveProviderWithProperties(received *string, resourceType *string, properties *map[string]interface{}) *bool

Experimental.

func Testing_ToHaveResource added in v0.12.0

func Testing_ToHaveResource(received *string, resourceType *string) *bool

Experimental.

func Testing_ToHaveResourceWithProperties added in v0.12.0

func Testing_ToHaveResourceWithProperties(received *string, resourceType *string, properties *map[string]interface{}) *bool

Experimental.

func Token_ANY_MAP_TOKEN_VALUE added in v0.9.0

func Token_ANY_MAP_TOKEN_VALUE() *string

func Token_AsAnyMap added in v0.9.0

func Token_AsAnyMap(value interface{}, options *EncodingOptions) *map[string]interface{}

Return a reversible map representation of this token. Experimental.

func Token_AsBooleanMap added in v0.9.0

func Token_AsBooleanMap(value interface{}, options *EncodingOptions) *map[string]*bool

Return a reversible map representation of this token. Experimental.

func Token_AsList

func Token_AsList(value interface{}, options *EncodingOptions) *[]*string

Return a reversible list representation of this token. Experimental.

func Token_AsMap added in v0.9.0

func Token_AsMap(value interface{}, mapValue interface{}, options *EncodingOptions) *map[string]interface{}

Return a reversible map representation of this token. Experimental.

func Token_AsNumber

func Token_AsNumber(value interface{}) *float64

Return a reversible number representation of this token. Experimental.

func Token_AsNumberList added in v0.9.0

func Token_AsNumberList(value interface{}) *[]*float64

Return a reversible list representation of this token. Experimental.

func Token_AsNumberMap added in v0.9.0

func Token_AsNumberMap(value interface{}, options *EncodingOptions) *map[string]*float64

Return a reversible map representation of this token. Experimental.

func Token_AsString

func Token_AsString(value interface{}, options *EncodingOptions) *string

Return a reversible string representation of this token.

If the Token is initialized with a literal, the stringified value of the literal is returned. Otherwise, a special quoted string representation of the Token is returned that can be embedded into other strings.

Strings with quoted Tokens in them can be restored back into complex values with the Tokens restored by calling `resolve()` on the string. Experimental.

func Token_AsStringMap added in v0.9.0

func Token_AsStringMap(value interface{}, options *EncodingOptions) *map[string]*string

Return a reversible map representation of this token. Experimental.

func Token_IsUnresolved

func Token_IsUnresolved(obj interface{}) *bool

Returns true if obj represents an unresolved value.

One of these must be true:

- `obj` is an IResolvable - `obj` is a string containing at least one encoded `IResolvable` - `obj` is either an encoded number or list

This does NOT recurse into lists or objects to see if they containing resolvables. Experimental.

func Token_NUMBER_MAP_TOKEN_VALUE added in v0.9.0

func Token_NUMBER_MAP_TOKEN_VALUE() *float64

func Token_STRING_MAP_TOKEN_VALUE added in v0.9.0

func Token_STRING_MAP_TOKEN_VALUE() *string

func Tokenization_IsResolvable

func Tokenization_IsResolvable(obj interface{}) *bool

Return whether the given object is an IResolvable object.

This is different from Token.isUnresolved() which will also check for encoded Tokens, whereas this method will only do a type check on the given object. Experimental.

func Tokenization_Resolve

func Tokenization_Resolve(obj interface{}, options *ResolveOptions) interface{}

Resolves an object by evaluating all tokens and removing any undefined or empty objects or arrays.

Values can only be primitives, arrays or tokens. Other objects (i.e. with methods) will be rejected. Experimental.

func Tokenization_Reverse added in v0.6.0

func Tokenization_Reverse(x interface{}) *[]IResolvable

Reverse any value into Resolvables, if possible. Experimental.

func Tokenization_StringifyNumber

func Tokenization_StringifyNumber(x *float64) *string

Stringify a number directly or lazily if it's a Token.

If it is an object (i.e., { Ref: 'SomeLogicalId' }), return it as-is. Experimental.

func VariableType_ANY

func VariableType_ANY() *string

func VariableType_BOOL

func VariableType_BOOL() *string

func VariableType_LIST

func VariableType_LIST() *string

func VariableType_LIST_BOOL

func VariableType_LIST_BOOL() *string

func VariableType_LIST_NUMBER

func VariableType_LIST_NUMBER() *string

func VariableType_LIST_STRING

func VariableType_LIST_STRING() *string

func VariableType_List

func VariableType_List(type_ *string) *string

Experimental.

func VariableType_MAP

func VariableType_MAP() *string

func VariableType_MAP_BOOL

func VariableType_MAP_BOOL() *string

func VariableType_MAP_NUMBER

func VariableType_MAP_NUMBER() *string

func VariableType_MAP_STRING

func VariableType_MAP_STRING() *string

func VariableType_Map

func VariableType_Map(type_ *string) *string

Experimental.

func VariableType_NUMBER

func VariableType_NUMBER() *string

func VariableType_Object

func VariableType_Object(attributes *map[string]*string) *string

Experimental.

func VariableType_SET

func VariableType_SET() *string

func VariableType_SET_BOOL

func VariableType_SET_BOOL() *string

func VariableType_SET_NUMBER

func VariableType_SET_NUMBER() *string

func VariableType_SET_STRING

func VariableType_SET_STRING() *string

func VariableType_STRING

func VariableType_STRING() *string

func VariableType_Set

func VariableType_Set(type_ *string) *string

Experimental.

func VariableType_Tuple

func VariableType_Tuple(elements ...*string) *string

Experimental.

Types

type AnnotationMetadataEntryType added in v0.6.0

type AnnotationMetadataEntryType string

Experimental.

const (
	// Experimental.
	AnnotationMetadataEntryType_INFO AnnotationMetadataEntryType = "INFO"
	// Experimental.
	AnnotationMetadataEntryType_WARN AnnotationMetadataEntryType = "WARN"
	// Experimental.
	AnnotationMetadataEntryType_ERROR AnnotationMetadataEntryType = "ERROR"
)

type Annotations added in v0.6.0

type Annotations interface {
	// Adds an { "error": <message> } metadata entry to this construct.
	//
	// The toolkit will fail synthesis when errors are reported.
	// Experimental.
	AddError(message *string)
	// Adds an info metadata entry to this construct.
	//
	// The CLI will display the info message when apps are synthesized.
	// Experimental.
	AddInfo(message *string)
	// Adds a warning metadata entry to this construct.
	//
	// The CLI will display the warning when an app is synthesized.
	// In a future release the CLI might introduce a --strict flag which
	// will then fail the synthesis if it encounters a warning.
	// Experimental.
	AddWarning(message *string)
}

Includes API for attaching annotations such as warning messages to constructs. Experimental.

func Annotations_Of added in v0.6.0

func Annotations_Of(scope constructs.IConstruct) Annotations

Returns the annotations API for a construct scope. Experimental.

type AnyListList added in v0.17.0

type AnyListList interface {
	ComplexList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Creating an iterator for this complex list.
	//
	// The list will be converted into a map with the mapKeyAttributeName as the key.
	// Experimental.
	AllWithMapKey(mapKeyAttributeName *string) DynamicListTerraformIterator
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewAnyListList added in v0.17.0

func NewAnyListList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) AnyListList

Experimental.

type AnyListMap added in v0.16.0

type AnyListMap interface {
	ComplexMap
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(key *string) IResolvable
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewAnyListMap added in v0.16.0

func NewAnyListMap(terraformResource IInterpolatingParent, terraformAttribute *string) AnyListMap

Experimental.

type AnyMap added in v0.9.0

type AnyMap interface {
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Lookup(key *string) interface{}
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewAnyMap added in v0.9.0

func NewAnyMap(terraformResource IInterpolatingParent, terraformAttribute *string) AnyMap

Experimental.

type AnyMapList added in v0.11.0

type AnyMapList interface {
	MapList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) AnyMap
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewAnyMapList added in v0.11.0

func NewAnyMapList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) AnyMapList

Experimental.

type App

type App interface {
	constructs.Construct
	// Experimental.
	HclOutput() *bool
	// Experimental.
	Manifest() Manifest
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// The output directory into which resources will be synthesized.
	// Experimental.
	Outdir() *string
	// Whether to skip backend validation during synthesis of the app.
	// Experimental.
	SkipBackendValidation() *bool
	// Whether to skip all validations during synthesis of the app.
	// Experimental.
	SkipValidation() *bool
	// The stack which will be synthesized.
	//
	// If not set, all stacks will be synthesized.
	// Experimental.
	TargetStackId() *string
	// Creates a reference from one stack to another, invoked on prepareStack since it creates extra resources.
	// Experimental.
	CrossStackReference(fromStack TerraformStack, toStack TerraformStack, identifier *string) *string
	// Synthesizes all resources to the output directory.
	// Experimental.
	Synth()
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Represents a cdktf application. Experimental.

func App_Of added in v0.9.0

func App_Of(construct constructs.IConstruct) App

Experimental.

func NewApp

func NewApp(config *AppConfig) App

Defines an app. Experimental.

func Testing_App

func Testing_App(options *TestingAppConfig) App

Returns an app for testing with the following properties: - Output directory is a temp dir. Experimental.

func Testing_EnableFutureFlags

func Testing_EnableFutureFlags(app App) App

Experimental.

func Testing_FakeCdktfJsonPath added in v0.9.0

func Testing_FakeCdktfJsonPath(app App) App

Experimental.

func Testing_StubVersion

func Testing_StubVersion(app App) App

Experimental.

type AppConfig added in v0.15.0

type AppConfig struct {
	// Additional context values for the application.
	//
	// Context set by the CLI or the `context` key in `cdktf.json` has precedence.
	//
	// Context can be read from any construct using `node.getContext(key)`.
	// Default: - no additional context.
	//
	// Experimental.
	Context *map[string]interface{} `field:"optional" json:"context" yaml:"context"`
	// Experimental.
	HclOutput *bool `field:"optional" json:"hclOutput" yaml:"hclOutput"`
	// The directory to output Terraform resources.
	//
	// If you are using the CDKTF CLI, this value is automatically set from one of the following three sources:
	// - The `-o` / `--output` CLI option
	// - The `CDKTF_OUTDIR` environment variable
	// - The `outdir` key in `cdktf.json`
	//
	// If you are using the CDKTF CLI and want to set a different value here, you will also need to set the same value via one of the three ways specified above.
	//
	// The most common case to set this value is when you are using the CDKTF library directly (e.g. when writing unit tests).
	// Default: - CDKTF_OUTDIR if defined, otherwise "cdktf.out"
	//
	// Experimental.
	Outdir *string `field:"optional" json:"outdir" yaml:"outdir"`
	// Whether to skip backend validation during synthesis of the app.
	// Default: - false.
	//
	// Experimental.
	SkipBackendValidation *bool `field:"optional" json:"skipBackendValidation" yaml:"skipBackendValidation"`
	// Whether to skip all validations during synthesis of the app.
	// Default: - false.
	//
	// Experimental.
	SkipValidation *bool `field:"optional" json:"skipValidation" yaml:"skipValidation"`
	// Experimental.
	StackTraces *bool `field:"optional" json:"stackTraces" yaml:"stackTraces"`
}

Experimental.

type Aspects added in v0.6.0

type Aspects interface {
	// The list of aspects which were directly applied on this scope.
	// Experimental.
	All() *[]IAspect
	// Adds an aspect to apply this scope before synthesis.
	// Experimental.
	Add(aspect IAspect)
}

Aspects can be applied to CDK tree scopes and can operate on the tree before synthesis. Experimental.

func Aspects_Of added in v0.6.0

func Aspects_Of(scope constructs.IConstruct) Aspects

Returns the `Aspects` object associated with a construct scope. Experimental.

type AssetType added in v0.4.0

type AssetType string

Experimental.

const (
	// Experimental.
	AssetType_FILE AssetType = "FILE"
	// Experimental.
	AssetType_DIRECTORY AssetType = "DIRECTORY"
	// Experimental.
	AssetType_ARCHIVE AssetType = "ARCHIVE"
)

type AzurermBackend

type AzurermBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewAzurermBackend

func NewAzurermBackend(scope constructs.Construct, props *AzurermBackendConfig) AzurermBackend

Experimental.

type AzurermBackendConfig added in v0.15.0

type AzurermBackendConfig struct {
	// (Required) The Name of the Storage Container within the Storage Account.
	// Experimental.
	ContainerName *string `field:"required" json:"containerName" yaml:"containerName"`
	// (Required) The name of the Blob used to retrieve/store Terraform's State file inside the Storage Container.
	// Experimental.
	Key *string `field:"required" json:"key" yaml:"key"`
	// (Required) The Name of the Storage Account.
	// Experimental.
	StorageAccountName *string `field:"required" json:"storageAccountName" yaml:"storageAccountName"`
	// access_key - (Optional) The Access Key used to access the Blob Storage Account.
	//
	// This can also be sourced from the ARM_ACCESS_KEY environment variable.
	// Experimental.
	AccessKey *string `field:"optional" json:"accessKey" yaml:"accessKey"`
	// (Optional) The password associated with the Client Certificate specified in client_certificate_path.
	//
	// This can also be sourced from the
	// ARM_CLIENT_CERTIFICATE_PASSWORD environment variable.
	// Experimental.
	ClientCertificatePassword *string `field:"optional" json:"clientCertificatePassword" yaml:"clientCertificatePassword"`
	// (Optional) The path to the PFX file used as the Client Certificate when authenticating as a Service Principal.
	//
	// This can also be sourced from the
	// ARM_CLIENT_CERTIFICATE_PATH environment variable.
	// Experimental.
	ClientCertificatePath *string `field:"optional" json:"clientCertificatePath" yaml:"clientCertificatePath"`
	// (Optional) The Client ID of the Service Principal.
	//
	// This can also be sourced from the ARM_CLIENT_ID environment variable.
	// Experimental.
	ClientId *string `field:"optional" json:"clientId" yaml:"clientId"`
	// (Optional) The Client Secret of the Service Principal.
	//
	// This can also be sourced from the ARM_CLIENT_SECRET environment variable.
	// Experimental.
	ClientSecret *string `field:"optional" json:"clientSecret" yaml:"clientSecret"`
	// (Optional) The Custom Endpoint for Azure Resource Manager. This can also be sourced from the ARM_ENDPOINT environment variable.
	//
	// NOTE: An endpoint should only be configured when using Azure Stack.
	// Experimental.
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The Azure Environment which should be used.
	//
	// This can also be sourced from the ARM_ENVIRONMENT environment variable.
	//  Possible values are public, china, german, stack and usgovernment. Defaults to public.
	// Experimental.
	Environment *string `field:"optional" json:"environment" yaml:"environment"`
	// (Optional) The Hostname of the Azure Metadata Service (for example management.azure.com), used to obtain the Cloud Environment when using a Custom Azure Environment. This can also be sourced from the ARM_METADATA_HOSTNAME Environment Variable.).
	// Experimental.
	MetadataHost *string `field:"optional" json:"metadataHost" yaml:"metadataHost"`
	// (Optional) The path to a custom Managed Service Identity endpoint which is automatically determined if not specified.
	//
	// This can also be sourced from the ARM_MSI_ENDPOINT environment variable.
	// Experimental.
	MsiEndpoint *string `field:"optional" json:"msiEndpoint" yaml:"msiEndpoint"`
	// (Optional) The bearer token for the request to the OIDC provider.
	//
	// This can
	// also be sourced from the ARM_OIDC_REQUEST_TOKEN or
	// ACTIONS_ID_TOKEN_REQUEST_TOKEN environment variables.
	// Experimental.
	OidcRequestToken *string `field:"optional" json:"oidcRequestToken" yaml:"oidcRequestToken"`
	// (Optional) The URL for the OIDC provider from which to request an ID token.
	//
	// This can also be sourced from the ARM_OIDC_REQUEST_URL or
	// ACTIONS_ID_TOKEN_REQUEST_URL environment variables.
	// Experimental.
	OidcRequestUrl *string `field:"optional" json:"oidcRequestUrl" yaml:"oidcRequestUrl"`
	// (Optional) The ID token when authenticating using OpenID Connect (OIDC).
	//
	// This can also be sourced from the ARM_OIDC_TOKEN environment variable.
	// Experimental.
	OidcToken *string `field:"optional" json:"oidcToken" yaml:"oidcToken"`
	// (Optional) The path to a file containing an ID token when authenticating using OpenID Connect (OIDC).
	//
	// This can also be sourced from the ARM_OIDC_TOKEN_FILE_PATH environment variable.
	// Experimental.
	OidcTokenFilePath *string `field:"optional" json:"oidcTokenFilePath" yaml:"oidcTokenFilePath"`
	// (Required) The Name of the Resource Group in which the Storage Account exists.
	// Experimental.
	ResourceGroupName *string `field:"optional" json:"resourceGroupName" yaml:"resourceGroupName"`
	// (Optional) The SAS Token used to access the Blob Storage Account.
	//
	// This can also be sourced from the ARM_SAS_TOKEN environment variable.
	// Experimental.
	SasToken *string `field:"optional" json:"sasToken" yaml:"sasToken"`
	// (Optional) Should the Blob used to store the Terraform Statefile be snapshotted before use?
	//
	// Defaults to false. This value can also be sourced
	// from the ARM_SNAPSHOT environment variable.
	// Experimental.
	Snapshot *bool `field:"optional" json:"snapshot" yaml:"snapshot"`
	// (Optional) The Subscription ID in which the Storage Account exists.
	//
	// This can also be sourced from the ARM_SUBSCRIPTION_ID environment variable.
	// Experimental.
	SubscriptionId *string `field:"optional" json:"subscriptionId" yaml:"subscriptionId"`
	// (Optional) The Tenant ID in which the Subscription exists.
	//
	// This can also be sourced from the ARM_TENANT_ID environment variable.
	// Experimental.
	TenantId *string `field:"optional" json:"tenantId" yaml:"tenantId"`
	// (Optional) Should AzureAD Authentication be used to access the Blob Storage Account.
	//
	// This can also be sourced from the ARM_USE_AZUREAD environment
	// variable.
	//
	// Note: When using AzureAD for Authentication to Storage you also need to
	// ensure the Storage Blob Data Owner role is assigned.
	// Experimental.
	UseAzureadAuth *bool `field:"optional" json:"useAzureadAuth" yaml:"useAzureadAuth"`
	// (Optional) Should MSAL be used for authentication instead of ADAL, and should Microsoft Graph be used instead of Azure Active Directory Graph?
	//
	// Defaults to true.
	//
	// Note: In Terraform 1.2 the Azure Backend uses MSAL (and Microsoft Graph)
	// rather than ADAL (and Azure Active Directory Graph) for authentication by
	// default - you can disable this by setting use_microsoft_graph to false.
	// This setting will be removed in Terraform 1.3, due to Microsoft's
	// deprecation of ADAL.
	// Experimental.
	UseMicrosoftGraph *bool `field:"optional" json:"useMicrosoftGraph" yaml:"useMicrosoftGraph"`
	// (Optional) Should Managed Service Identity authentication be used?
	//
	// This can also be sourced from the ARM_USE_MSI environment variable.
	// Experimental.
	UseMsi *bool `field:"optional" json:"useMsi" yaml:"useMsi"`
	// (Optional) Should OIDC authentication be used? This can also be sourced from the ARM_USE_OIDC environment variable.
	//
	// Note: When using OIDC for authentication, use_microsoft_graph
	// must be set to true (which is the default).
	// Experimental.
	UseOidc *bool `field:"optional" json:"useOidc" yaml:"useOidc"`
}

Stores the state as a Blob with the given Key within the Blob Container within the Blob Storage Account.

This backend supports state locking and consistency checking with Azure Blob Storage native capabilities.

Note: By default the Azure Backend uses ADAL for authentication which is deprecated in favour of MSAL - MSAL can be used by setting use_microsoft_graph to true. The default for this will change in Terraform 1.2, so that MSAL authentication is used by default.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/azurerm Experimental.

type BooleanList added in v0.16.0

type BooleanList interface {
	ComplexList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Creating an iterator for this complex list.
	//
	// The list will be converted into a map with the mapKeyAttributeName as the key.
	// Experimental.
	AllWithMapKey(mapKeyAttributeName *string) DynamicListTerraformIterator
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewBooleanList added in v0.16.0

func NewBooleanList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) BooleanList

Experimental.

type BooleanListList added in v0.17.0

type BooleanListList interface {
	ComplexList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Creating an iterator for this complex list.
	//
	// The list will be converted into a map with the mapKeyAttributeName as the key.
	// Experimental.
	AllWithMapKey(mapKeyAttributeName *string) DynamicListTerraformIterator
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewBooleanListList added in v0.17.0

func NewBooleanListList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) BooleanListList

Experimental.

type BooleanListMap added in v0.16.0

type BooleanListMap interface {
	ComplexMap
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(key *string) IResolvable
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewBooleanListMap added in v0.16.0

func NewBooleanListMap(terraformResource IInterpolatingParent, terraformAttribute *string) BooleanListMap

Experimental.

type BooleanMap

type BooleanMap interface {
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Lookup(key *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewBooleanMap

func NewBooleanMap(terraformResource IInterpolatingParent, terraformAttribute *string) BooleanMap

Experimental.

type BooleanMapList added in v0.11.0

type BooleanMapList interface {
	MapList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) BooleanMap
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewBooleanMapList added in v0.11.0

func NewBooleanMapList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) BooleanMapList

Experimental.

type CloudBackend added in v0.12.2

type CloudBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

The Cloud Backend synthesizes a {@link https://developer.hashicorp.com/terraform/cli/cloud/settings#the-cloud-block cloud block}. The cloud block is a nested block within the top-level terraform settings block. It specifies which Terraform Cloud workspaces to use for the current working directory. The cloud block only affects Terraform CLI's behavior. When Terraform Cloud uses a configuration that contains a cloud block - for example, when a workspace is configured to use a VCS provider directly - it ignores the block and behaves according to its own workspace settings. Experimental.

func NewCloudBackend added in v0.12.2

func NewCloudBackend(scope constructs.Construct, props *CloudBackendConfig) CloudBackend

Experimental.

type CloudBackendConfig added in v0.15.0

type CloudBackendConfig struct {
	// The name of the organization containing the workspace(s) the current configuration should use.
	// Experimental.
	Organization *string `field:"required" json:"organization" yaml:"organization"`
	// A nested block that specifies which remote Terraform Cloud workspaces to use for the current configuration.
	//
	// The workspaces block must contain exactly one of the following arguments, each denoting a strategy for how workspaces should be mapped:.
	// Experimental.
	Workspaces interface{} `field:"required" json:"workspaces" yaml:"workspaces"`
	// The hostname of a Terraform Enterprise installation, if using Terraform Enterprise.
	// Default: app.terraform.io
	//
	// Experimental.
	Hostname *string `field:"optional" json:"hostname" yaml:"hostname"`
	// The token used to authenticate with Terraform Cloud.
	//
	// We recommend omitting the token from the configuration, and instead using terraform login or manually configuring credentials in the CLI config file.
	// Experimental.
	Token *string `field:"optional" json:"token" yaml:"token"`
}

The Cloud Backend synthesizes a {@link https://developer.hashicorp.com/terraform/cli/cloud/settings#the-cloud-block cloud block}. The cloud block is a nested block within the top-level terraform settings block. It specifies which Terraform Cloud workspaces to use for the current working directory. The cloud block only affects Terraform CLI's behavior. When Terraform Cloud uses a configuration that contains a cloud block - for example, when a workspace is configured to use a VCS provider directly - it ignores the block and behaves according to its own workspace settings.

https://developer.hashicorp.com/terraform/cli/cloud/settings#arguments Experimental.

type CloudWorkspace added in v0.12.2

type CloudWorkspace interface {
	// Experimental.
	ToTerraform() interface{}
}

A cloud workspace can either be a single named workspace, or a list of tagged workspaces. Experimental.

type ComplexComputedList deprecated

type ComplexComputedList interface {
	IInterpolatingParent
	IResolvable
	ITerraformAddressable
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	ComplexComputedListIndex() *string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	SetComplexComputedListIndex(val *string)
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	CreationStack() *[]*string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	Fqn() *string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	TerraformAttribute() *string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	SetTerraformAttribute(val *string)
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	TerraformResource() IInterpolatingParent
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	SetTerraformResource(val IInterpolatingParent)
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	WrapsSet() *bool
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	SetWrapsSet(val *bool)
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	ComputeFqn() *string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetBooleanAttribute(terraformAttribute *string) IResolvable
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetStringAttribute(terraformAttribute *string) *string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Deprecated: Going to be replaced by Array of ComplexListItem
	// and will be removed in the future.
	ToString() *string
}

Deprecated: Going to be replaced by Array of ComplexListItem and will be removed in the future.

func NewComplexComputedList deprecated

func NewComplexComputedList(terraformResource IInterpolatingParent, terraformAttribute *string, complexComputedListIndex *string, wrapsSet *bool) ComplexComputedList

Deprecated: Going to be replaced by Array of ComplexListItem and will be removed in the future.

type ComplexList added in v0.10.0

type ComplexList interface {
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Creating an iterator for this complex list.
	//
	// The list will be converted into a map with the mapKeyAttributeName as the key.
	// Experimental.
	AllWithMapKey(mapKeyAttributeName *string) DynamicListTerraformIterator
	// Experimental.
	ComputeFqn() *string
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

type ComplexMap added in v0.10.0

type ComplexMap interface {
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

type ComplexObject added in v0.7.0

type ComplexObject interface {
	IInterpolatingParent
	IResolvable
	ITerraformAddressable
	// the index of the complex object in a list.
	// Experimental.
	ComplexObjectIndex() interface{}
	// Experimental.
	SetComplexObjectIndex(val interface{})
	// set to true if this item is from inside a set and needs tolist() for accessing it set to "0" for single list items.
	// Experimental.
	ComplexObjectIsFromSet() *bool
	// Experimental.
	SetComplexObjectIsFromSet(val *bool)
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	InterpolationAsList() IResolvable
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewComplexObject added in v0.7.0

func NewComplexObject(terraformResource IInterpolatingParent, terraformAttribute *string, complexObjectIsFromSet *bool, complexObjectIndex interface{}) ComplexObject

Experimental.

type ConsulBackend

type ConsulBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewConsulBackend

func NewConsulBackend(scope constructs.Construct, props *ConsulBackendConfig) ConsulBackend

Experimental.

type ConsulBackendConfig added in v0.15.0

type ConsulBackendConfig struct {
	// (Required) Access token.
	// Experimental.
	AccessToken *string `field:"required" json:"accessToken" yaml:"accessToken"`
	// (Required) Path in the Consul KV store.
	// Experimental.
	Path *string `field:"required" json:"path" yaml:"path"`
	// (Optional) DNS name and port of your Consul endpoint specified in the format dnsname:port.
	//
	// Defaults to the local agent HTTP listener.
	// Experimental.
	Address *string `field:"optional" json:"address" yaml:"address"`
	// (Optional) A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
	// Experimental.
	CaFile *string `field:"optional" json:"caFile" yaml:"caFile"`
	// (Optional) A path to a PEM-encoded certificate provided to the remote agent;
	//
	// requires use of key_file.
	// Experimental.
	CertFile *string `field:"optional" json:"certFile" yaml:"certFile"`
	// (Optional) The datacenter to use.
	//
	// Defaults to that of the agent.
	// Experimental.
	Datacenter *string `field:"optional" json:"datacenter" yaml:"datacenter"`
	// (Optional) true to compress the state data using gzip, or false (the default) to leave it uncompressed.
	// Experimental.
	Gzip *bool `field:"optional" json:"gzip" yaml:"gzip"`
	// (Optional) HTTP Basic Authentication credentials to be used when communicating with Consul, in the format of either user or user:pass.
	// Experimental.
	HttpAuth *string `field:"optional" json:"httpAuth" yaml:"httpAuth"`
	// (Optional) A path to a PEM-encoded private key, required if cert_file is specified.
	// Experimental.
	KeyFile *string `field:"optional" json:"keyFile" yaml:"keyFile"`
	// (Optional) false to disable locking.
	//
	// This defaults to true, but will require session permissions with Consul and
	// at least kv write permissions on $path/.lock to perform locking.
	// Experimental.
	Lock *bool `field:"optional" json:"lock" yaml:"lock"`
	// (Optional) Specifies what protocol to use when talking to the given address,either http or https.
	//
	// SSL support can also be triggered by setting then environment variable CONSUL_HTTP_SSL to true.
	// Experimental.
	Scheme *string `field:"optional" json:"scheme" yaml:"scheme"`
}

Stores the state in the Consul KV store at a given path. This backend supports state locking.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/consul Experimental.

type CosBackend

type CosBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewCosBackend

func NewCosBackend(scope constructs.Construct, props *CosBackendConfig) CosBackend

Experimental.

type CosBackendAssumeRole added in v0.20.0

type CosBackendAssumeRole struct {
	// (Required) The ARN of the role to assume.
	//
	// It can be sourced from the TENCENTCLOUD_ASSUME_ROLE_ARN.
	// Experimental.
	RoleArn *string `field:"required" json:"roleArn" yaml:"roleArn"`
	// (Required) The duration of the session when making the AssumeRole call.
	//
	// Its value ranges from 0 to 43200(seconds), and default is 7200 seconds.
	// It can be sourced from the TENCENTCLOUD_ASSUME_ROLE_SESSION_DURATION.
	// Experimental.
	SessionDuration *float64 `field:"required" json:"sessionDuration" yaml:"sessionDuration"`
	// (Required) The session name to use when making the AssumeRole call.
	//
	// It can be sourced from the TENCENTCLOUD_ASSUME_ROLE_SESSION_NAME.
	// Experimental.
	SessionName *string `field:"required" json:"sessionName" yaml:"sessionName"`
	// (Optional) A more restrictive policy when making the AssumeRole call.
	//
	// Its content must not contains principal elements.
	// Please refer to {@link https://www.tencentcloud.com/document/product/598/10603 policies syntax logic}.
	// Experimental.
	Policy interface{} `field:"optional" json:"policy" yaml:"policy"`
}

Experimental.

type CosBackendConfig added in v0.15.0

type CosBackendConfig struct {
	// (Required) The name of the COS bucket.
	//
	// You shall manually create it first.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// (Optional) Whether to enable global Acceleration.
	//
	// Defaults to false.
	// Experimental.
	Accelerate *bool `field:"optional" json:"accelerate" yaml:"accelerate"`
	// (Optional) Object ACL to be applied to the state file, allows private and public-read.
	//
	// Defaults to private.
	// Experimental.
	Acl *string `field:"optional" json:"acl" yaml:"acl"`
	// (Optional) The assume_role block.
	//
	// If provided, terraform will attempt to assume this role using the supplied credentials.
	// Experimental.
	AssumeRole *CosBackendAssumeRole `field:"optional" json:"assumeRole" yaml:"assumeRole"`
	// (Optional) The root domain of the API request.
	//
	// Defaults to tencentcloudapi.com.
	// It supports the environment variable TENCENTCLOUD_DOMAIN.
	// Experimental.
	Domain *string `field:"optional" json:"domain" yaml:"domain"`
	// (Optional) Whether to enable server side encryption of the state file.
	//
	// If it is true, COS will use 'AES256' encryption algorithm to encrypt state file.
	// Experimental.
	Encrypt *bool `field:"optional" json:"encrypt" yaml:"encrypt"`
	// (Optional) The Custom Endpoint for the COS backend.
	//
	// It supports the environment variable TENCENTCLOUD_ENDPOINT.
	// Experimental.
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The path for saving the state file in bucket.
	//
	// Defaults to terraform.tfstate.
	// Experimental.
	Key *string `field:"optional" json:"key" yaml:"key"`
	// (Optional) The directory for saving the state file in bucket.
	//
	// Default to "env:".
	// Experimental.
	Prefix *string `field:"optional" json:"prefix" yaml:"prefix"`
	// (Optional) The region of the COS bucket.
	//
	// It supports environment variables TENCENTCLOUD_REGION.
	// Experimental.
	Region *string `field:"optional" json:"region" yaml:"region"`
	// (Optional) Secret id of Tencent Cloud.
	//
	// It supports environment variables TENCENTCLOUD_SECRET_ID.
	// Experimental.
	SecretId *string `field:"optional" json:"secretId" yaml:"secretId"`
	// (Optional) Secret key of Tencent Cloud.
	//
	// It supports environment variables TENCENTCLOUD_SECRET_KEY.
	// Experimental.
	SecretKey *string `field:"optional" json:"secretKey" yaml:"secretKey"`
	// (Optional) TencentCloud Security Token of temporary access credentials.
	//
	// It supports environment variables TENCENTCLOUD_SECURITY_TOKEN.
	// Experimental.
	SecurityToken *string `field:"optional" json:"securityToken" yaml:"securityToken"`
}

Stores the state as an object in a configurable prefix in a given bucket on Tencent Cloud Object Storage (COS).

This backend supports state locking.

Warning! It is highly recommended that you enable Object Versioning on the COS bucket to allow for state recovery in the case of accidental deletions and human error.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/cos Experimental.

type DataConfig added in v0.20.0

type DataConfig struct {
	// Experimental.
	Connection interface{} `field:"optional" json:"connection" yaml:"connection"`
	// Experimental.
	Count interface{} `field:"optional" json:"count" yaml:"count"`
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Lifecycle *TerraformResourceLifecycle `field:"optional" json:"lifecycle" yaml:"lifecycle"`
	// Experimental.
	Provider TerraformProvider `field:"optional" json:"provider" yaml:"provider"`
	// Experimental.
	Provisioners *[]interface{} `field:"optional" json:"provisioners" yaml:"provisioners"`
	// (Optional) A value which will be stored in the instance state, and reflected in the output attribute after apply.
	//
	// https://developer.hashicorp.com/terraform/language/resources/terraform-data#input
	// Experimental.
	Input *map[string]interface{} `field:"optional" json:"input" yaml:"input"`
	// (Optional) A value which is stored in the instance state, and will force replacement when the value changes.
	//
	// https://developer.hashicorp.com/terraform/language/resources/terraform-data#triggers_replace
	// Experimental.
	TriggersReplace *map[string]interface{} `field:"optional" json:"triggersReplace" yaml:"triggersReplace"`
}

Experimental.

type DataResource added in v0.20.0

type DataResource interface {
	TerraformResource
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	Connection() interface{}
	// Experimental.
	SetConnection(val interface{})
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Count() interface{}
	// Experimental.
	SetCount(val interface{})
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(val *[]*string)
	// Experimental.
	ForEach() ITerraformIterator
	// Experimental.
	SetForEach(val ITerraformIterator)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Id() *string
	// (Optional) A value which will be stored in the instance state, and reflected in the output attribute after apply.
	//
	// https://developer.hashicorp.com/terraform/language/resources/terraform-data#input
	// Experimental.
	Input() *map[string]interface{}
	// Experimental.
	SetInput(val *map[string]interface{})
	// Experimental.
	InputInput() *map[string]interface{}
	// Experimental.
	Lifecycle() *TerraformResourceLifecycle
	// Experimental.
	SetLifecycle(val *TerraformResourceLifecycle)
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Output() AnyMap
	// Experimental.
	Provider() TerraformProvider
	// Experimental.
	SetProvider(val TerraformProvider)
	// Experimental.
	Provisioners() *[]interface{}
	// Experimental.
	SetProvisioners(val *[]interface{})
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	TerraformGeneratorMetadata() *TerraformProviderGeneratorMetadata
	// Experimental.
	TerraformMetaArguments() *map[string]interface{}
	// Experimental.
	TerraformResourceType() *string
	// (Optional) A value which is stored in the instance state, and will force replacement when the value changes.
	//
	// https://developer.hashicorp.com/terraform/language/resources/terraform-data#triggers_replace
	// Experimental.
	TriggersReplace() *map[string]interface{}
	// Experimental.
	SetTriggersReplace(val *map[string]interface{})
	// Experimental.
	TriggersReplaceInput() *map[string]interface{}
	// Adds a user defined moveTarget string to this resource to be later used in .moveTo(moveTarget) to resolve the location of the move.
	// Experimental.
	AddMoveTarget(moveTarget *string)
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	HasResourceMove() interface{}
	// Experimental.
	ImportFrom(id *string, provider TerraformProvider)
	// Experimental.
	InterpolationForAttribute(terraformAttribute *string) IResolvable
	// Move the resource corresponding to "id" to this resource.
	//
	// Note that the resource being moved from must be marked as moved using it's instance function.
	// Experimental.
	MoveFromId(id *string)
	// Moves this resource to the target resource given by moveTarget.
	// Experimental.
	MoveTo(moveTarget *string, index interface{})
	// Moves this resource to the resource corresponding to "id".
	// Experimental.
	MoveToId(id *string)
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Experimental.
	ResetInput()
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	ResetTriggersReplace()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

The DataResource implements the standard resource lifecycle, but does not directly take any other actions.

You can use the DataResource resource without requiring or configuring a provider.

The DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them.

It requires Terraform 1.4 or later.

It is also possible to generate these bindings by adding "terraform.io/builtin/terraform" to the "terraformProviders" key in your cdktf.json file and running "cdktf get".

https://developer.hashicorp.com/terraform/language/resources/terraform-data Experimental.

func NewDataResource added in v0.20.0

func NewDataResource(scope constructs.Construct, id *string, config *DataConfig) DataResource

Create a new TerraformData Resource.

The DataResource resource is useful for storing values which need to follow a manage resource lifecycle, and for triggering provisioners when there is no other logical managed resource in which to place them. Experimental.

type DataTerraformRemoteState

type DataTerraformRemoteState interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteState

func NewDataTerraformRemoteState(scope constructs.Construct, id *string, config *DataTerraformRemoteStateRemoteConfig) DataTerraformRemoteState

Experimental.

type DataTerraformRemoteStateAzurerm

type DataTerraformRemoteStateAzurerm interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateAzurerm

func NewDataTerraformRemoteStateAzurerm(scope constructs.Construct, id *string, config *DataTerraformRemoteStateAzurermConfig) DataTerraformRemoteStateAzurerm

Experimental.

type DataTerraformRemoteStateAzurermConfig

type DataTerraformRemoteStateAzurermConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// (Required) The Name of the Storage Container within the Storage Account.
	// Experimental.
	ContainerName *string `field:"required" json:"containerName" yaml:"containerName"`
	// (Required) The name of the Blob used to retrieve/store Terraform's State file inside the Storage Container.
	// Experimental.
	Key *string `field:"required" json:"key" yaml:"key"`
	// (Required) The Name of the Storage Account.
	// Experimental.
	StorageAccountName *string `field:"required" json:"storageAccountName" yaml:"storageAccountName"`
	// access_key - (Optional) The Access Key used to access the Blob Storage Account.
	//
	// This can also be sourced from the ARM_ACCESS_KEY environment variable.
	// Experimental.
	AccessKey *string `field:"optional" json:"accessKey" yaml:"accessKey"`
	// (Optional) The password associated with the Client Certificate specified in client_certificate_path.
	//
	// This can also be sourced from the
	// ARM_CLIENT_CERTIFICATE_PASSWORD environment variable.
	// Experimental.
	ClientCertificatePassword *string `field:"optional" json:"clientCertificatePassword" yaml:"clientCertificatePassword"`
	// (Optional) The path to the PFX file used as the Client Certificate when authenticating as a Service Principal.
	//
	// This can also be sourced from the
	// ARM_CLIENT_CERTIFICATE_PATH environment variable.
	// Experimental.
	ClientCertificatePath *string `field:"optional" json:"clientCertificatePath" yaml:"clientCertificatePath"`
	// (Optional) The Client ID of the Service Principal.
	//
	// This can also be sourced from the ARM_CLIENT_ID environment variable.
	// Experimental.
	ClientId *string `field:"optional" json:"clientId" yaml:"clientId"`
	// (Optional) The Client Secret of the Service Principal.
	//
	// This can also be sourced from the ARM_CLIENT_SECRET environment variable.
	// Experimental.
	ClientSecret *string `field:"optional" json:"clientSecret" yaml:"clientSecret"`
	// (Optional) The Custom Endpoint for Azure Resource Manager. This can also be sourced from the ARM_ENDPOINT environment variable.
	//
	// NOTE: An endpoint should only be configured when using Azure Stack.
	// Experimental.
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The Azure Environment which should be used.
	//
	// This can also be sourced from the ARM_ENVIRONMENT environment variable.
	//  Possible values are public, china, german, stack and usgovernment. Defaults to public.
	// Experimental.
	Environment *string `field:"optional" json:"environment" yaml:"environment"`
	// (Optional) The Hostname of the Azure Metadata Service (for example management.azure.com), used to obtain the Cloud Environment when using a Custom Azure Environment. This can also be sourced from the ARM_METADATA_HOSTNAME Environment Variable.).
	// Experimental.
	MetadataHost *string `field:"optional" json:"metadataHost" yaml:"metadataHost"`
	// (Optional) The path to a custom Managed Service Identity endpoint which is automatically determined if not specified.
	//
	// This can also be sourced from the ARM_MSI_ENDPOINT environment variable.
	// Experimental.
	MsiEndpoint *string `field:"optional" json:"msiEndpoint" yaml:"msiEndpoint"`
	// (Optional) The bearer token for the request to the OIDC provider.
	//
	// This can
	// also be sourced from the ARM_OIDC_REQUEST_TOKEN or
	// ACTIONS_ID_TOKEN_REQUEST_TOKEN environment variables.
	// Experimental.
	OidcRequestToken *string `field:"optional" json:"oidcRequestToken" yaml:"oidcRequestToken"`
	// (Optional) The URL for the OIDC provider from which to request an ID token.
	//
	// This can also be sourced from the ARM_OIDC_REQUEST_URL or
	// ACTIONS_ID_TOKEN_REQUEST_URL environment variables.
	// Experimental.
	OidcRequestUrl *string `field:"optional" json:"oidcRequestUrl" yaml:"oidcRequestUrl"`
	// (Optional) The ID token when authenticating using OpenID Connect (OIDC).
	//
	// This can also be sourced from the ARM_OIDC_TOKEN environment variable.
	// Experimental.
	OidcToken *string `field:"optional" json:"oidcToken" yaml:"oidcToken"`
	// (Optional) The path to a file containing an ID token when authenticating using OpenID Connect (OIDC).
	//
	// This can also be sourced from the ARM_OIDC_TOKEN_FILE_PATH environment variable.
	// Experimental.
	OidcTokenFilePath *string `field:"optional" json:"oidcTokenFilePath" yaml:"oidcTokenFilePath"`
	// (Required) The Name of the Resource Group in which the Storage Account exists.
	// Experimental.
	ResourceGroupName *string `field:"optional" json:"resourceGroupName" yaml:"resourceGroupName"`
	// (Optional) The SAS Token used to access the Blob Storage Account.
	//
	// This can also be sourced from the ARM_SAS_TOKEN environment variable.
	// Experimental.
	SasToken *string `field:"optional" json:"sasToken" yaml:"sasToken"`
	// (Optional) Should the Blob used to store the Terraform Statefile be snapshotted before use?
	//
	// Defaults to false. This value can also be sourced
	// from the ARM_SNAPSHOT environment variable.
	// Experimental.
	Snapshot *bool `field:"optional" json:"snapshot" yaml:"snapshot"`
	// (Optional) The Subscription ID in which the Storage Account exists.
	//
	// This can also be sourced from the ARM_SUBSCRIPTION_ID environment variable.
	// Experimental.
	SubscriptionId *string `field:"optional" json:"subscriptionId" yaml:"subscriptionId"`
	// (Optional) The Tenant ID in which the Subscription exists.
	//
	// This can also be sourced from the ARM_TENANT_ID environment variable.
	// Experimental.
	TenantId *string `field:"optional" json:"tenantId" yaml:"tenantId"`
	// (Optional) Should AzureAD Authentication be used to access the Blob Storage Account.
	//
	// This can also be sourced from the ARM_USE_AZUREAD environment
	// variable.
	//
	// Note: When using AzureAD for Authentication to Storage you also need to
	// ensure the Storage Blob Data Owner role is assigned.
	// Experimental.
	UseAzureadAuth *bool `field:"optional" json:"useAzureadAuth" yaml:"useAzureadAuth"`
	// (Optional) Should MSAL be used for authentication instead of ADAL, and should Microsoft Graph be used instead of Azure Active Directory Graph?
	//
	// Defaults to true.
	//
	// Note: In Terraform 1.2 the Azure Backend uses MSAL (and Microsoft Graph)
	// rather than ADAL (and Azure Active Directory Graph) for authentication by
	// default - you can disable this by setting use_microsoft_graph to false.
	// This setting will be removed in Terraform 1.3, due to Microsoft's
	// deprecation of ADAL.
	// Experimental.
	UseMicrosoftGraph *bool `field:"optional" json:"useMicrosoftGraph" yaml:"useMicrosoftGraph"`
	// (Optional) Should Managed Service Identity authentication be used?
	//
	// This can also be sourced from the ARM_USE_MSI environment variable.
	// Experimental.
	UseMsi *bool `field:"optional" json:"useMsi" yaml:"useMsi"`
	// (Optional) Should OIDC authentication be used? This can also be sourced from the ARM_USE_OIDC environment variable.
	//
	// Note: When using OIDC for authentication, use_microsoft_graph
	// must be set to true (which is the default).
	// Experimental.
	UseOidc *bool `field:"optional" json:"useOidc" yaml:"useOidc"`
}

Experimental.

type DataTerraformRemoteStateConfig

type DataTerraformRemoteStateConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
}

Experimental.

type DataTerraformRemoteStateConsul

type DataTerraformRemoteStateConsul interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateConsul

func NewDataTerraformRemoteStateConsul(scope constructs.Construct, id *string, config *DataTerraformRemoteStateConsulConfig) DataTerraformRemoteStateConsul

Experimental.

type DataTerraformRemoteStateConsulConfig

type DataTerraformRemoteStateConsulConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// (Required) Access token.
	// Experimental.
	AccessToken *string `field:"required" json:"accessToken" yaml:"accessToken"`
	// (Required) Path in the Consul KV store.
	// Experimental.
	Path *string `field:"required" json:"path" yaml:"path"`
	// (Optional) DNS name and port of your Consul endpoint specified in the format dnsname:port.
	//
	// Defaults to the local agent HTTP listener.
	// Experimental.
	Address *string `field:"optional" json:"address" yaml:"address"`
	// (Optional) A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
	// Experimental.
	CaFile *string `field:"optional" json:"caFile" yaml:"caFile"`
	// (Optional) A path to a PEM-encoded certificate provided to the remote agent;
	//
	// requires use of key_file.
	// Experimental.
	CertFile *string `field:"optional" json:"certFile" yaml:"certFile"`
	// (Optional) The datacenter to use.
	//
	// Defaults to that of the agent.
	// Experimental.
	Datacenter *string `field:"optional" json:"datacenter" yaml:"datacenter"`
	// (Optional) true to compress the state data using gzip, or false (the default) to leave it uncompressed.
	// Experimental.
	Gzip *bool `field:"optional" json:"gzip" yaml:"gzip"`
	// (Optional) HTTP Basic Authentication credentials to be used when communicating with Consul, in the format of either user or user:pass.
	// Experimental.
	HttpAuth *string `field:"optional" json:"httpAuth" yaml:"httpAuth"`
	// (Optional) A path to a PEM-encoded private key, required if cert_file is specified.
	// Experimental.
	KeyFile *string `field:"optional" json:"keyFile" yaml:"keyFile"`
	// (Optional) false to disable locking.
	//
	// This defaults to true, but will require session permissions with Consul and
	// at least kv write permissions on $path/.lock to perform locking.
	// Experimental.
	Lock *bool `field:"optional" json:"lock" yaml:"lock"`
	// (Optional) Specifies what protocol to use when talking to the given address,either http or https.
	//
	// SSL support can also be triggered by setting then environment variable CONSUL_HTTP_SSL to true.
	// Experimental.
	Scheme *string `field:"optional" json:"scheme" yaml:"scheme"`
}

Experimental.

type DataTerraformRemoteStateCos

type DataTerraformRemoteStateCos interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateCos

func NewDataTerraformRemoteStateCos(scope constructs.Construct, id *string, config *DataTerraformRemoteStateCosConfig) DataTerraformRemoteStateCos

Experimental.

type DataTerraformRemoteStateCosConfig

type DataTerraformRemoteStateCosConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// (Required) The name of the COS bucket.
	//
	// You shall manually create it first.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// (Optional) Whether to enable global Acceleration.
	//
	// Defaults to false.
	// Experimental.
	Accelerate *bool `field:"optional" json:"accelerate" yaml:"accelerate"`
	// (Optional) Object ACL to be applied to the state file, allows private and public-read.
	//
	// Defaults to private.
	// Experimental.
	Acl *string `field:"optional" json:"acl" yaml:"acl"`
	// (Optional) The assume_role block.
	//
	// If provided, terraform will attempt to assume this role using the supplied credentials.
	// Experimental.
	AssumeRole *CosBackendAssumeRole `field:"optional" json:"assumeRole" yaml:"assumeRole"`
	// (Optional) The root domain of the API request.
	//
	// Defaults to tencentcloudapi.com.
	// It supports the environment variable TENCENTCLOUD_DOMAIN.
	// Experimental.
	Domain *string `field:"optional" json:"domain" yaml:"domain"`
	// (Optional) Whether to enable server side encryption of the state file.
	//
	// If it is true, COS will use 'AES256' encryption algorithm to encrypt state file.
	// Experimental.
	Encrypt *bool `field:"optional" json:"encrypt" yaml:"encrypt"`
	// (Optional) The Custom Endpoint for the COS backend.
	//
	// It supports the environment variable TENCENTCLOUD_ENDPOINT.
	// Experimental.
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The path for saving the state file in bucket.
	//
	// Defaults to terraform.tfstate.
	// Experimental.
	Key *string `field:"optional" json:"key" yaml:"key"`
	// (Optional) The directory for saving the state file in bucket.
	//
	// Default to "env:".
	// Experimental.
	Prefix *string `field:"optional" json:"prefix" yaml:"prefix"`
	// (Optional) The region of the COS bucket.
	//
	// It supports environment variables TENCENTCLOUD_REGION.
	// Experimental.
	Region *string `field:"optional" json:"region" yaml:"region"`
	// (Optional) Secret id of Tencent Cloud.
	//
	// It supports environment variables TENCENTCLOUD_SECRET_ID.
	// Experimental.
	SecretId *string `field:"optional" json:"secretId" yaml:"secretId"`
	// (Optional) Secret key of Tencent Cloud.
	//
	// It supports environment variables TENCENTCLOUD_SECRET_KEY.
	// Experimental.
	SecretKey *string `field:"optional" json:"secretKey" yaml:"secretKey"`
	// (Optional) TencentCloud Security Token of temporary access credentials.
	//
	// It supports environment variables TENCENTCLOUD_SECURITY_TOKEN.
	// Experimental.
	SecurityToken *string `field:"optional" json:"securityToken" yaml:"securityToken"`
}

Experimental.

type DataTerraformRemoteStateGcs

type DataTerraformRemoteStateGcs interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateGcs

func NewDataTerraformRemoteStateGcs(scope constructs.Construct, id *string, config *DataTerraformRemoteStateGcsConfig) DataTerraformRemoteStateGcs

Experimental.

type DataTerraformRemoteStateGcsConfig

type DataTerraformRemoteStateGcsConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// (Required) The name of the GCS bucket.
	//
	// This name must be globally unique.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// (Optional) A temporary [OAuth 2.0 access token] obtained from the Google Authorization server, i.e. the Authorization: Bearer token used to authenticate HTTP requests to GCP APIs. This is an alternative to credentials. If both are specified, access_token will be used over the credentials field.
	// Experimental.
	AccessToken *string `field:"optional" json:"accessToken" yaml:"accessToken"`
	// (Optional) Local path to Google Cloud Platform account credentials in JSON format.
	//
	// If unset, Google Application Default Credentials are used.
	// The provided credentials must have Storage Object Admin role on the bucket.
	//
	// Warning: if using the Google Cloud Platform provider as well,
	// it will also pick up the GOOGLE_CREDENTIALS environment variable.
	// Experimental.
	Credentials *string `field:"optional" json:"credentials" yaml:"credentials"`
	// (Optional) A 32 byte base64 encoded 'customer supplied encryption key' used to encrypt all state.
	// Experimental.
	EncryptionKey *string `field:"optional" json:"encryptionKey" yaml:"encryptionKey"`
	// (Optional) The service account to impersonate for accessing the State Bucket.
	//
	// You must have roles/iam.serviceAccountTokenCreator role on that account for the impersonation to succeed.
	// If you are using a delegation chain, you can specify that using the impersonate_service_account_delegates field.
	// Alternatively, this can be specified using the GOOGLE_IMPERSONATE_SERVICE_ACCOUNT environment variable.
	// Experimental.
	ImpersonateServiceAccount *string `field:"optional" json:"impersonateServiceAccount" yaml:"impersonateServiceAccount"`
	// (Optional) The delegation chain for an impersonating a service account.
	// Experimental.
	ImpersonateServiceAccountDelegates *[]*string `field:"optional" json:"impersonateServiceAccountDelegates" yaml:"impersonateServiceAccountDelegates"`
	// (Optional) A Cloud KMS key ('customer-managed encryption key') used when reading and writing state files in the bucket.
	//
	// Format should be projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{name}}.
	// For more information, including IAM requirements, see {@link https://cloud.google.com/storage/docs/encryption/customer-managed-keys Customer-managed Encryption Keys}.
	// Experimental.
	KmsEncryptionKey *string `field:"optional" json:"kmsEncryptionKey" yaml:"kmsEncryptionKey"`
	// (Optional) GCS prefix inside the bucket.
	//
	// Named states for workspaces are stored in an object called <prefix>/<name>.tfstate.
	// Experimental.
	Prefix *string `field:"optional" json:"prefix" yaml:"prefix"`
	// (Optional) A URL containing three parts: the protocol, the DNS name pointing to a Private Service Connect endpoint, and the path for the Cloud Storage API (/storage/v1/b).
	//
	// {@link https://developer.hashicorp.com/terraform/language/settings/backends/gcs#storage_custom_endpoint See here for more details}
	// Experimental.
	StoreageCustomEndpoint *string `field:"optional" json:"storeageCustomEndpoint" yaml:"storeageCustomEndpoint"`
}

Experimental.

type DataTerraformRemoteStateHttp

type DataTerraformRemoteStateHttp interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateHttp

func NewDataTerraformRemoteStateHttp(scope constructs.Construct, id *string, config *DataTerraformRemoteStateHttpConfig) DataTerraformRemoteStateHttp

Experimental.

type DataTerraformRemoteStateHttpConfig

type DataTerraformRemoteStateHttpConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// (Required) The address of the REST endpoint.
	// Experimental.
	Address *string `field:"required" json:"address" yaml:"address"`
	// (Optional) A PEM-encoded CA certificate chain used by the client to verify server certificates during TLS authentication.
	// Experimental.
	ClientCaCertificatePem *string `field:"optional" json:"clientCaCertificatePem" yaml:"clientCaCertificatePem"`
	// (Optional) A PEM-encoded certificate used by the server to verify the client during mutual TLS (mTLS) authentication.
	// Experimental.
	ClientCertificatePem *string `field:"optional" json:"clientCertificatePem" yaml:"clientCertificatePem"`
	// (Optional) A PEM-encoded private key, required if client_certificate_pem is specified.
	// Experimental.
	ClientPrivateKeyPem *string `field:"optional" json:"clientPrivateKeyPem" yaml:"clientPrivateKeyPem"`
	// (Optional) The address of the lock REST endpoint.
	//
	// Defaults to disabled.
	// Experimental.
	LockAddress *string `field:"optional" json:"lockAddress" yaml:"lockAddress"`
	// (Optional) The HTTP method to use when locking.
	//
	// Defaults to LOCK.
	// Experimental.
	LockMethod *string `field:"optional" json:"lockMethod" yaml:"lockMethod"`
	// (Optional) The password for HTTP basic authentication.
	// Experimental.
	Password *string `field:"optional" json:"password" yaml:"password"`
	// (Optional) The number of HTTP request retries.
	//
	// Defaults to 2.
	// Experimental.
	RetryMax *float64 `field:"optional" json:"retryMax" yaml:"retryMax"`
	// (Optional) The maximum time in seconds to wait between HTTP request attempts.
	//
	// Defaults to 30.
	// Experimental.
	RetryWaitMax *float64 `field:"optional" json:"retryWaitMax" yaml:"retryWaitMax"`
	// (Optional) The minimum time in seconds to wait between HTTP request attempts.
	//
	// Defaults to 1.
	// Experimental.
	RetryWaitMin *float64 `field:"optional" json:"retryWaitMin" yaml:"retryWaitMin"`
	// (Optional) Whether to skip TLS verification.
	//
	// Defaults to false.
	// Experimental.
	SkipCertVerification *bool `field:"optional" json:"skipCertVerification" yaml:"skipCertVerification"`
	// (Optional) The address of the unlock REST endpoint.
	//
	// Defaults to disabled.
	// Experimental.
	UnlockAddress *string `field:"optional" json:"unlockAddress" yaml:"unlockAddress"`
	// (Optional) The HTTP method to use when unlocking.
	//
	// Defaults to UNLOCK.
	// Experimental.
	UnlockMethod *string `field:"optional" json:"unlockMethod" yaml:"unlockMethod"`
	// (Optional) HTTP method to use when updating state.
	//
	// Defaults to POST.
	// Experimental.
	UpdateMethod *string `field:"optional" json:"updateMethod" yaml:"updateMethod"`
	// (Optional) The username for HTTP basic authentication.
	// Experimental.
	Username *string `field:"optional" json:"username" yaml:"username"`
}

Experimental.

type DataTerraformRemoteStateLocal

type DataTerraformRemoteStateLocal interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateLocal

func NewDataTerraformRemoteStateLocal(scope constructs.Construct, id *string, config *DataTerraformRemoteStateLocalConfig) DataTerraformRemoteStateLocal

Experimental.

type DataTerraformRemoteStateLocalConfig

type DataTerraformRemoteStateLocalConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// Path where the state file is stored.
	// Default: - defaults to terraform.${stackId}.tfstate
	//
	// Experimental.
	Path *string `field:"optional" json:"path" yaml:"path"`
	// (Optional) The path to non-default workspaces.
	// Experimental.
	WorkspaceDir *string `field:"optional" json:"workspaceDir" yaml:"workspaceDir"`
}

Experimental.

type DataTerraformRemoteStateOss

type DataTerraformRemoteStateOss interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateOss

func NewDataTerraformRemoteStateOss(scope constructs.Construct, id *string, config *DataTerraformRemoteStateOssConfig) DataTerraformRemoteStateOss

Experimental.

type DataTerraformRemoteStateOssConfig

type DataTerraformRemoteStateOssConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// (Required) The name of the OSS bucket.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// (Optional) Alibaba Cloud access key.
	//
	// It supports environment variables ALICLOUD_ACCESS_KEY and ALICLOUD_ACCESS_KEY_ID.
	// Experimental.
	AccessKey *string `field:"optional" json:"accessKey" yaml:"accessKey"`
	// (Optional) Object ACL to be applied to the state file.
	// Experimental.
	Acl *string `field:"optional" json:"acl" yaml:"acl"`
	// Deprecated: Use flattened assume role options.
	AssumeRole *OssAssumeRole `field:"optional" json:"assumeRole" yaml:"assumeRole"`
	// (Optional, Available in 1.1.0+) A more restrictive policy to apply to the temporary credentials. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use this policy to grant permissions that exceed those of the role that is being assumed.
	// Experimental.
	AssumeRolePolicy *string `field:"optional" json:"assumeRolePolicy" yaml:"assumeRolePolicy"`
	// (Optional, Available in 1.1.0+) The ARN of the role to assume. If ARN is set to an empty string, it does not perform role switching. It supports the environment variable ALICLOUD_ASSUME_ROLE_ARN. Terraform executes configuration on account with provided credentials.
	// Experimental.
	AssumeRoleRoleArn *string `field:"optional" json:"assumeRoleRoleArn" yaml:"assumeRoleRoleArn"`
	// (Optional, Available in 1.1.0+) The time after which the established session for assuming role expires. Valid value range: [900-3600] seconds. Default to 3600 (in this case Alibaba Cloud uses its own default value). It supports environment variable ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION.
	// Experimental.
	AssumeRoleSessionExpiration *float64 `field:"optional" json:"assumeRoleSessionExpiration" yaml:"assumeRoleSessionExpiration"`
	// (Optional, Available in 1.1.0+) The session name to use when assuming the role. If omitted, 'terraform' is passed to the AssumeRole call as session name. It supports environment variable ALICLOUD_ASSUME_ROLE_SESSION_NAME.
	// Experimental.
	AssumeRoleSessionName *string `field:"optional" json:"assumeRoleSessionName" yaml:"assumeRoleSessionName"`
	// (Optional, Available in 0.12.14+) The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section of the Alibaba Cloud console.
	// Experimental.
	EcsRoleName *string `field:"optional" json:"ecsRoleName" yaml:"ecsRoleName"`
	// (Optional) Whether to enable server side encryption of the state file.
	//
	// If it is true, OSS will use 'AES256' encryption algorithm to encrypt state file.
	// Experimental.
	Encrypt *bool `field:"optional" json:"encrypt" yaml:"encrypt"`
	// (Optional) A custom endpoint for the OSS API.
	//
	// It supports environment variables ALICLOUD_OSS_ENDPOINT and OSS_ENDPOINT.
	// Experimental.
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The name of the state file.
	//
	// Defaults to terraform.tfstate.
	// Experimental.
	Key *string `field:"optional" json:"key" yaml:"key"`
	// (Optional) The path directory of the state file will be stored.
	//
	// Default to "env:".
	// Experimental.
	Prefix *string `field:"optional" json:"prefix" yaml:"prefix"`
	// (Optional, Available in 0.12.8+) This is the Alibaba Cloud profile name as set in the shared credentials file. It can also be sourced from the ALICLOUD_PROFILE environment variable.
	// Experimental.
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// (Optional) The region of the OSS bucket.
	//
	// It supports environment variables ALICLOUD_REGION and ALICLOUD_DEFAULT_REGION.
	// Experimental.
	Region *string `field:"optional" json:"region" yaml:"region"`
	// (Optional) Alibaba Cloud secret access key.
	//
	// It supports environment variables ALICLOUD_SECRET_KEY and ALICLOUD_ACCESS_KEY_SECRET.
	// Experimental.
	SecretKey *string `field:"optional" json:"secretKey" yaml:"secretKey"`
	// (Optional) STS access token.
	//
	// It supports environment variable ALICLOUD_SECURITY_TOKEN.
	// Experimental.
	SecurityToken *string `field:"optional" json:"securityToken" yaml:"securityToken"`
	// (Optional, Available in 0.12.8+) This is the path to the shared credentials file. It can also be sourced from the ALICLOUD_SHARED_CREDENTIALS_FILE environment variable. If this is not set and a profile is specified, ~/.aliyun/config.json will be used.
	// Experimental.
	SharedCredentialsFile *string `field:"optional" json:"sharedCredentialsFile" yaml:"sharedCredentialsFile"`
	// (Optional, Available in 1.0.11+) Custom endpoint for the AliCloud Security Token Service (STS) API. It supports environment variable ALICLOUD_STS_ENDPOINT.
	// Experimental.
	StsEndpoint *string `field:"optional" json:"stsEndpoint" yaml:"stsEndpoint"`
	// (Optional) A custom endpoint for the TableStore API.
	// Experimental.
	TablestoreEndpoint *string `field:"optional" json:"tablestoreEndpoint" yaml:"tablestoreEndpoint"`
	// (Optional) A TableStore table for state locking and consistency.
	//
	// The table must have a primary key named LockID of type String.
	// Experimental.
	TablestoreTable *string `field:"optional" json:"tablestoreTable" yaml:"tablestoreTable"`
}

Experimental.

type DataTerraformRemoteStatePg

type DataTerraformRemoteStatePg interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStatePg

func NewDataTerraformRemoteStatePg(scope constructs.Construct, id *string, config *DataTerraformRemoteStatePgConfig) DataTerraformRemoteStatePg

Experimental.

type DataTerraformRemoteStatePgConfig

type DataTerraformRemoteStatePgConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// Postgres connection string;
	//
	// a postgres:// URL.
	// The PG_CONN_STR and standard libpq environment variables can also be used to indicate how to connect to the PostgreSQL database.
	// Experimental.
	ConnStr *string `field:"required" json:"connStr" yaml:"connStr"`
	// Name of the automatically-managed Postgres schema, default to terraform_remote_state.
	//
	// Can also be set using the PG_SCHEMA_NAME environment variable.
	// Experimental.
	SchemaName *string `field:"optional" json:"schemaName" yaml:"schemaName"`
	// If set to true, the Postgres index must already exist.
	//
	// Can also be set using the PG_SKIP_INDEX_CREATION environment variable.
	// Terraform won't try to create the index, this is useful when it has already been created by a database administrator.
	// Experimental.
	SkipIndexCreation *bool `field:"optional" json:"skipIndexCreation" yaml:"skipIndexCreation"`
	// If set to true, the Postgres schema must already exist.
	//
	// Can also be set using the PG_SKIP_SCHEMA_CREATION environment variable.
	// Terraform won't try to create the schema, this is useful when it has already been created by a database administrator.
	// Experimental.
	SkipSchemaCreation *bool `field:"optional" json:"skipSchemaCreation" yaml:"skipSchemaCreation"`
	// If set to true, the Postgres table must already exist.
	//
	// Can also be set using the PG_SKIP_TABLE_CREATION environment variable.
	// Terraform won't try to create the table, this is useful when it has already been created by a database administrator.
	// Experimental.
	SkipTableCreation *bool `field:"optional" json:"skipTableCreation" yaml:"skipTableCreation"`
}

Experimental.

type DataTerraformRemoteStateRemoteConfig

type DataTerraformRemoteStateRemoteConfig struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// Experimental.
	Organization *string `field:"required" json:"organization" yaml:"organization"`
	// Experimental.
	Workspaces IRemoteWorkspace `field:"required" json:"workspaces" yaml:"workspaces"`
	// Experimental.
	Hostname *string `field:"optional" json:"hostname" yaml:"hostname"`
	// Experimental.
	Token *string `field:"optional" json:"token" yaml:"token"`
}

Experimental.

type DataTerraformRemoteStateS3

type DataTerraformRemoteStateS3 interface {
	TerraformRemoteState
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewDataTerraformRemoteStateS3

func NewDataTerraformRemoteStateS3(scope constructs.Construct, id *string, config *DataTerraformRemoteStateS3Config) DataTerraformRemoteStateS3

Experimental.

type DataTerraformRemoteStateS3Config

type DataTerraformRemoteStateS3Config struct {
	// Experimental.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Experimental.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// Name of the S3 Bucket.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// Path to the state file inside the S3 Bucket.
	//
	// When using a non-default workspace, the state path will be /workspace_key_prefix/workspace_name/key.
	// Experimental.
	Key *string `field:"required" json:"key" yaml:"key"`
	// (Optional) AWS access key.
	//
	// If configured, must also configure secret_key.
	// This can also be sourced from
	// the AWS_ACCESS_KEY_ID environment variable,
	// AWS shared credentials file (e.g. ~/.aws/credentials),
	// or AWS shared configuration file (e.g. ~/.aws/config).
	// Experimental.
	AccessKey *string `field:"optional" json:"accessKey" yaml:"accessKey"`
	// (Optional) Canned ACL to be applied to the state file.
	// Experimental.
	Acl *string `field:"optional" json:"acl" yaml:"acl"`
	// (Optional) List of allowed AWS account IDs to prevent potential destruction of a live environment.
	//
	// Conflicts with forbidden_account_ids.
	// Experimental.
	AllowedAccountIds *string `field:"optional" json:"allowedAccountIds" yaml:"allowedAccountIds"`
	// Assuming an IAM Role can be configured in two ways.
	//
	// The preferred way is to use the argument assume_role, the other, which is deprecated, is with arguments at the top level.
	// Experimental.
	AssumeRole *S3BackendAssumeRoleConfig `field:"optional" json:"assumeRole" yaml:"assumeRole"`
	// (Optional) IAM Policy JSON describing further restricting permissions for the IAM Role being assumed.
	// Deprecated: Use assumeRole.policy instead.
	AssumeRolePolicy *string `field:"optional" json:"assumeRolePolicy" yaml:"assumeRolePolicy"`
	// (Optional) Set of Amazon Resource Names (ARNs) of IAM Policies describing further restricting permissions for the IAM Role being assumed.
	// Deprecated: Use assumeRole.policyArns instead.
	AssumeRolePolicyArns *[]*string `field:"optional" json:"assumeRolePolicyArns" yaml:"assumeRolePolicyArns"`
	// (Optional) Map of assume role session tags.
	// Deprecated: Use assumeRole.tags instead.
	AssumeRoleTags *map[string]*string `field:"optional" json:"assumeRoleTags" yaml:"assumeRoleTags"`
	// (Optional) Set of assume role session tag keys to pass to any subsequent sessions.
	// Deprecated: Use assumeRole.transitiveTagKeys instead.
	AssumeRoleTransitiveTagKeys *[]*string `field:"optional" json:"assumeRoleTransitiveTagKeys" yaml:"assumeRoleTransitiveTagKeys"`
	// Assume Role With Web Identity Configuration.
	// Experimental.
	AssumeRoleWithWebIdentity *S3BackendAssumeRoleWithWebIdentityConfig `field:"optional" json:"assumeRoleWithWebIdentity" yaml:"assumeRoleWithWebIdentity"`
	// (Optional) File containing custom root and intermediate certificates.
	//
	// Can also be set using the AWS_CA_BUNDLE environment variable.
	// Setting ca_bundle in the shared config file is not supported.
	// Experimental.
	CustomCaBundle *string `field:"optional" json:"customCaBundle" yaml:"customCaBundle"`
	// (Optional) Custom endpoint for the AWS DynamoDB API.
	//
	// This can also be sourced from the AWS_DYNAMODB_ENDPOINT environment variable.
	// Deprecated: Use endpoints.dynamodb instead
	DynamodbEndpoint *string `field:"optional" json:"dynamodbEndpoint" yaml:"dynamodbEndpoint"`
	// (Optional) Name of DynamoDB Table to use for state locking and consistency.
	//
	// The table must have a partition key named LockID with type of String.
	// If not configured, state locking will be disabled.
	// Experimental.
	DynamodbTable *string `field:"optional" json:"dynamodbTable" yaml:"dynamodbTable"`
	// Optional) Custom endpoint URL for the EC2 Instance Metadata Service (IMDS) API.
	//
	// Can also be set with the AWS_EC2_METADATA_SERVICE_ENDPOINT environment variable.
	// Experimental.
	Ec2MetadataServiceEndpoint *string `field:"optional" json:"ec2MetadataServiceEndpoint" yaml:"ec2MetadataServiceEndpoint"`
	// (Optional) Mode to use in communicating with the metadata service.
	//
	// Valid values are IPv4 and IPv6.
	// Can also be set with the AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE environment variable.
	// Experimental.
	Ec2MetadataServiceEndpointMode *string `field:"optional" json:"ec2MetadataServiceEndpointMode" yaml:"ec2MetadataServiceEndpointMode"`
	// (Optional) Enable server side encryption of the state file.
	// Experimental.
	Encrypt *bool `field:"optional" json:"encrypt" yaml:"encrypt"`
	// (Optional) Custom endpoint for the AWS S3 API.
	//
	// This can also be sourced from the AWS_S3_ENDPOINT environment variable.
	// Deprecated: Use endpoints.s3 instead
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The endpoint configuration block.
	// Experimental.
	Endpoints *S3BackendEndpointConfig `field:"optional" json:"endpoints" yaml:"endpoints"`
	// (Optional) External identifier to use when assuming the role.
	// Deprecated: Use assume_role.external_id instead.
	ExternalId *string `field:"optional" json:"externalId" yaml:"externalId"`
	// (Optional) List of forbidden AWS account IDs to prevent potential destruction of a live environment.
	//
	// Conflicts with allowed_account_ids.
	// Experimental.
	ForbiddenAccountIds *string `field:"optional" json:"forbiddenAccountIds" yaml:"forbiddenAccountIds"`
	// (Optional) Enable path-style S3 URLs (https://<HOST>/<BUCKET> instead of https://<BUCKET>.<HOST>).
	// Deprecated: Use usePathStyle instead.
	ForcePathStyle *bool `field:"optional" json:"forcePathStyle" yaml:"forcePathStyle"`
	// (Optional) URL of a proxy to use for HTTP requests when accessing the AWS API.
	//
	// Can also be set using the HTTP_PROXY or http_proxy environment variables.
	// Experimental.
	HttpProxy *string `field:"optional" json:"httpProxy" yaml:"httpProxy"`
	// (Optional) URL of a proxy to use for HTTPS requests when accessing the AWS API.
	//
	// Can also be set using the HTTPS_PROXY or https_proxy environment variables.
	// Experimental.
	HttpsProxy *string `field:"optional" json:"httpsProxy" yaml:"httpsProxy"`
	// (Optional) Custom endpoint for the AWS Identity and Access Management (IAM) API.
	//
	// This can also be sourced from the AWS_IAM_ENDPOINT environment variable.
	// Deprecated: Use endpoints.iam instead
	IamEndpoint *string `field:"optional" json:"iamEndpoint" yaml:"iamEndpoint"`
	// Optional) Whether to explicitly allow the backend to perform "insecure" SSL requests.
	//
	// If omitted, the default value is false.
	// Experimental.
	Insecure *bool `field:"optional" json:"insecure" yaml:"insecure"`
	// (Optional) Amazon Resource Name (ARN) of a Key Management Service (KMS) Key to use for encrypting the state.
	//
	// Note that if this value is specified,
	// Terraform will need kms:Encrypt, kms:Decrypt and kms:GenerateDataKey permissions on this KMS key.
	// Experimental.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// (Optional) The maximum number of times an AWS API request is retried on retryable failure.
	//
	// Defaults to 5.
	// Experimental.
	MaxRetries *float64 `field:"optional" json:"maxRetries" yaml:"maxRetries"`
	// (Optional) Comma-separated list of hosts that should not use HTTP or HTTPS proxies.
	//
	// Each value can be one of:
	// - A domain name
	// - An IP address
	// - A CIDR address
	// - An asterisk (*), to indicate that no proxying should be performed Domain name and IP address values can also include a port number.
	// Can also be set using the NO_PROXY or no_proxy environment variables.
	// Experimental.
	NoProxy *string `field:"optional" json:"noProxy" yaml:"noProxy"`
	// (Optional) Name of AWS profile in AWS shared credentials file (e.g. ~/.aws/credentials) or AWS shared configuration file (e.g. ~/.aws/config) to use for credentials and/or configuration. This can also be sourced from the AWS_PROFILE environment variable.
	// Experimental.
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// AWS Region of the S3 Bucket and DynamoDB Table (if used).
	//
	// This can also
	// be sourced from the AWS_DEFAULT_REGION and AWS_REGION environment
	// variables.
	// Experimental.
	Region *string `field:"optional" json:"region" yaml:"region"`
	// (Optional) Specifies how retries are attempted.
	//
	// Valid values are standard and adaptive.
	// Can also be configured using the AWS_RETRY_MODE environment variable or the shared config file parameter retry_mode.
	// Experimental.
	RetryMode *string `field:"optional" json:"retryMode" yaml:"retryMode"`
	// (Optional) Amazon Resource Name (ARN) of the IAM Role to assume.
	// Deprecated: Use assumeRole.roleArn instead.
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
	// (Optional) AWS secret access key.
	//
	// If configured, must also configure access_key.
	// This can also be sourced from
	// the AWS_SECRET_ACCESS_KEY environment variable,
	// AWS shared credentials file (e.g. ~/.aws/credentials),
	// or AWS shared configuration file (e.g. ~/.aws/config)
	// Experimental.
	SecretKey *string `field:"optional" json:"secretKey" yaml:"secretKey"`
	// (Optional) Session name to use when assuming the role.
	// Deprecated: Use assumeRole.sessionName instead.
	SessionName *string `field:"optional" json:"sessionName" yaml:"sessionName"`
	// (Optional) List of paths to AWS shared configuration files.
	//
	// Defaults to ~/.aws/config.
	// Experimental.
	SharedConfigFiles *[]*string `field:"optional" json:"sharedConfigFiles" yaml:"sharedConfigFiles"`
	// (Optional) Path to the AWS shared credentials file.
	//
	// Defaults to ~/.aws/credentials.
	// Experimental.
	SharedCredentialsFile *string `field:"optional" json:"sharedCredentialsFile" yaml:"sharedCredentialsFile"`
	// (Optional) List of paths to AWS shared credentials files.
	//
	// Defaults to ~/.aws/credentials.
	// Experimental.
	SharedCredentialsFiles *[]*string `field:"optional" json:"sharedCredentialsFiles" yaml:"sharedCredentialsFiles"`
	// (Optional) Skip credentials validation via the STS API.
	// Experimental.
	SkipCredentialsValidation *bool `field:"optional" json:"skipCredentialsValidation" yaml:"skipCredentialsValidation"`
	// (Optional) Skip usage of EC2 Metadata API.
	// Experimental.
	SkipMetadataApiCheck *bool `field:"optional" json:"skipMetadataApiCheck" yaml:"skipMetadataApiCheck"`
	// (Optional) Skip validation of provided region name.
	// Experimental.
	SkipRegionValidation *bool `field:"optional" json:"skipRegionValidation" yaml:"skipRegionValidation"`
	// (Optional) Whether to skip requesting the account ID.
	//
	// Useful for AWS API implementations that do not have the IAM, STS API, or metadata API.
	// Experimental.
	SkipRequestingAccountId *bool `field:"optional" json:"skipRequestingAccountId" yaml:"skipRequestingAccountId"`
	// (Optional) Do not include checksum when uploading S3 Objects.
	//
	// Useful for some S3-Compatible APIs.
	// Experimental.
	SkipS3Checksum *bool `field:"optional" json:"skipS3Checksum" yaml:"skipS3Checksum"`
	// (Optional) The key to use for encrypting state with Server-Side Encryption with Customer-Provided Keys (SSE-C).
	//
	// This is the base64-encoded value of the key, which must decode to 256 bits.
	// This can also be sourced from the AWS_SSE_CUSTOMER_KEY environment variable,
	// which is recommended due to the sensitivity of the value.
	// Setting it inside a terraform file will cause it to be persisted to disk in terraform.tfstate.
	// Experimental.
	SseCustomerKey *string `field:"optional" json:"sseCustomerKey" yaml:"sseCustomerKey"`
	// (Optional) Custom endpoint for the AWS Security Token Service (STS) API.
	//
	// This can also be sourced from the AWS_STS_ENDPOINT environment variable.
	// Deprecated: Use endpoints.sts instead
	StsEndpoint *string `field:"optional" json:"stsEndpoint" yaml:"stsEndpoint"`
	// (Optional) AWS region for STS.
	//
	// If unset, AWS will use the same region for STS as other non-STS operations.
	// Experimental.
	StsRegion *string `field:"optional" json:"stsRegion" yaml:"stsRegion"`
	// (Optional) Multi-Factor Authentication (MFA) token.
	//
	// This can also be sourced from the AWS_SESSION_TOKEN environment variable.
	// Experimental.
	Token *string `field:"optional" json:"token" yaml:"token"`
	// (Optional) Use the legacy authentication workflow, preferring environment variables over backend configuration.
	//
	// Defaults to true.
	// This behavior does not align with the authentication flow of the AWS CLI or SDK's, and will be removed in the future.
	// Experimental.
	UseLegacyWorkflow *bool `field:"optional" json:"useLegacyWorkflow" yaml:"useLegacyWorkflow"`
	// (Optional) Enable path-style S3 URLs (https://<HOST>/<BUCKET> instead of https://<BUCKET>.<HOST>).
	// Experimental.
	UsePathStyle *bool `field:"optional" json:"usePathStyle" yaml:"usePathStyle"`
	// (Optional) Prefix applied to the state path inside the bucket.
	//
	// This is only relevant when using a non-default workspace. Defaults to env:
	// Experimental.
	WorkspaceKeyPrefix *string `field:"optional" json:"workspaceKeyPrefix" yaml:"workspaceKeyPrefix"`
}

Experimental.

type DataTerraformRemoteStateSwift deprecated

type DataTerraformRemoteStateSwift interface {
	TerraformRemoteState
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	CdktfStack() TerraformStack
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ConstructNodeMetadata() *map[string]interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Fqn() *string
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	FriendlyUniqueId() *string
	// The tree node.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Node() constructs.Node
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	RawOverrides() interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	AddOverride(path *string, value interface{})
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Get(output *string) IResolvable
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	GetBoolean(output *string) IResolvable
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	GetList(output *string) *[]*string
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	GetNumber(output *string) *float64
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToHclTerraform() interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToTerraform() interface{}
}

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func NewDataTerraformRemoteStateSwift deprecated

func NewDataTerraformRemoteStateSwift(scope constructs.Construct, id *string, config *DataTerraformRemoteStateSwiftConfig) DataTerraformRemoteStateSwift

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

type DataTerraformRemoteStateSwiftConfig deprecated

type DataTerraformRemoteStateSwiftConfig struct {
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Defaults *map[string]interface{} `field:"optional" json:"defaults" yaml:"defaults"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Workspace *string `field:"optional" json:"workspace" yaml:"workspace"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Container *string `field:"required" json:"container" yaml:"container"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ApplicationCredentialId *string `field:"optional" json:"applicationCredentialId" yaml:"applicationCredentialId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ApplicationCredentialName *string `field:"optional" json:"applicationCredentialName" yaml:"applicationCredentialName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ApplicationCredentialSecret *string `field:"optional" json:"applicationCredentialSecret" yaml:"applicationCredentialSecret"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ArchiveContainer *string `field:"optional" json:"archiveContainer" yaml:"archiveContainer"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	AuthUrl *string `field:"optional" json:"authUrl" yaml:"authUrl"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	CacertFile *string `field:"optional" json:"cacertFile" yaml:"cacertFile"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Cert *string `field:"optional" json:"cert" yaml:"cert"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Cloud *string `field:"optional" json:"cloud" yaml:"cloud"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	DefaultDomain *string `field:"optional" json:"defaultDomain" yaml:"defaultDomain"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	DomainId *string `field:"optional" json:"domainId" yaml:"domainId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	DomainName *string `field:"optional" json:"domainName" yaml:"domainName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ExpireAfter *string `field:"optional" json:"expireAfter" yaml:"expireAfter"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Insecure *bool `field:"optional" json:"insecure" yaml:"insecure"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Key *string `field:"optional" json:"key" yaml:"key"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Password *string `field:"optional" json:"password" yaml:"password"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ProjectDomainId *string `field:"optional" json:"projectDomainId" yaml:"projectDomainId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ProjectDomainName *string `field:"optional" json:"projectDomainName" yaml:"projectDomainName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	RegionName *string `field:"optional" json:"regionName" yaml:"regionName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	StateName *string `field:"optional" json:"stateName" yaml:"stateName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	TenantId *string `field:"optional" json:"tenantId" yaml:"tenantId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	TenantName *string `field:"optional" json:"tenantName" yaml:"tenantName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Token *string `field:"optional" json:"token" yaml:"token"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserDomainId *string `field:"optional" json:"userDomainId" yaml:"userDomainId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserDomainName *string `field:"optional" json:"userDomainName" yaml:"userDomainName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserId *string `field:"optional" json:"userId" yaml:"userId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserName *string `field:"optional" json:"userName" yaml:"userName"`
}

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

type DefaultTokenResolver

type DefaultTokenResolver interface {
	ITokenResolver
	// Resolves a list of string.
	// Experimental.
	ResolveList(xs *[]*string, context IResolveContext) interface{}
	// Resolves a map token.
	// Experimental.
	ResolveMap(xs *map[string]interface{}, context IResolveContext) interface{}
	// Resolves a list of numbers.
	// Experimental.
	ResolveNumberList(xs *[]*float64, context IResolveContext) interface{}
	// Resolve string fragments to Tokens.
	// Experimental.
	ResolveString(fragments TokenizedStringFragments, context IResolveContext) interface{}
	// Default Token resolution.
	//
	// Resolve the Token, recurse into whatever it returns,
	// then finally post-process it.
	// Experimental.
	ResolveToken(t IResolvable, context IResolveContext, postProcessor IPostProcessor) interface{}
}

Default resolver implementation. Experimental.

func NewDefaultTokenResolver

func NewDefaultTokenResolver(concat IFragmentConcatenator) DefaultTokenResolver

Resolves tokens. Experimental.

type DynamicListTerraformIterator added in v0.20.0

type DynamicListTerraformIterator interface {
	MapTerraformIterator
	// Returns the key of the current entry in the map that is being iterated over.
	// Experimental.
	Key() *string
	// Returns the value of the current item iterated over.
	// Experimental.
	Value() interface{}
	// Creates a dynamic expression that can be used to loop over this iterator in a dynamic block.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// See https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-iterators-for-list-attributes
	// Experimental.
	Dynamic(attributes *map[string]interface{}) IResolvable
	// Creates a for expression that results in a list.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraform's for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty() instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromList(myIteratorSourceVar).forExpressionForList("val.foo if val.bar == true")`
	// will result in `[ for key, val in var.myIteratorSource: val.foo if val.bar == true ]`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForList(expression interface{}) IResolvable
	// Creates a for expression that results in a map.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraforms for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromMap(myIteratorSourceVar).forExpressionForMap("key", "val.foo if val.bar == true")`
	// will result in `{ for key, val in var.myIteratorSource: key => val.foo if val.bar == true }`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForMap(keyExpression interface{}, valueExpression interface{}) IResolvable
	// Returns: the given attribute of the current item iterated over as any.
	// Experimental.
	GetAny(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of any.
	// Experimental.
	GetAnyMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a boolean.
	// Experimental.
	GetBoolean(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of booleans.
	// Experimental.
	GetBooleanMap(attribute *string) *map[string]*bool
	// Returns: the given attribute of the current item iterated over as a (string) list.
	// Experimental.
	GetList(attribute *string) *[]*string
	// Returns: the given attribute of the current item iterated over as a map.
	// Experimental.
	GetMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a number.
	// Experimental.
	GetNumber(attribute *string) *float64
	// Returns: the given attribute of the current item iterated over as a number list.
	// Experimental.
	GetNumberList(attribute *string) *[]*float64
	// Returns: the given attribute of the current item iterated over as a map of numbers.
	// Experimental.
	GetNumberMap(attribute *string) *map[string]*float64
	// Returns: the given attribute of the current item iterated over as a string.
	// Experimental.
	GetString(attribute *string) *string
	// Returns: the given attribute of the current item iterated over as a map of strings.
	// Experimental.
	GetStringMap(attribute *string) *map[string]*string
	// Creates a for expression that maps the iterators to its keys.
	//
	// For lists these would be the indices, for maps the keys.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Keys() IResolvable
	// Creates a for expression that accesses the key on each element of the iterator.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	PluckProperty(property *string) IResolvable
	// Creates a for expression that maps the iterators to its value in case it is a map.
	//
	// For lists these would stay the same.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Values() IResolvable
}

Experimental.

func DynamicListTerraformIterator_FromComplexList added in v0.20.0

func DynamicListTerraformIterator_FromComplexList(list interface{}, mapKeyAttributeName *string) DynamicListTerraformIterator

Creates a new iterator from a complex list.

One example for this would be a list of maps. The list will be converted into a map with the mapKeyAttributeName as the key.

Example:

const cert = new AcmCertificate(this, "cert", {
   domainName: "example.com",
   validationMethod: "DNS",
 });

const dvoIterator = TerraformIterator.fromComplexList(
  cert.domainValidationOptions,
  "domain_name"
);

new Route53Record(this, "record", {
  allowOverwrite: true,
  name: dvoIterator.getString("name"),
  records: [dvoIterator.getString("record")],
  ttl: 60,
  type: dvoIterator.getString("type"),
  zoneId: Token.asString(dataAwsRoute53ZoneExample.zoneId),
  forEach: dvoIterator,
});

Experimental.

func ListTerraformIterator_FromComplexList added in v0.20.0

func ListTerraformIterator_FromComplexList(list interface{}, mapKeyAttributeName *string) DynamicListTerraformIterator

Creates a new iterator from a complex list.

One example for this would be a list of maps. The list will be converted into a map with the mapKeyAttributeName as the key.

Example:

const cert = new AcmCertificate(this, "cert", {
   domainName: "example.com",
   validationMethod: "DNS",
 });

const dvoIterator = TerraformIterator.fromComplexList(
  cert.domainValidationOptions,
  "domain_name"
);

new Route53Record(this, "record", {
  allowOverwrite: true,
  name: dvoIterator.getString("name"),
  records: [dvoIterator.getString("record")],
  ttl: 60,
  type: dvoIterator.getString("type"),
  zoneId: Token.asString(dataAwsRoute53ZoneExample.zoneId),
  forEach: dvoIterator,
});

Experimental.

func MapTerraformIterator_FromComplexList added in v0.20.0

func MapTerraformIterator_FromComplexList(list interface{}, mapKeyAttributeName *string) DynamicListTerraformIterator

Creates a new iterator from a complex list.

One example for this would be a list of maps. The list will be converted into a map with the mapKeyAttributeName as the key.

Example:

const cert = new AcmCertificate(this, "cert", {
   domainName: "example.com",
   validationMethod: "DNS",
 });

const dvoIterator = TerraformIterator.fromComplexList(
  cert.domainValidationOptions,
  "domain_name"
);

new Route53Record(this, "record", {
  allowOverwrite: true,
  name: dvoIterator.getString("name"),
  records: [dvoIterator.getString("record")],
  ttl: 60,
  type: dvoIterator.getString("type"),
  zoneId: Token.asString(dataAwsRoute53ZoneExample.zoneId),
  forEach: dvoIterator,
});

Experimental.

func NewDynamicListTerraformIterator added in v0.20.0

func NewDynamicListTerraformIterator(list interface{}, mapKeyAttributeName *string) DynamicListTerraformIterator

Experimental.

func ResourceTerraformIterator_FromComplexList added in v0.20.0

func ResourceTerraformIterator_FromComplexList(list interface{}, mapKeyAttributeName *string) DynamicListTerraformIterator

Creates a new iterator from a complex list.

One example for this would be a list of maps. The list will be converted into a map with the mapKeyAttributeName as the key.

Example:

const cert = new AcmCertificate(this, "cert", {
   domainName: "example.com",
   validationMethod: "DNS",
 });

const dvoIterator = TerraformIterator.fromComplexList(
  cert.domainValidationOptions,
  "domain_name"
);

new Route53Record(this, "record", {
  allowOverwrite: true,
  name: dvoIterator.getString("name"),
  records: [dvoIterator.getString("record")],
  ttl: 60,
  type: dvoIterator.getString("type"),
  zoneId: Token.asString(dataAwsRoute53ZoneExample.zoneId),
  forEach: dvoIterator,
});

Experimental.

func TerraformIterator_FromComplexList added in v0.20.0

func TerraformIterator_FromComplexList(list interface{}, mapKeyAttributeName *string) DynamicListTerraformIterator

Creates a new iterator from a complex list.

One example for this would be a list of maps. The list will be converted into a map with the mapKeyAttributeName as the key.

Example:

const cert = new AcmCertificate(this, "cert", {
   domainName: "example.com",
   validationMethod: "DNS",
 });

const dvoIterator = TerraformIterator.fromComplexList(
  cert.domainValidationOptions,
  "domain_name"
);

new Route53Record(this, "record", {
  allowOverwrite: true,
  name: dvoIterator.getString("name"),
  records: [dvoIterator.getString("record")],
  ttl: 60,
  type: dvoIterator.getString("type"),
  zoneId: Token.asString(dataAwsRoute53ZoneExample.zoneId),
  forEach: dvoIterator,
});

Experimental.

type EncodingOptions

type EncodingOptions struct {
	// A hint for the Token's purpose when stringifying it.
	// Default: - no display hint.
	//
	// Experimental.
	DisplayHint *string `field:"optional" json:"displayHint" yaml:"displayHint"`
}

Properties to string encodings. Experimental.

type FileProvisioner added in v0.12.2

type FileProvisioner struct {
	// The source file or directory.
	//
	// Specify it either relative to the current working directory or as an absolute path.
	// This argument cannot be combined with content.
	// Experimental.
	Destination *string `field:"required" json:"destination" yaml:"destination"`
	// Experimental.
	Type *string `field:"required" json:"type" yaml:"type"`
	// Most provisioners require access to the remote resource via SSH or WinRM and expect a nested connection block with details about how to connect.
	// Experimental.
	Connection interface{} `field:"optional" json:"connection" yaml:"connection"`
	// The destination path to write to on the remote system.
	//
	// See Destination Paths below for more information.
	// Experimental.
	Content *string `field:"optional" json:"content" yaml:"content"`
	// The direct content to copy on the destination.
	//
	// If destination is a file, the content will be written on that file.
	// In case of a directory, a file named tf-file-content is created inside that directory.
	// We recommend using a file as the destination when using content.
	// This argument cannot be combined with source.
	// Experimental.
	Source *string `field:"optional" json:"source" yaml:"source"`
}

The file provisioner copies files or directories from the machine running Terraform to the newly created resource.

The file provisioner supports both ssh and winrm type connections.

See {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/file file} Experimental.

type Fn added in v0.6.0

type Fn interface {
	FnGenerated
}

Experimental.

func NewFn added in v0.6.0

func NewFn() Fn

Experimental.

type FnGenerated added in v0.16.0

type FnGenerated interface {
}

Experimental.

func NewFnGenerated added in v0.16.0

func NewFnGenerated() FnGenerated

Experimental.

type GcsBackend

type GcsBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewGcsBackend

func NewGcsBackend(scope constructs.Construct, props *GcsBackendConfig) GcsBackend

Experimental.

type GcsBackendConfig added in v0.15.0

type GcsBackendConfig struct {
	// (Required) The name of the GCS bucket.
	//
	// This name must be globally unique.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// (Optional) A temporary [OAuth 2.0 access token] obtained from the Google Authorization server, i.e. the Authorization: Bearer token used to authenticate HTTP requests to GCP APIs. This is an alternative to credentials. If both are specified, access_token will be used over the credentials field.
	// Experimental.
	AccessToken *string `field:"optional" json:"accessToken" yaml:"accessToken"`
	// (Optional) Local path to Google Cloud Platform account credentials in JSON format.
	//
	// If unset, Google Application Default Credentials are used.
	// The provided credentials must have Storage Object Admin role on the bucket.
	//
	// Warning: if using the Google Cloud Platform provider as well,
	// it will also pick up the GOOGLE_CREDENTIALS environment variable.
	// Experimental.
	Credentials *string `field:"optional" json:"credentials" yaml:"credentials"`
	// (Optional) A 32 byte base64 encoded 'customer supplied encryption key' used to encrypt all state.
	// Experimental.
	EncryptionKey *string `field:"optional" json:"encryptionKey" yaml:"encryptionKey"`
	// (Optional) The service account to impersonate for accessing the State Bucket.
	//
	// You must have roles/iam.serviceAccountTokenCreator role on that account for the impersonation to succeed.
	// If you are using a delegation chain, you can specify that using the impersonate_service_account_delegates field.
	// Alternatively, this can be specified using the GOOGLE_IMPERSONATE_SERVICE_ACCOUNT environment variable.
	// Experimental.
	ImpersonateServiceAccount *string `field:"optional" json:"impersonateServiceAccount" yaml:"impersonateServiceAccount"`
	// (Optional) The delegation chain for an impersonating a service account.
	// Experimental.
	ImpersonateServiceAccountDelegates *[]*string `field:"optional" json:"impersonateServiceAccountDelegates" yaml:"impersonateServiceAccountDelegates"`
	// (Optional) A Cloud KMS key ('customer-managed encryption key') used when reading and writing state files in the bucket.
	//
	// Format should be projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{name}}.
	// For more information, including IAM requirements, see {@link https://cloud.google.com/storage/docs/encryption/customer-managed-keys Customer-managed Encryption Keys}.
	// Experimental.
	KmsEncryptionKey *string `field:"optional" json:"kmsEncryptionKey" yaml:"kmsEncryptionKey"`
	// (Optional) GCS prefix inside the bucket.
	//
	// Named states for workspaces are stored in an object called <prefix>/<name>.tfstate.
	// Experimental.
	Prefix *string `field:"optional" json:"prefix" yaml:"prefix"`
	// (Optional) A URL containing three parts: the protocol, the DNS name pointing to a Private Service Connect endpoint, and the path for the Cloud Storage API (/storage/v1/b).
	//
	// {@link https://developer.hashicorp.com/terraform/language/settings/backends/gcs#storage_custom_endpoint See here for more details}
	// Experimental.
	StoreageCustomEndpoint *string `field:"optional" json:"storeageCustomEndpoint" yaml:"storeageCustomEndpoint"`
}

Stores the state as an object in a configurable prefix in a pre-existing bucket on Google Cloud Storage (GCS).

The bucket must exist prior to configuring the backend.

This backend supports state locking.

Warning! It is highly recommended that you enable Object Versioning on the GCS bucket to allow for state recovery in the case of accidental deletions and human error.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/gcs Experimental.

type HttpBackend

type HttpBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewHttpBackend

func NewHttpBackend(scope constructs.Construct, props *HttpBackendConfig) HttpBackend

Experimental.

type HttpBackendConfig added in v0.15.0

type HttpBackendConfig struct {
	// (Required) The address of the REST endpoint.
	// Experimental.
	Address *string `field:"required" json:"address" yaml:"address"`
	// (Optional) A PEM-encoded CA certificate chain used by the client to verify server certificates during TLS authentication.
	// Experimental.
	ClientCaCertificatePem *string `field:"optional" json:"clientCaCertificatePem" yaml:"clientCaCertificatePem"`
	// (Optional) A PEM-encoded certificate used by the server to verify the client during mutual TLS (mTLS) authentication.
	// Experimental.
	ClientCertificatePem *string `field:"optional" json:"clientCertificatePem" yaml:"clientCertificatePem"`
	// (Optional) A PEM-encoded private key, required if client_certificate_pem is specified.
	// Experimental.
	ClientPrivateKeyPem *string `field:"optional" json:"clientPrivateKeyPem" yaml:"clientPrivateKeyPem"`
	// (Optional) The address of the lock REST endpoint.
	//
	// Defaults to disabled.
	// Experimental.
	LockAddress *string `field:"optional" json:"lockAddress" yaml:"lockAddress"`
	// (Optional) The HTTP method to use when locking.
	//
	// Defaults to LOCK.
	// Experimental.
	LockMethod *string `field:"optional" json:"lockMethod" yaml:"lockMethod"`
	// (Optional) The password for HTTP basic authentication.
	// Experimental.
	Password *string `field:"optional" json:"password" yaml:"password"`
	// (Optional) The number of HTTP request retries.
	//
	// Defaults to 2.
	// Experimental.
	RetryMax *float64 `field:"optional" json:"retryMax" yaml:"retryMax"`
	// (Optional) The maximum time in seconds to wait between HTTP request attempts.
	//
	// Defaults to 30.
	// Experimental.
	RetryWaitMax *float64 `field:"optional" json:"retryWaitMax" yaml:"retryWaitMax"`
	// (Optional) The minimum time in seconds to wait between HTTP request attempts.
	//
	// Defaults to 1.
	// Experimental.
	RetryWaitMin *float64 `field:"optional" json:"retryWaitMin" yaml:"retryWaitMin"`
	// (Optional) Whether to skip TLS verification.
	//
	// Defaults to false.
	// Experimental.
	SkipCertVerification *bool `field:"optional" json:"skipCertVerification" yaml:"skipCertVerification"`
	// (Optional) The address of the unlock REST endpoint.
	//
	// Defaults to disabled.
	// Experimental.
	UnlockAddress *string `field:"optional" json:"unlockAddress" yaml:"unlockAddress"`
	// (Optional) The HTTP method to use when unlocking.
	//
	// Defaults to UNLOCK.
	// Experimental.
	UnlockMethod *string `field:"optional" json:"unlockMethod" yaml:"unlockMethod"`
	// (Optional) HTTP method to use when updating state.
	//
	// Defaults to POST.
	// Experimental.
	UpdateMethod *string `field:"optional" json:"updateMethod" yaml:"updateMethod"`
	// (Optional) The username for HTTP basic authentication.
	// Experimental.
	Username *string `field:"optional" json:"username" yaml:"username"`
}

Stores the state using a simple REST client.

State will be fetched via GET, updated via POST, and purged with DELETE. The method used for updating is configurable.

This backend optionally supports state locking. When locking support is enabled it will use LOCK and UNLOCK requests providing the lock info in the body. The endpoint should return a 423: Locked or 409: Conflict with the holding lock info when it's already taken, 200: OK for success. Any other status will be considered an error. The ID of the holding lock info will be added as a query parameter to state updates requests.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/http Experimental.

type IAnyProducer

type IAnyProducer interface {
	// Produce the value.
	// Experimental.
	Produce(context IResolveContext) interface{}
}

Interface for lazy untyped value producers. Experimental.

type IAspect added in v0.6.0

type IAspect interface {
	// All aspects can visit an IConstruct.
	// Experimental.
	Visit(node constructs.IConstruct)
}

Represents an Aspect. Experimental.

type IFragmentConcatenator

type IFragmentConcatenator interface {
	// Join the fragment on the left and on the right.
	// Experimental.
	Join(left interface{}, right interface{}) interface{}
}

Function used to concatenate symbols in the target document language.

Interface so it could potentially be exposed over jsii. Experimental.

type IImportableConfig added in v0.19.0

type IImportableConfig interface {
	// Experimental.
	ImportId() *string
	// Experimental.
	SetImportId(i *string)
	// Experimental.
	Provider() TerraformProvider
	// Experimental.
	SetProvider(p TerraformProvider)
	// Experimental.
	TerraformResourceType() *string
	// Experimental.
	SetTerraformResourceType(t *string)
}

Experimental.

type IInterpolatingParent added in v0.9.0

type IInterpolatingParent interface {
	// Experimental.
	InterpolationForAttribute(terraformAttribute *string) IResolvable
}

Experimental.

type IListProducer

type IListProducer interface {
	// Produce the list value.
	// Experimental.
	Produce(context IResolveContext) *[]*string
}

Interface for lazy list producers. Experimental.

type IManifest added in v0.6.0

type IManifest interface {
	// Experimental.
	Stacks() *map[string]*StackManifest
	// Experimental.
	Version() *string
}

Experimental.

type INumberProducer

type INumberProducer interface {
	// Produce the number value.
	// Experimental.
	Produce(context IResolveContext) *float64
}

Interface for lazy number producers. Experimental.

type IPostProcessor

type IPostProcessor interface {
	// Process the completely resolved value, after full recursion/resolution has happened.
	// Experimental.
	PostProcess(input interface{}, context IResolveContext) interface{}
}

A Token that can post-process the complete resolved value, after resolve() has recursed over it. Experimental.

type IRemoteWorkspace

type IRemoteWorkspace interface {
}

Experimental.

type IResolvable

type IResolvable interface {
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
}

Interface for values that can be resolvable later.

Tokens are special objects that participate in synthesis. Experimental.

func FnGenerated_Alltrue added in v0.16.0

func FnGenerated_Alltrue(list *[]interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/alltrue alltrue} returns `true` if all elements in a given collection are `true` or `"true"`. It also returns `true` if the collection is empty. Experimental.

func FnGenerated_Anytrue added in v0.16.0

func FnGenerated_Anytrue(list *[]interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/anytrue anytrue} returns `true` if any element in a given collection is `true` or `"true"`. It also returns `false` if the collection is empty. Experimental.

func FnGenerated_Can added in v0.16.0

func FnGenerated_Can(expression interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/can can} evaluates the given expression and returns a boolean value indicating whether the expression produced a result without any errors. Experimental.

func FnGenerated_Endswith added in v0.16.0

func FnGenerated_Endswith(str *string, suffix *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/endswith endswith} takes two values: a string to check and a suffix string. The function returns true if the first string ends with that exact suffix. Experimental.

func FnGenerated_Fileexists added in v0.16.0

func FnGenerated_Fileexists(path *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/fileexists fileexists} determines whether a file exists at a given path. Experimental.

func FnGenerated_Startswith added in v0.16.0

func FnGenerated_Startswith(str *string, prefix *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/startswith startswith} takes two values: a string to check and a prefix string. The function returns true if the string begins with that exact prefix. Experimental.

func FnGenerated_Strcontains added in v0.20.0

func FnGenerated_Strcontains(str *string, substr *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/strcontains strcontains} takes two values: a string to check and an expected substring. The function returns true if the string has the substring contained within it. Experimental.

func FnGenerated_Tobool added in v0.16.0

func FnGenerated_Tobool(v interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/tobool tobool} converts its argument to a boolean value. Experimental.

func Fn_Alltrue added in v0.6.0

func Fn_Alltrue(list *[]interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/alltrue alltrue} returns `true` if all elements in a given collection are `true` or `"true"`. It also returns `true` if the collection is empty. Experimental.

func Fn_Anytrue added in v0.6.0

func Fn_Anytrue(list *[]interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/anytrue anytrue} returns `true` if any element in a given collection is `true` or `"true"`. It also returns `false` if the collection is empty. Experimental.

func Fn_Can added in v0.6.0

func Fn_Can(expression interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/can can} evaluates the given expression and returns a boolean value indicating whether the expression produced a result without any errors. Experimental.

func Fn_Endswith added in v0.16.0

func Fn_Endswith(str *string, suffix *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/endswith endswith} takes two values: a string to check and a suffix string. The function returns true if the first string ends with that exact suffix. Experimental.

func Fn_Fileexists added in v0.6.0

func Fn_Fileexists(path *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/fileexists fileexists} determines whether a file exists at a given path. Experimental.

func Fn_Startswith added in v0.16.0

func Fn_Startswith(str *string, prefix *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/startswith startswith} takes two values: a string to check and a prefix string. The function returns true if the string begins with that exact prefix. Experimental.

func Fn_Strcontains added in v0.20.0

func Fn_Strcontains(str *string, substr *string) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/strcontains strcontains} takes two values: a string to check and an expected substring. The function returns true if the string has the substring contained within it. Experimental.

func Fn_Tobool added in v0.6.0

func Fn_Tobool(v interface{}) IResolvable

{@link https://developer.hashicorp.com/terraform/language/functions/tobool tobool} converts its argument to a boolean value. Experimental.

func Lazy_AnyValue

func Lazy_AnyValue(producer IAnyProducer, options *LazyAnyValueOptions) IResolvable

Produces a lazy token from an untyped value. Experimental.

func Op_And added in v0.14.0

func Op_And(left interface{}, right interface{}) IResolvable

Renders left && right. Experimental.

func Op_Eq added in v0.14.0

func Op_Eq(left interface{}, right interface{}) IResolvable

Renders left == right. Experimental.

func Op_Gt added in v0.14.0

func Op_Gt(left interface{}, right interface{}) IResolvable

Renders left > right. Experimental.

func Op_Gte added in v0.14.0

func Op_Gte(left interface{}, right interface{}) IResolvable

Renders left >= right. Experimental.

func Op_Lt added in v0.14.0

func Op_Lt(left interface{}, right interface{}) IResolvable

Renders left < right. Experimental.

func Op_Lte added in v0.14.0

func Op_Lte(left interface{}, right interface{}) IResolvable

Renders left <= right. Experimental.

func Op_Neq added in v0.14.0

func Op_Neq(left interface{}, right interface{}) IResolvable

Renders left != right. Experimental.

func Op_Not added in v0.14.0

func Op_Not(expression interface{}) IResolvable

Renders !expression. Experimental.

func Op_Or added in v0.14.0

func Op_Or(left interface{}, right interface{}) IResolvable

Renders left || right. Experimental.

func Token_AsAny

func Token_AsAny(value interface{}) IResolvable

Return a resolvable representation of the given value. Experimental.

func Token_NullValue added in v0.14.0

func Token_NullValue() IResolvable

Return a Token containing a `null` value.

Note: This is different than `undefined`, `nil`, `None` or similar as it will end up in the Terraform config and can be used to explicitly not set an attribute (which is sometimes required by Terraform providers).

Returns: a Token resolving to `null` as understood by Terraform. Experimental.

func Tokenization_ReverseList

func Tokenization_ReverseList(l *[]*string) IResolvable

Un-encode a Tokenized value from a list. Experimental.

func Tokenization_ReverseMap added in v0.9.0

func Tokenization_ReverseMap(m *map[string]interface{}) IResolvable

Un-encode a Tokenized value from a map. Experimental.

func Tokenization_ReverseNumber

func Tokenization_ReverseNumber(n *float64) IResolvable

Un-encode a Tokenized value from a number. Experimental.

func Tokenization_ReverseNumberList added in v0.9.0

func Tokenization_ReverseNumberList(l *[]*float64) IResolvable

Un-encode a Tokenized value from a list. Experimental.

type IResolveContext

type IResolveContext interface {
	// Use this postprocessor after the entire token structure has been resolved.
	// Experimental.
	RegisterPostProcessor(postProcessor IPostProcessor)
	// Resolve an inner object.
	// Experimental.
	Resolve(x interface{}) interface{}
	// True when ${} should not be parsed, and treated as literals.
	// Experimental.
	IgnoreEscapes() *bool
	// Experimental.
	SetIgnoreEscapes(i *bool)
	// TerraformIterators can be passed for block attributes and normal list attributes both require different handling when the iterable variable is accessed e.g. a dynamic block needs each.key while a for expression just needs key.
	// Experimental.
	IteratorContext() *string
	// Experimental.
	SetIteratorContext(i *string)
	// True when we are still preparing, false if we're rendering the final output.
	// Experimental.
	Preparing() *bool
	// The scope from which resolution has been initiated.
	// Experimental.
	Scope() constructs.IConstruct
	// True when ${} should be ommitted (because already inside them), false otherwise.
	// Experimental.
	SuppressBraces() *bool
	// Experimental.
	SetSuppressBraces(s *bool)
	// True when ${} should not be included in the string to be resolved, outputs a warning.
	//
	// Default: false.
	// Experimental.
	WarnEscapes() *bool
	// Experimental.
	SetWarnEscapes(w *bool)
}

Current resolution context for tokens. Experimental.

type IResource

type IResource interface {
	constructs.IConstruct
	// The stack in which this resource is defined.
	// Experimental.
	Stack() TerraformStack
}

Experimental.

type IResourceConstructor added in v0.6.0

type IResourceConstructor interface {
}

Experimental.

type IScopeCallback added in v0.6.0

type IScopeCallback interface {
}

Experimental.

type IStackSynthesizer added in v0.6.0

type IStackSynthesizer interface {
	// Synthesize the associated stack to the session.
	// Experimental.
	Synthesize(session ISynthesisSession)
}

Encodes information how a certain Stack should be deployed inspired by AWS CDK v2 implementation (synth functionality was removed in constructs v10). Experimental.

type IStringProducer

type IStringProducer interface {
	// Produce the string value.
	// Experimental.
	Produce(context IResolveContext) *string
}

Interface for lazy string producers. Experimental.

type ISynthesisSession added in v0.6.0

type ISynthesisSession interface {
	// Experimental.
	Manifest() Manifest
	// The output directory for this synthesis session.
	// Experimental.
	Outdir() *string
	// Experimental.
	SkipValidation() *bool
}

Represents a single session of synthesis.

Passed into `TerraformStack.onSynthesize()` methods. originally from aws/constructs lib v3.3.126 (synth functionality was removed in constructs v10) Experimental.

type ITerraformAddressable added in v0.8.0

type ITerraformAddressable interface {
	// Experimental.
	Fqn() *string
}

Experimental.

type ITerraformDependable

type ITerraformDependable interface {
	ITerraformAddressable
}

Experimental.

type ITerraformIterator added in v0.12.0

type ITerraformIterator interface {
}

Experimental.

type ITerraformResource

type ITerraformResource interface {
	// Experimental.
	InterpolationForAttribute(terraformAttribute *string) IResolvable
	// Experimental.
	Count() interface{}
	// Experimental.
	SetCount(c interface{})
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(d *[]*string)
	// Experimental.
	ForEach() ITerraformIterator
	// Experimental.
	SetForEach(f ITerraformIterator)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Lifecycle() *TerraformResourceLifecycle
	// Experimental.
	SetLifecycle(l *TerraformResourceLifecycle)
	// Experimental.
	Provider() TerraformProvider
	// Experimental.
	SetProvider(p TerraformProvider)
	// Experimental.
	TerraformResourceType() *string
}

Experimental.

type ITokenMapper

type ITokenMapper interface {
	// Replace a single token.
	// Experimental.
	MapToken(t IResolvable) interface{}
}

Interface to apply operation to tokens in a string.

Interface so it can be exported via jsii. Experimental.

type ITokenResolver

type ITokenResolver interface {
	// Resolve a tokenized list.
	// Experimental.
	ResolveList(l *[]*string, context IResolveContext) interface{}
	// Resolve a tokenized map.
	// Experimental.
	ResolveMap(m *map[string]interface{}, context IResolveContext) interface{}
	// Resolve a tokenized number list.
	// Experimental.
	ResolveNumberList(l *[]*float64, context IResolveContext) interface{}
	// Resolve a string with at least one stringified token in it.
	//
	// (May use concatenation).
	// Experimental.
	ResolveString(s TokenizedStringFragments, context IResolveContext) interface{}
	// Resolve a single token.
	// Experimental.
	ResolveToken(t IResolvable, context IResolveContext, postProcessor IPostProcessor) interface{}
}

How to resolve tokens. Experimental.

type ImportableResource added in v0.19.0

type ImportableResource interface {
	TerraformElement
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Class used to represent an importable resource. Experimental.

func DataResource_GenerateConfigForImport added in v0.20.0

func DataResource_GenerateConfigForImport(scope constructs.Construct, importToId *string, importFromId *string, provider TerraformProvider) ImportableResource

Generates CDKTF code for importing a Data resource upon running "cdktf plan <stack-name>". Experimental.

func NewImportableResource added in v0.19.0

func NewImportableResource(scope constructs.Construct, name *string, config IImportableConfig) ImportableResource

Experimental.

type Lazy

type Lazy interface {
}

Lazily produce a value.

Can be used to return a string, list or numeric value whose actual value will only be calculated later, during synthesis. Experimental.

func NewLazy

func NewLazy() Lazy

Experimental.

type LazyAnyValueOptions

type LazyAnyValueOptions struct {
	// Use the given name as a display hint.
	// Default: - No hint.
	//
	// Experimental.
	DisplayHint *string `field:"optional" json:"displayHint" yaml:"displayHint"`
	// If the produced value is an array and it is empty, return 'undefined' instead.
	// Default: false.
	//
	// Experimental.
	OmitEmptyArray *bool `field:"optional" json:"omitEmptyArray" yaml:"omitEmptyArray"`
}

Options for creating lazy untyped tokens. Experimental.

type LazyBase added in v0.7.0

type LazyBase interface {
	IResolvable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	AddPostProcessor(postProcessor IPostProcessor)
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(context IResolveContext) interface{}
	// Experimental.
	ResolveLazy(context IResolveContext) interface{}
	// Turn this Token into JSON.
	//
	// Called automatically when JSON.stringify() is called on a Token.
	// Experimental.
	ToJSON() interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

type LazyListValueOptions

type LazyListValueOptions struct {
	// Use the given name as a display hint.
	// Default: - No hint.
	//
	// Experimental.
	DisplayHint *string `field:"optional" json:"displayHint" yaml:"displayHint"`
	// If the produced list is empty, return 'undefined' instead.
	// Default: false.
	//
	// Experimental.
	OmitEmpty *bool `field:"optional" json:"omitEmpty" yaml:"omitEmpty"`
}

Options for creating a lazy list token. Experimental.

type LazyStringValueOptions

type LazyStringValueOptions struct {
	// Use the given name as a display hint.
	// Default: - No hint.
	//
	// Experimental.
	DisplayHint *string `field:"optional" json:"displayHint" yaml:"displayHint"`
}

Options for creating a lazy string token. Experimental.

type ListTerraformIterator added in v0.12.0

type ListTerraformIterator interface {
	TerraformIterator
	// Returns the currently entry in the list or set that is being iterated over.
	//
	// For lists this is the same as `iterator.value`. If you need the index,
	// use count via `TerraformCount`:
	// https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-count
	// Experimental.
	Key() interface{}
	// Returns the value of the current item iterated over.
	// Experimental.
	Value() interface{}
	// Creates a dynamic expression that can be used to loop over this iterator in a dynamic block.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// See https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-iterators-for-list-attributes
	// Experimental.
	Dynamic(attributes *map[string]interface{}) IResolvable
	// Creates a for expression that results in a list.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraform's for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty() instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromList(myIteratorSourceVar).forExpressionForList("val.foo if val.bar == true")`
	// will result in `[ for key, val in var.myIteratorSource: val.foo if val.bar == true ]`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForList(expression interface{}) IResolvable
	// Creates a for expression that results in a map.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraforms for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromMap(myIteratorSourceVar).forExpressionForMap("key", "val.foo if val.bar == true")`
	// will result in `{ for key, val in var.myIteratorSource: key => val.foo if val.bar == true }`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForMap(keyExpression interface{}, valueExpression interface{}) IResolvable
	// Returns: the given attribute of the current item iterated over as any.
	// Experimental.
	GetAny(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of any.
	// Experimental.
	GetAnyMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a boolean.
	// Experimental.
	GetBoolean(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of booleans.
	// Experimental.
	GetBooleanMap(attribute *string) *map[string]*bool
	// Returns: the given attribute of the current item iterated over as a (string) list.
	// Experimental.
	GetList(attribute *string) *[]*string
	// Returns: the given attribute of the current item iterated over as a map.
	// Experimental.
	GetMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a number.
	// Experimental.
	GetNumber(attribute *string) *float64
	// Returns: the given attribute of the current item iterated over as a number list.
	// Experimental.
	GetNumberList(attribute *string) *[]*float64
	// Returns: the given attribute of the current item iterated over as a map of numbers.
	// Experimental.
	GetNumberMap(attribute *string) *map[string]*float64
	// Returns: the given attribute of the current item iterated over as a string.
	// Experimental.
	GetString(attribute *string) *string
	// Returns: the given attribute of the current item iterated over as a map of strings.
	// Experimental.
	GetStringMap(attribute *string) *map[string]*string
	// Creates a for expression that maps the iterators to its keys.
	//
	// For lists these would be the indices, for maps the keys.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Keys() IResolvable
	// Creates a for expression that accesses the key on each element of the iterator.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	PluckProperty(property *string) IResolvable
	// Creates a for expression that maps the iterators to its value in case it is a map.
	//
	// For lists these would stay the same.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Values() IResolvable
}

Experimental.

func DynamicListTerraformIterator_FromList added in v0.20.0

func DynamicListTerraformIterator_FromList(list interface{}) ListTerraformIterator

Creates a new iterator from a list. Experimental.

func ListTerraformIterator_FromList added in v0.12.0

func ListTerraformIterator_FromList(list interface{}) ListTerraformIterator

Creates a new iterator from a list. Experimental.

func MapTerraformIterator_FromList added in v0.12.0

func MapTerraformIterator_FromList(list interface{}) ListTerraformIterator

Creates a new iterator from a list. Experimental.

func NewListTerraformIterator added in v0.12.0

func NewListTerraformIterator(list interface{}) ListTerraformIterator

Experimental.

func ResourceTerraformIterator_FromList added in v0.20.0

func ResourceTerraformIterator_FromList(list interface{}) ListTerraformIterator

Creates a new iterator from a list. Experimental.

func TerraformIterator_FromList added in v0.12.0

func TerraformIterator_FromList(list interface{}) ListTerraformIterator

Creates a new iterator from a list. Experimental.

type LocalBackend

type LocalBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewLocalBackend

func NewLocalBackend(scope constructs.Construct, props *LocalBackendConfig) LocalBackend

Experimental.

type LocalBackendConfig added in v0.15.0

type LocalBackendConfig struct {
	// Path where the state file is stored.
	// Default: - defaults to terraform.${stackId}.tfstate
	//
	// Experimental.
	Path *string `field:"optional" json:"path" yaml:"path"`
	// (Optional) The path to non-default workspaces.
	// Experimental.
	WorkspaceDir *string `field:"optional" json:"workspaceDir" yaml:"workspaceDir"`
}

The local backend stores state on the local filesystem, locks that state using system APIs, and performs operations locally.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/local Experimental.

type LocalExecProvisioner added in v0.12.2

type LocalExecProvisioner struct {
	// This is the command to execute.
	//
	// It can be provided as a relative path to the current working directory or as an absolute path.
	// It is evaluated in a shell, and can use environment variables or Terraform variables.
	// Experimental.
	Command *string `field:"required" json:"command" yaml:"command"`
	// Experimental.
	Type *string `field:"required" json:"type" yaml:"type"`
	// A record of key value pairs representing the environment of the executed command.
	//
	// It inherits the current process environment.
	// Experimental.
	Environment *map[string]*string `field:"optional" json:"environment" yaml:"environment"`
	// If provided, this is a list of interpreter arguments used to execute the command.
	//
	// The first argument is the interpreter itself.
	// It can be provided as a relative path to the current working directory or as an absolute path
	// The remaining arguments are appended prior to the command.
	// This allows building command lines of the form "/bin/bash", "-c", "echo foo".
	// If interpreter is unspecified, sensible defaults will be chosen based on the system OS.
	// Experimental.
	Interpreter *[]*string `field:"optional" json:"interpreter" yaml:"interpreter"`
	// If provided, specifies when Terraform will execute the command.
	//
	// For example, when = destroy specifies that the provisioner will run when the associated resource is destroyed.
	// Experimental.
	When *string `field:"optional" json:"when" yaml:"when"`
	// If provided, specifies the working directory where command will be executed.
	//
	// It can be provided as a relative path to the current working directory or as an absolute path.
	// The directory must exist.
	// Experimental.
	WorkingDir *string `field:"optional" json:"workingDir" yaml:"workingDir"`
}

The local-exec provisioner invokes a local executable after a resource is created.

This invokes a process on the machine running Terraform, not on the resource.

See {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/local-exec local-exec} Experimental.

type Manifest

type Manifest interface {
	IManifest
	// Experimental.
	HclOutput() *bool
	// Experimental.
	Outdir() *string
	// Experimental.
	StackFileName() *string
	// Experimental.
	Stacks() *map[string]*StackManifest
	// Experimental.
	Version() *string
	// Experimental.
	BuildManifest() IManifest
	// Experimental.
	ForStack(stack TerraformStack) *StackManifest
	// Experimental.
	WriteToFile()
}

Experimental.

func NewManifest

func NewManifest(version *string, outdir *string, hclOutput *bool) Manifest

Experimental.

type MapList added in v0.16.0

type MapList interface {
	IInterpolatingParent
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

type MapTerraformIterator added in v0.12.0

type MapTerraformIterator interface {
	TerraformIterator
	// Returns the key of the current entry in the map that is being iterated over.
	// Experimental.
	Key() *string
	// Returns the value of the current item iterated over.
	// Experimental.
	Value() interface{}
	// Creates a dynamic expression that can be used to loop over this iterator in a dynamic block.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// See https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-iterators-for-list-attributes
	// Experimental.
	Dynamic(attributes *map[string]interface{}) IResolvable
	// Creates a for expression that results in a list.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraform's for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty() instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromList(myIteratorSourceVar).forExpressionForList("val.foo if val.bar == true")`
	// will result in `[ for key, val in var.myIteratorSource: val.foo if val.bar == true ]`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForList(expression interface{}) IResolvable
	// Creates a for expression that results in a map.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraforms for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromMap(myIteratorSourceVar).forExpressionForMap("key", "val.foo if val.bar == true")`
	// will result in `{ for key, val in var.myIteratorSource: key => val.foo if val.bar == true }`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForMap(keyExpression interface{}, valueExpression interface{}) IResolvable
	// Returns: the given attribute of the current item iterated over as any.
	// Experimental.
	GetAny(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of any.
	// Experimental.
	GetAnyMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a boolean.
	// Experimental.
	GetBoolean(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of booleans.
	// Experimental.
	GetBooleanMap(attribute *string) *map[string]*bool
	// Returns: the given attribute of the current item iterated over as a (string) list.
	// Experimental.
	GetList(attribute *string) *[]*string
	// Returns: the given attribute of the current item iterated over as a map.
	// Experimental.
	GetMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a number.
	// Experimental.
	GetNumber(attribute *string) *float64
	// Returns: the given attribute of the current item iterated over as a number list.
	// Experimental.
	GetNumberList(attribute *string) *[]*float64
	// Returns: the given attribute of the current item iterated over as a map of numbers.
	// Experimental.
	GetNumberMap(attribute *string) *map[string]*float64
	// Returns: the given attribute of the current item iterated over as a string.
	// Experimental.
	GetString(attribute *string) *string
	// Returns: the given attribute of the current item iterated over as a map of strings.
	// Experimental.
	GetStringMap(attribute *string) *map[string]*string
	// Creates a for expression that maps the iterators to its keys.
	//
	// For lists these would be the indices, for maps the keys.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Keys() IResolvable
	// Creates a for expression that accesses the key on each element of the iterator.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	PluckProperty(property *string) IResolvable
	// Creates a for expression that maps the iterators to its value in case it is a map.
	//
	// For lists these would stay the same.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Values() IResolvable
}

Experimental.

func DynamicListTerraformIterator_FromMap added in v0.20.0

func DynamicListTerraformIterator_FromMap(map_ interface{}) MapTerraformIterator

Creates a new iterator from a map. Experimental.

func ListTerraformIterator_FromMap added in v0.12.0

func ListTerraformIterator_FromMap(map_ interface{}) MapTerraformIterator

Creates a new iterator from a map. Experimental.

func MapTerraformIterator_FromMap added in v0.12.0

func MapTerraformIterator_FromMap(map_ interface{}) MapTerraformIterator

Creates a new iterator from a map. Experimental.

func NewMapTerraformIterator added in v0.12.0

func NewMapTerraformIterator(map_ interface{}) MapTerraformIterator

Experimental.

func ResourceTerraformIterator_FromMap added in v0.20.0

func ResourceTerraformIterator_FromMap(map_ interface{}) MapTerraformIterator

Creates a new iterator from a map. Experimental.

func TerraformIterator_FromMap added in v0.12.0

func TerraformIterator_FromMap(map_ interface{}) MapTerraformIterator

Creates a new iterator from a map. Experimental.

type MigrateIds added in v0.19.2

type MigrateIds interface {
	IAspect
	// All aspects can visit an IConstruct.
	// Experimental.
	Visit(node constructs.IConstruct)
}

For migrating past 0.17 where the feature flag for the old id generation logic was removed after being deprecated since 0.15. Experimental.

func NewMigrateIds added in v0.19.2

func NewMigrateIds() MigrateIds

Experimental.

type NamedCloudWorkspace added in v0.12.2

type NamedCloudWorkspace interface {
	CloudWorkspace
	// Experimental.
	Name() *string
	// Experimental.
	SetName(val *string)
	// Experimental.
	Project() *string
	// Experimental.
	SetProject(val *string)
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToTerraform() interface{}
}

The name of a single Terraform Cloud workspace.

You will only be able to use the workspace specified in the configuration with this working directory, and cannot manage workspaces from the CLI (e.g. terraform workspace select or terraform workspace new). Experimental.

func NewNamedCloudWorkspace added in v0.12.2

func NewNamedCloudWorkspace(name *string, project *string) NamedCloudWorkspace

Experimental.

type NamedRemoteWorkspace

type NamedRemoteWorkspace interface {
	IRemoteWorkspace
	// Experimental.
	Name() *string
	// Experimental.
	SetName(val *string)
}

Experimental.

func NewNamedRemoteWorkspace

func NewNamedRemoteWorkspace(name *string) NamedRemoteWorkspace

Experimental.

type NumberListList added in v0.17.0

type NumberListList interface {
	ComplexList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Creating an iterator for this complex list.
	//
	// The list will be converted into a map with the mapKeyAttributeName as the key.
	// Experimental.
	AllWithMapKey(mapKeyAttributeName *string) DynamicListTerraformIterator
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) *[]*float64
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewNumberListList added in v0.17.0

func NewNumberListList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) NumberListList

Experimental.

type NumberListMap added in v0.16.0

type NumberListMap interface {
	ComplexMap
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(key *string) *[]*float64
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewNumberListMap added in v0.16.0

func NewNumberListMap(terraformResource IInterpolatingParent, terraformAttribute *string) NumberListMap

Experimental.

type NumberMap

type NumberMap interface {
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Lookup(key *string) *float64
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewNumberMap

func NewNumberMap(terraformResource IInterpolatingParent, terraformAttribute *string) NumberMap

Experimental.

type NumberMapList added in v0.11.0

type NumberMapList interface {
	MapList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) NumberMap
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewNumberMapList added in v0.11.0

func NewNumberMapList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) NumberMapList

Experimental.

type Op added in v0.14.0

type Op interface {
}

This class contains static functions for all arithmetical and logical operators in the Terraform configuration language. Experimental.

func NewOp added in v0.14.0

func NewOp() Op

Experimental.

type OssAssumeRole

type OssAssumeRole struct {
	// Experimental.
	RoleArn *string `field:"required" json:"roleArn" yaml:"roleArn"`
	// Experimental.
	Policy *string `field:"optional" json:"policy" yaml:"policy"`
	// Experimental.
	SessionExpiration *float64 `field:"optional" json:"sessionExpiration" yaml:"sessionExpiration"`
	// Experimental.
	SessionName *string `field:"optional" json:"sessionName" yaml:"sessionName"`
}

Experimental.

type OssBackend

type OssBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewOssBackend

func NewOssBackend(scope constructs.Construct, props *OssBackendConfig) OssBackend

Experimental.

type OssBackendConfig added in v0.15.0

type OssBackendConfig struct {
	// (Required) The name of the OSS bucket.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// (Optional) Alibaba Cloud access key.
	//
	// It supports environment variables ALICLOUD_ACCESS_KEY and ALICLOUD_ACCESS_KEY_ID.
	// Experimental.
	AccessKey *string `field:"optional" json:"accessKey" yaml:"accessKey"`
	// (Optional) Object ACL to be applied to the state file.
	// Experimental.
	Acl *string `field:"optional" json:"acl" yaml:"acl"`
	// Deprecated: Use flattened assume role options.
	AssumeRole *OssAssumeRole `field:"optional" json:"assumeRole" yaml:"assumeRole"`
	// (Optional, Available in 1.1.0+) A more restrictive policy to apply to the temporary credentials. This gives you a way to further restrict the permissions for the resulting temporary security credentials. You cannot use this policy to grant permissions that exceed those of the role that is being assumed.
	// Experimental.
	AssumeRolePolicy *string `field:"optional" json:"assumeRolePolicy" yaml:"assumeRolePolicy"`
	// (Optional, Available in 1.1.0+) The ARN of the role to assume. If ARN is set to an empty string, it does not perform role switching. It supports the environment variable ALICLOUD_ASSUME_ROLE_ARN. Terraform executes configuration on account with provided credentials.
	// Experimental.
	AssumeRoleRoleArn *string `field:"optional" json:"assumeRoleRoleArn" yaml:"assumeRoleRoleArn"`
	// (Optional, Available in 1.1.0+) The time after which the established session for assuming role expires. Valid value range: [900-3600] seconds. Default to 3600 (in this case Alibaba Cloud uses its own default value). It supports environment variable ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION.
	// Experimental.
	AssumeRoleSessionExpiration *float64 `field:"optional" json:"assumeRoleSessionExpiration" yaml:"assumeRoleSessionExpiration"`
	// (Optional, Available in 1.1.0+) The session name to use when assuming the role. If omitted, 'terraform' is passed to the AssumeRole call as session name. It supports environment variable ALICLOUD_ASSUME_ROLE_SESSION_NAME.
	// Experimental.
	AssumeRoleSessionName *string `field:"optional" json:"assumeRoleSessionName" yaml:"assumeRoleSessionName"`
	// (Optional, Available in 0.12.14+) The RAM Role Name attached on a ECS instance for API operations. You can retrieve this from the 'Access Control' section of the Alibaba Cloud console.
	// Experimental.
	EcsRoleName *string `field:"optional" json:"ecsRoleName" yaml:"ecsRoleName"`
	// (Optional) Whether to enable server side encryption of the state file.
	//
	// If it is true, OSS will use 'AES256' encryption algorithm to encrypt state file.
	// Experimental.
	Encrypt *bool `field:"optional" json:"encrypt" yaml:"encrypt"`
	// (Optional) A custom endpoint for the OSS API.
	//
	// It supports environment variables ALICLOUD_OSS_ENDPOINT and OSS_ENDPOINT.
	// Experimental.
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The name of the state file.
	//
	// Defaults to terraform.tfstate.
	// Experimental.
	Key *string `field:"optional" json:"key" yaml:"key"`
	// (Optional) The path directory of the state file will be stored.
	//
	// Default to "env:".
	// Experimental.
	Prefix *string `field:"optional" json:"prefix" yaml:"prefix"`
	// (Optional, Available in 0.12.8+) This is the Alibaba Cloud profile name as set in the shared credentials file. It can also be sourced from the ALICLOUD_PROFILE environment variable.
	// Experimental.
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// (Optional) The region of the OSS bucket.
	//
	// It supports environment variables ALICLOUD_REGION and ALICLOUD_DEFAULT_REGION.
	// Experimental.
	Region *string `field:"optional" json:"region" yaml:"region"`
	// (Optional) Alibaba Cloud secret access key.
	//
	// It supports environment variables ALICLOUD_SECRET_KEY and ALICLOUD_ACCESS_KEY_SECRET.
	// Experimental.
	SecretKey *string `field:"optional" json:"secretKey" yaml:"secretKey"`
	// (Optional) STS access token.
	//
	// It supports environment variable ALICLOUD_SECURITY_TOKEN.
	// Experimental.
	SecurityToken *string `field:"optional" json:"securityToken" yaml:"securityToken"`
	// (Optional, Available in 0.12.8+) This is the path to the shared credentials file. It can also be sourced from the ALICLOUD_SHARED_CREDENTIALS_FILE environment variable. If this is not set and a profile is specified, ~/.aliyun/config.json will be used.
	// Experimental.
	SharedCredentialsFile *string `field:"optional" json:"sharedCredentialsFile" yaml:"sharedCredentialsFile"`
	// (Optional, Available in 1.0.11+) Custom endpoint for the AliCloud Security Token Service (STS) API. It supports environment variable ALICLOUD_STS_ENDPOINT.
	// Experimental.
	StsEndpoint *string `field:"optional" json:"stsEndpoint" yaml:"stsEndpoint"`
	// (Optional) A custom endpoint for the TableStore API.
	// Experimental.
	TablestoreEndpoint *string `field:"optional" json:"tablestoreEndpoint" yaml:"tablestoreEndpoint"`
	// (Optional) A TableStore table for state locking and consistency.
	//
	// The table must have a primary key named LockID of type String.
	// Experimental.
	TablestoreTable *string `field:"optional" json:"tablestoreTable" yaml:"tablestoreTable"`
}

Experimental.

type PgBackend

type PgBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewPgBackend

func NewPgBackend(scope constructs.Construct, props *PgBackendConfig) PgBackend

Experimental.

type PgBackendConfig added in v0.15.0

type PgBackendConfig struct {
	// Postgres connection string;
	//
	// a postgres:// URL.
	// The PG_CONN_STR and standard libpq environment variables can also be used to indicate how to connect to the PostgreSQL database.
	// Experimental.
	ConnStr *string `field:"required" json:"connStr" yaml:"connStr"`
	// Name of the automatically-managed Postgres schema, default to terraform_remote_state.
	//
	// Can also be set using the PG_SCHEMA_NAME environment variable.
	// Experimental.
	SchemaName *string `field:"optional" json:"schemaName" yaml:"schemaName"`
	// If set to true, the Postgres index must already exist.
	//
	// Can also be set using the PG_SKIP_INDEX_CREATION environment variable.
	// Terraform won't try to create the index, this is useful when it has already been created by a database administrator.
	// Experimental.
	SkipIndexCreation *bool `field:"optional" json:"skipIndexCreation" yaml:"skipIndexCreation"`
	// If set to true, the Postgres schema must already exist.
	//
	// Can also be set using the PG_SKIP_SCHEMA_CREATION environment variable.
	// Terraform won't try to create the schema, this is useful when it has already been created by a database administrator.
	// Experimental.
	SkipSchemaCreation *bool `field:"optional" json:"skipSchemaCreation" yaml:"skipSchemaCreation"`
	// If set to true, the Postgres table must already exist.
	//
	// Can also be set using the PG_SKIP_TABLE_CREATION environment variable.
	// Terraform won't try to create the table, this is useful when it has already been created by a database administrator.
	// Experimental.
	SkipTableCreation *bool `field:"optional" json:"skipTableCreation" yaml:"skipTableCreation"`
}

Experimental.

type Postcondition added in v0.16.0

type Postcondition struct {
	// This is a boolean expression that should return true if the intended assumption or guarantee is fulfilled or false if it does not.
	// Experimental.
	Condition interface{} `field:"required" json:"condition" yaml:"condition"`
	// This contains the text that Terraform will include as part of error messages when it detects an unmet condition.
	// Experimental.
	ErrorMessage *string `field:"required" json:"errorMessage" yaml:"errorMessage"`
}

Terraform checks a postcondition after evaluating the object it is associated with. Experimental.

type Precondition added in v0.16.0

type Precondition struct {
	// This is a boolean expression that should return true if the intended assumption or guarantee is fulfilled or false if it does not.
	// Experimental.
	Condition interface{} `field:"required" json:"condition" yaml:"condition"`
	// This contains the text that Terraform will include as part of error messages when it detects an unmet condition.
	// Experimental.
	ErrorMessage *string `field:"required" json:"errorMessage" yaml:"errorMessage"`
}

Terraform checks a precondition before evaluating the object it is associated with. Experimental.

type PrefixedRemoteWorkspaces

type PrefixedRemoteWorkspaces interface {
	IRemoteWorkspace
	// Experimental.
	Prefix() *string
	// Experimental.
	SetPrefix(val *string)
}

Experimental.

func NewPrefixedRemoteWorkspaces

func NewPrefixedRemoteWorkspaces(prefix *string) PrefixedRemoteWorkspaces

Experimental.

type RemoteBackend

type RemoteBackend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewRemoteBackend

func NewRemoteBackend(scope constructs.Construct, props *RemoteBackendConfig) RemoteBackend

Experimental.

type RemoteBackendConfig added in v0.15.0

type RemoteBackendConfig struct {
	// Experimental.
	Organization *string `field:"required" json:"organization" yaml:"organization"`
	// Experimental.
	Workspaces IRemoteWorkspace `field:"required" json:"workspaces" yaml:"workspaces"`
	// Experimental.
	Hostname *string `field:"optional" json:"hostname" yaml:"hostname"`
	// Experimental.
	Token *string `field:"optional" json:"token" yaml:"token"`
}

Experimental.

type RemoteExecProvisioner added in v0.12.2

type RemoteExecProvisioner struct {
	// Experimental.
	Type *string `field:"required" json:"type" yaml:"type"`
	// Most provisioners require access to the remote resource via SSH or WinRM and expect a nested connection block with details about how to connect.
	//
	// A connection must be provided here or in the parent resource.
	// Experimental.
	Connection interface{} `field:"optional" json:"connection" yaml:"connection"`
	// This is a list of command strings.
	//
	// They are executed in the order they are provided.
	// This cannot be provided with script or scripts.
	// Experimental.
	Inline *[]*string `field:"optional" json:"inline" yaml:"inline"`
	// This is a path (relative or absolute) to a local script that will be copied to the remote resource and then executed.
	//
	// This cannot be provided with inline or scripts.
	// Experimental.
	Script *string `field:"optional" json:"script" yaml:"script"`
	// This is a list of paths (relative or absolute) to local scripts that will be copied to the remote resource and then executed.
	//
	// They are executed in the order they are provided.
	// This cannot be provided with inline or script.
	// Experimental.
	Scripts *[]*string `field:"optional" json:"scripts" yaml:"scripts"`
}

The remote-exec provisioner invokes a script on a remote resource after it is created.

This can be used to run a configuration management tool, bootstrap into a cluster, etc The remote-exec provisioner requires a connection and supports both ssh and winrm.

See {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/remote-exec remote-exec} Experimental.

type ResolveOptions

type ResolveOptions struct {
	// The resolver to apply to any resolvable tokens found.
	// Experimental.
	Resolver ITokenResolver `field:"required" json:"resolver" yaml:"resolver"`
	// The scope from which resolution is performed.
	// Experimental.
	Scope constructs.IConstruct `field:"required" json:"scope" yaml:"scope"`
	// Whether the resolution is being executed during the prepare phase or not.
	// Default: false.
	//
	// Experimental.
	Preparing *bool `field:"optional" json:"preparing" yaml:"preparing"`
}

Options to the resolve() operation.

NOT the same as the ResolveContext; ResolveContext is exposed to Token implementors and resolution hooks, whereas this struct is just to bundle a number of things that would otherwise be arguments to resolve() in a readable way. Experimental.

type Resource

type Resource interface {
	constructs.Construct
	IResource
	// The tree node.
	// Deprecated: - Please use Construct from the constructs package instead.
	Node() constructs.Node
	// The stack in which this resource is defined.
	// Deprecated: - Please use Construct from the constructs package instead.
	Stack() TerraformStack
	// Returns a string representation of this construct.
	// Deprecated: - Please use Construct from the constructs package instead.
	ToString() *string
}

A construct which represents a resource. Deprecated: - Please use Construct from the constructs package instead.

type ResourceTerraformIterator added in v0.20.0

type ResourceTerraformIterator interface {
	TerraformIterator
	// Returns the current entry in the list or set that is being iterated over.
	//
	// For lists this is the same as `iterator.value`. If you need the index,
	// use count via `TerraformCount`:
	// https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-count
	// Experimental.
	Key() interface{}
	// Returns the value of the current item iterated over.
	// Experimental.
	Value() interface{}
	// Creates a dynamic expression that can be used to loop over this iterator in a dynamic block.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// See https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-iterators-for-list-attributes
	// Experimental.
	Dynamic(attributes *map[string]interface{}) IResolvable
	// Creates a for expression that results in a list.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraform's for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty() instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromList(myIteratorSourceVar).forExpressionForList("val.foo if val.bar == true")`
	// will result in `[ for key, val in var.myIteratorSource: val.foo if val.bar == true ]`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForList(expression interface{}) IResolvable
	// Creates a for expression that results in a map.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraforms for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromMap(myIteratorSourceVar).forExpressionForMap("key", "val.foo if val.bar == true")`
	// will result in `{ for key, val in var.myIteratorSource: key => val.foo if val.bar == true }`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForMap(keyExpression interface{}, valueExpression interface{}) IResolvable
	// Returns: the given attribute of the current item iterated over as any.
	// Experimental.
	GetAny(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of any.
	// Experimental.
	GetAnyMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a boolean.
	// Experimental.
	GetBoolean(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of booleans.
	// Experimental.
	GetBooleanMap(attribute *string) *map[string]*bool
	// Returns: the given attribute of the current item iterated over as a (string) list.
	// Experimental.
	GetList(attribute *string) *[]*string
	// Returns: the given attribute of the current item iterated over as a map.
	// Experimental.
	GetMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a number.
	// Experimental.
	GetNumber(attribute *string) *float64
	// Returns: the given attribute of the current item iterated over as a number list.
	// Experimental.
	GetNumberList(attribute *string) *[]*float64
	// Returns: the given attribute of the current item iterated over as a map of numbers.
	// Experimental.
	GetNumberMap(attribute *string) *map[string]*float64
	// Returns: the given attribute of the current item iterated over as a string.
	// Experimental.
	GetString(attribute *string) *string
	// Returns: the given attribute of the current item iterated over as a map of strings.
	// Experimental.
	GetStringMap(attribute *string) *map[string]*string
	// Creates a for expression that maps the iterators to its keys.
	//
	// For lists these would be the indices, for maps the keys.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Keys() IResolvable
	// Creates a for expression that accesses the key on each element of the iterator.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	PluckProperty(property *string) IResolvable
	// Creates a for expression that maps the iterators to its value in case it is a map.
	//
	// For lists these would stay the same.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Values() IResolvable
}

Experimental.

func DynamicListTerraformIterator_FromDataSources added in v0.20.0

func DynamicListTerraformIterator_FromDataSources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a data source that has been created with the `for_each` argument. Experimental.

func DynamicListTerraformIterator_FromResources added in v0.20.0

func DynamicListTerraformIterator_FromResources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a resource that has been created with the `for_each` argument. Experimental.

func ListTerraformIterator_FromDataSources added in v0.20.0

func ListTerraformIterator_FromDataSources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a data source that has been created with the `for_each` argument. Experimental.

func ListTerraformIterator_FromResources added in v0.20.0

func ListTerraformIterator_FromResources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a resource that has been created with the `for_each` argument. Experimental.

func MapTerraformIterator_FromDataSources added in v0.20.0

func MapTerraformIterator_FromDataSources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a data source that has been created with the `for_each` argument. Experimental.

func MapTerraformIterator_FromResources added in v0.20.0

func MapTerraformIterator_FromResources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a resource that has been created with the `for_each` argument. Experimental.

func NewResourceTerraformIterator added in v0.20.0

func NewResourceTerraformIterator(element ITerraformResource) ResourceTerraformIterator

Experimental.

func ResourceTerraformIterator_FromDataSources added in v0.20.0

func ResourceTerraformIterator_FromDataSources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a data source that has been created with the `for_each` argument. Experimental.

func ResourceTerraformIterator_FromResources added in v0.20.0

func ResourceTerraformIterator_FromResources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a resource that has been created with the `for_each` argument. Experimental.

func TerraformIterator_FromDataSources added in v0.20.0

func TerraformIterator_FromDataSources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a data source that has been created with the `for_each` argument. Experimental.

func TerraformIterator_FromResources added in v0.20.0

func TerraformIterator_FromResources(resource ITerraformResource) ResourceTerraformIterator

Creates a new iterator from a resource that has been created with the `for_each` argument. Experimental.

type S3Backend

type S3Backend interface {
	TerraformBackend
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewS3Backend

func NewS3Backend(scope constructs.Construct, props *S3BackendConfig) S3Backend

Experimental.

type S3BackendAssumeRoleConfig added in v0.20.0

type S3BackendAssumeRoleConfig struct {
	// (Required) Amazon Resource Name (ARN) of the IAM Role to assume.
	// Experimental.
	RoleArn *string `field:"required" json:"roleArn" yaml:"roleArn"`
	// (Optional) The duration individual credentials will be valid.
	//
	// Credentials are automatically renewed up to the maximum defined by the AWS account.
	// Specified using the format <hours>h<minutes>m<seconds>s with any unit being optional.
	// For example, an hour and a half can be specified as 1h30m or 90m.
	// Must be between 15 minutes (15m) and 12 hours (12h).
	// Experimental.
	Duration *string `field:"optional" json:"duration" yaml:"duration"`
	// (Optional) External identifier to use when assuming the role.
	// Experimental.
	ExternalId *string `field:"optional" json:"externalId" yaml:"externalId"`
	// (Optional) IAM Policy JSON describing further restricting permissions for the IAM Role being assumed.
	// Experimental.
	Policy *string `field:"optional" json:"policy" yaml:"policy"`
	// (Optional) Set of Amazon Resource Names (ARNs) of IAM Policies describing further restricting permissions for the IAM Role being assumed.
	// Experimental.
	PolicyArns *[]*string `field:"optional" json:"policyArns" yaml:"policyArns"`
	// (Optional) Session name to use when assuming the role.
	// Experimental.
	SessionName *string `field:"optional" json:"sessionName" yaml:"sessionName"`
	// (Optional) Source identity specified by the principal assuming the.
	// Experimental.
	SourceIdentity *string `field:"optional" json:"sourceIdentity" yaml:"sourceIdentity"`
	// (Optional) Map of assume role session tags.
	// Experimental.
	Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"`
	// (Optional) Set of assume role session tag keys to pass to any subsequent sessions.
	// Experimental.
	TransitiveTagKeys *[]*string `field:"optional" json:"transitiveTagKeys" yaml:"transitiveTagKeys"`
}

Experimental.

type S3BackendAssumeRoleWithWebIdentityConfig added in v0.20.0

type S3BackendAssumeRoleWithWebIdentityConfig struct {
	// (Optional) The duration individual credentials will be valid.
	//
	// Credentials are automatically renewed up to the maximum defined by the AWS account.
	// Specified using the format <hours>h<minutes>m<seconds>s with any unit being optional.
	// For example, an hour and a half can be specified as 1h30m or 90m.
	// Must be between 15 minutes (15m) and 12 hours (12h).
	// Experimental.
	Duration *string `field:"optional" json:"duration" yaml:"duration"`
	// (Optional) IAM Policy JSON describing further restricting permissions for the IAM Role being assumed.
	// Experimental.
	Policy *string `field:"optional" json:"policy" yaml:"policy"`
	// (Optional) Set of Amazon Resource Names (ARNs) of IAM Policies describing further restricting permissions for the IAM Role being assumed.
	// Experimental.
	PolicyArns *[]*string `field:"optional" json:"policyArns" yaml:"policyArns"`
	// (Required) Amazon Resource Name (ARN) of the IAM Role to assume.
	//
	// Can also be set with the AWS_ROLE_ARN environment variable.
	// Experimental.
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
	// (Optional) Session name to use when assuming the role.
	//
	// Can also be set with the AWS_ROLE_SESSION_NAME environment variable.
	// Experimental.
	SessionName *string `field:"optional" json:"sessionName" yaml:"sessionName"`
	// (Optional) The value of a web identity token from an OpenID Connect (OIDC) or OAuth provider.
	//
	// One of web_identity_token or web_identity_token_file is required.
	// Experimental.
	WebIdentityToken *string `field:"optional" json:"webIdentityToken" yaml:"webIdentityToken"`
	// (Optional) File containing a web identity token from an OpenID Connect (OIDC) or OAuth provider.
	//
	// One of web_identity_token_file or web_identity_token is required.
	// Can also be set with the AWS_WEB_IDENTITY_TOKEN_FILE environment variable.
	// Experimental.
	WebIdentityTokenFile *string `field:"optional" json:"webIdentityTokenFile" yaml:"webIdentityTokenFile"`
}

Experimental.

type S3BackendConfig added in v0.15.0

type S3BackendConfig struct {
	// Name of the S3 Bucket.
	// Experimental.
	Bucket *string `field:"required" json:"bucket" yaml:"bucket"`
	// Path to the state file inside the S3 Bucket.
	//
	// When using a non-default workspace, the state path will be /workspace_key_prefix/workspace_name/key.
	// Experimental.
	Key *string `field:"required" json:"key" yaml:"key"`
	// (Optional) AWS access key.
	//
	// If configured, must also configure secret_key.
	// This can also be sourced from
	// the AWS_ACCESS_KEY_ID environment variable,
	// AWS shared credentials file (e.g. ~/.aws/credentials),
	// or AWS shared configuration file (e.g. ~/.aws/config).
	// Experimental.
	AccessKey *string `field:"optional" json:"accessKey" yaml:"accessKey"`
	// (Optional) Canned ACL to be applied to the state file.
	// Experimental.
	Acl *string `field:"optional" json:"acl" yaml:"acl"`
	// (Optional) List of allowed AWS account IDs to prevent potential destruction of a live environment.
	//
	// Conflicts with forbidden_account_ids.
	// Experimental.
	AllowedAccountIds *string `field:"optional" json:"allowedAccountIds" yaml:"allowedAccountIds"`
	// Assuming an IAM Role can be configured in two ways.
	//
	// The preferred way is to use the argument assume_role, the other, which is deprecated, is with arguments at the top level.
	// Experimental.
	AssumeRole *S3BackendAssumeRoleConfig `field:"optional" json:"assumeRole" yaml:"assumeRole"`
	// (Optional) IAM Policy JSON describing further restricting permissions for the IAM Role being assumed.
	// Deprecated: Use assumeRole.policy instead.
	AssumeRolePolicy *string `field:"optional" json:"assumeRolePolicy" yaml:"assumeRolePolicy"`
	// (Optional) Set of Amazon Resource Names (ARNs) of IAM Policies describing further restricting permissions for the IAM Role being assumed.
	// Deprecated: Use assumeRole.policyArns instead.
	AssumeRolePolicyArns *[]*string `field:"optional" json:"assumeRolePolicyArns" yaml:"assumeRolePolicyArns"`
	// (Optional) Map of assume role session tags.
	// Deprecated: Use assumeRole.tags instead.
	AssumeRoleTags *map[string]*string `field:"optional" json:"assumeRoleTags" yaml:"assumeRoleTags"`
	// (Optional) Set of assume role session tag keys to pass to any subsequent sessions.
	// Deprecated: Use assumeRole.transitiveTagKeys instead.
	AssumeRoleTransitiveTagKeys *[]*string `field:"optional" json:"assumeRoleTransitiveTagKeys" yaml:"assumeRoleTransitiveTagKeys"`
	// Assume Role With Web Identity Configuration.
	// Experimental.
	AssumeRoleWithWebIdentity *S3BackendAssumeRoleWithWebIdentityConfig `field:"optional" json:"assumeRoleWithWebIdentity" yaml:"assumeRoleWithWebIdentity"`
	// (Optional) File containing custom root and intermediate certificates.
	//
	// Can also be set using the AWS_CA_BUNDLE environment variable.
	// Setting ca_bundle in the shared config file is not supported.
	// Experimental.
	CustomCaBundle *string `field:"optional" json:"customCaBundle" yaml:"customCaBundle"`
	// (Optional) Custom endpoint for the AWS DynamoDB API.
	//
	// This can also be sourced from the AWS_DYNAMODB_ENDPOINT environment variable.
	// Deprecated: Use endpoints.dynamodb instead
	DynamodbEndpoint *string `field:"optional" json:"dynamodbEndpoint" yaml:"dynamodbEndpoint"`
	// (Optional) Name of DynamoDB Table to use for state locking and consistency.
	//
	// The table must have a partition key named LockID with type of String.
	// If not configured, state locking will be disabled.
	// Experimental.
	DynamodbTable *string `field:"optional" json:"dynamodbTable" yaml:"dynamodbTable"`
	// Optional) Custom endpoint URL for the EC2 Instance Metadata Service (IMDS) API.
	//
	// Can also be set with the AWS_EC2_METADATA_SERVICE_ENDPOINT environment variable.
	// Experimental.
	Ec2MetadataServiceEndpoint *string `field:"optional" json:"ec2MetadataServiceEndpoint" yaml:"ec2MetadataServiceEndpoint"`
	// (Optional) Mode to use in communicating with the metadata service.
	//
	// Valid values are IPv4 and IPv6.
	// Can also be set with the AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE environment variable.
	// Experimental.
	Ec2MetadataServiceEndpointMode *string `field:"optional" json:"ec2MetadataServiceEndpointMode" yaml:"ec2MetadataServiceEndpointMode"`
	// (Optional) Enable server side encryption of the state file.
	// Experimental.
	Encrypt *bool `field:"optional" json:"encrypt" yaml:"encrypt"`
	// (Optional) Custom endpoint for the AWS S3 API.
	//
	// This can also be sourced from the AWS_S3_ENDPOINT environment variable.
	// Deprecated: Use endpoints.s3 instead
	Endpoint *string `field:"optional" json:"endpoint" yaml:"endpoint"`
	// (Optional) The endpoint configuration block.
	// Experimental.
	Endpoints *S3BackendEndpointConfig `field:"optional" json:"endpoints" yaml:"endpoints"`
	// (Optional) External identifier to use when assuming the role.
	// Deprecated: Use assume_role.external_id instead.
	ExternalId *string `field:"optional" json:"externalId" yaml:"externalId"`
	// (Optional) List of forbidden AWS account IDs to prevent potential destruction of a live environment.
	//
	// Conflicts with allowed_account_ids.
	// Experimental.
	ForbiddenAccountIds *string `field:"optional" json:"forbiddenAccountIds" yaml:"forbiddenAccountIds"`
	// (Optional) Enable path-style S3 URLs (https://<HOST>/<BUCKET> instead of https://<BUCKET>.<HOST>).
	// Deprecated: Use usePathStyle instead.
	ForcePathStyle *bool `field:"optional" json:"forcePathStyle" yaml:"forcePathStyle"`
	// (Optional) URL of a proxy to use for HTTP requests when accessing the AWS API.
	//
	// Can also be set using the HTTP_PROXY or http_proxy environment variables.
	// Experimental.
	HttpProxy *string `field:"optional" json:"httpProxy" yaml:"httpProxy"`
	// (Optional) URL of a proxy to use for HTTPS requests when accessing the AWS API.
	//
	// Can also be set using the HTTPS_PROXY or https_proxy environment variables.
	// Experimental.
	HttpsProxy *string `field:"optional" json:"httpsProxy" yaml:"httpsProxy"`
	// (Optional) Custom endpoint for the AWS Identity and Access Management (IAM) API.
	//
	// This can also be sourced from the AWS_IAM_ENDPOINT environment variable.
	// Deprecated: Use endpoints.iam instead
	IamEndpoint *string `field:"optional" json:"iamEndpoint" yaml:"iamEndpoint"`
	// Optional) Whether to explicitly allow the backend to perform "insecure" SSL requests.
	//
	// If omitted, the default value is false.
	// Experimental.
	Insecure *bool `field:"optional" json:"insecure" yaml:"insecure"`
	// (Optional) Amazon Resource Name (ARN) of a Key Management Service (KMS) Key to use for encrypting the state.
	//
	// Note that if this value is specified,
	// Terraform will need kms:Encrypt, kms:Decrypt and kms:GenerateDataKey permissions on this KMS key.
	// Experimental.
	KmsKeyId *string `field:"optional" json:"kmsKeyId" yaml:"kmsKeyId"`
	// (Optional) The maximum number of times an AWS API request is retried on retryable failure.
	//
	// Defaults to 5.
	// Experimental.
	MaxRetries *float64 `field:"optional" json:"maxRetries" yaml:"maxRetries"`
	// (Optional) Comma-separated list of hosts that should not use HTTP or HTTPS proxies.
	//
	// Each value can be one of:
	// - A domain name
	// - An IP address
	// - A CIDR address
	// - An asterisk (*), to indicate that no proxying should be performed Domain name and IP address values can also include a port number.
	// Can also be set using the NO_PROXY or no_proxy environment variables.
	// Experimental.
	NoProxy *string `field:"optional" json:"noProxy" yaml:"noProxy"`
	// (Optional) Name of AWS profile in AWS shared credentials file (e.g. ~/.aws/credentials) or AWS shared configuration file (e.g. ~/.aws/config) to use for credentials and/or configuration. This can also be sourced from the AWS_PROFILE environment variable.
	// Experimental.
	Profile *string `field:"optional" json:"profile" yaml:"profile"`
	// AWS Region of the S3 Bucket and DynamoDB Table (if used).
	//
	// This can also
	// be sourced from the AWS_DEFAULT_REGION and AWS_REGION environment
	// variables.
	// Experimental.
	Region *string `field:"optional" json:"region" yaml:"region"`
	// (Optional) Specifies how retries are attempted.
	//
	// Valid values are standard and adaptive.
	// Can also be configured using the AWS_RETRY_MODE environment variable or the shared config file parameter retry_mode.
	// Experimental.
	RetryMode *string `field:"optional" json:"retryMode" yaml:"retryMode"`
	// (Optional) Amazon Resource Name (ARN) of the IAM Role to assume.
	// Deprecated: Use assumeRole.roleArn instead.
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
	// (Optional) AWS secret access key.
	//
	// If configured, must also configure access_key.
	// This can also be sourced from
	// the AWS_SECRET_ACCESS_KEY environment variable,
	// AWS shared credentials file (e.g. ~/.aws/credentials),
	// or AWS shared configuration file (e.g. ~/.aws/config)
	// Experimental.
	SecretKey *string `field:"optional" json:"secretKey" yaml:"secretKey"`
	// (Optional) Session name to use when assuming the role.
	// Deprecated: Use assumeRole.sessionName instead.
	SessionName *string `field:"optional" json:"sessionName" yaml:"sessionName"`
	// (Optional) List of paths to AWS shared configuration files.
	//
	// Defaults to ~/.aws/config.
	// Experimental.
	SharedConfigFiles *[]*string `field:"optional" json:"sharedConfigFiles" yaml:"sharedConfigFiles"`
	// (Optional) Path to the AWS shared credentials file.
	//
	// Defaults to ~/.aws/credentials.
	// Experimental.
	SharedCredentialsFile *string `field:"optional" json:"sharedCredentialsFile" yaml:"sharedCredentialsFile"`
	// (Optional) List of paths to AWS shared credentials files.
	//
	// Defaults to ~/.aws/credentials.
	// Experimental.
	SharedCredentialsFiles *[]*string `field:"optional" json:"sharedCredentialsFiles" yaml:"sharedCredentialsFiles"`
	// (Optional) Skip credentials validation via the STS API.
	// Experimental.
	SkipCredentialsValidation *bool `field:"optional" json:"skipCredentialsValidation" yaml:"skipCredentialsValidation"`
	// (Optional) Skip usage of EC2 Metadata API.
	// Experimental.
	SkipMetadataApiCheck *bool `field:"optional" json:"skipMetadataApiCheck" yaml:"skipMetadataApiCheck"`
	// (Optional) Skip validation of provided region name.
	// Experimental.
	SkipRegionValidation *bool `field:"optional" json:"skipRegionValidation" yaml:"skipRegionValidation"`
	// (Optional) Whether to skip requesting the account ID.
	//
	// Useful for AWS API implementations that do not have the IAM, STS API, or metadata API.
	// Experimental.
	SkipRequestingAccountId *bool `field:"optional" json:"skipRequestingAccountId" yaml:"skipRequestingAccountId"`
	// (Optional) Do not include checksum when uploading S3 Objects.
	//
	// Useful for some S3-Compatible APIs.
	// Experimental.
	SkipS3Checksum *bool `field:"optional" json:"skipS3Checksum" yaml:"skipS3Checksum"`
	// (Optional) The key to use for encrypting state with Server-Side Encryption with Customer-Provided Keys (SSE-C).
	//
	// This is the base64-encoded value of the key, which must decode to 256 bits.
	// This can also be sourced from the AWS_SSE_CUSTOMER_KEY environment variable,
	// which is recommended due to the sensitivity of the value.
	// Setting it inside a terraform file will cause it to be persisted to disk in terraform.tfstate.
	// Experimental.
	SseCustomerKey *string `field:"optional" json:"sseCustomerKey" yaml:"sseCustomerKey"`
	// (Optional) Custom endpoint for the AWS Security Token Service (STS) API.
	//
	// This can also be sourced from the AWS_STS_ENDPOINT environment variable.
	// Deprecated: Use endpoints.sts instead
	StsEndpoint *string `field:"optional" json:"stsEndpoint" yaml:"stsEndpoint"`
	// (Optional) AWS region for STS.
	//
	// If unset, AWS will use the same region for STS as other non-STS operations.
	// Experimental.
	StsRegion *string `field:"optional" json:"stsRegion" yaml:"stsRegion"`
	// (Optional) Multi-Factor Authentication (MFA) token.
	//
	// This can also be sourced from the AWS_SESSION_TOKEN environment variable.
	// Experimental.
	Token *string `field:"optional" json:"token" yaml:"token"`
	// (Optional) Use the legacy authentication workflow, preferring environment variables over backend configuration.
	//
	// Defaults to true.
	// This behavior does not align with the authentication flow of the AWS CLI or SDK's, and will be removed in the future.
	// Experimental.
	UseLegacyWorkflow *bool `field:"optional" json:"useLegacyWorkflow" yaml:"useLegacyWorkflow"`
	// (Optional) Enable path-style S3 URLs (https://<HOST>/<BUCKET> instead of https://<BUCKET>.<HOST>).
	// Experimental.
	UsePathStyle *bool `field:"optional" json:"usePathStyle" yaml:"usePathStyle"`
	// (Optional) Prefix applied to the state path inside the bucket.
	//
	// This is only relevant when using a non-default workspace. Defaults to env:
	// Experimental.
	WorkspaceKeyPrefix *string `field:"optional" json:"workspaceKeyPrefix" yaml:"workspaceKeyPrefix"`
}

Stores the state as a given key in a given bucket on Amazon S3.

This backend also supports state locking and consistency checking via Dynamo DB, which can be enabled by setting the dynamodb_table field to an existing DynamoDB table name. A single DynamoDB table can be used to lock multiple remote state files. Terraform generates key names that include the values of the bucket and key variables.

Warning! It is highly recommended that you enable Bucket Versioning on the S3 bucket to allow for state recovery in the case of accidental deletions and human error.

Read more about this backend in the Terraform docs: https://developer.hashicorp.com/terraform/language/settings/backends/s3 Experimental.

type S3BackendEndpointConfig added in v0.20.0

type S3BackendEndpointConfig struct {
	// (Optional) Custom endpoint URL for the AWS DynamoDB API.
	//
	// This can also be sourced from the environment variable AWS_ENDPOINT_URL_DYNAMODB or the deprecated environment variable AWS_DYNAMODB_ENDPOINT.
	// Experimental.
	Dynamodb *string `field:"optional" json:"dynamodb" yaml:"dynamodb"`
	// (Optional) Custom endpoint URL for the AWS IAM API.
	//
	// This can also be sourced from the environment variable AWS_ENDPOINT_URL_IAM or the deprecated environment variable AWS_IAM_ENDPOINT.
	// Experimental.
	Iam *string `field:"optional" json:"iam" yaml:"iam"`
	// (Optional) Custom endpoint URL for the AWS S3 API.
	//
	// This can also be sourced from the environment variable AWS_ENDPOINT_URL_S3 or the deprecated environment variable AWS_S3_ENDPOINT.
	// Experimental.
	S3 *string `field:"optional" json:"s3" yaml:"s3"`
	// (Optional) Custom endpoint URL for the AWS IAM Identity Center (formerly known as AWS SSO) API.
	//
	// This can also be sourced from the environment variable AWS_ENDPOINT_URL_SSO.
	// Experimental.
	Sso *string `field:"optional" json:"sso" yaml:"sso"`
	// (Optional) Custom endpoint URL for the AWS STS API.
	//
	// This can also be sourced from the environment variable AWS_ENDPOINT_URL_STS or the deprecated environment variable AWS_STS_ENDPOINT.
	// Experimental.
	Sts *string `field:"optional" json:"sts" yaml:"sts"`
}

Experimental.

type SSHProvisionerConnection added in v0.12.2

type SSHProvisionerConnection struct {
	// The address of the resource to connect to.
	// Experimental.
	Host *string `field:"required" json:"host" yaml:"host"`
	// The connection type.
	//
	// Valid values are "ssh" and "winrm".
	// Provisioners typically assume that the remote system runs Microsoft Windows when using WinRM.
	// Behaviors based on the SSH target_platform will force Windows-specific behavior for WinRM, unless otherwise specified.
	// Experimental.
	Type *string `field:"required" json:"type" yaml:"type"`
	// Set to false to disable using ssh-agent to authenticate.
	//
	// On Windows the only supported SSH authentication agent is Pageant.
	// Experimental.
	Agent *string `field:"optional" json:"agent" yaml:"agent"`
	// The preferred identity from the ssh agent for authentication.
	// Experimental.
	AgentIdentity *string `field:"optional" json:"agentIdentity" yaml:"agentIdentity"`
	// The contents of a signed CA Certificate.
	//
	// The certificate argument must be used in conjunction with a bastion_private_key.
	// These can be loaded from a file on disk using the the file function.
	// Experimental.
	BastionCertificate *string `field:"optional" json:"bastionCertificate" yaml:"bastionCertificate"`
	// Setting this enables the bastion Host connection.
	//
	// The provisioner will connect to bastion_host first, and then connect from there to host.
	// Experimental.
	BastionHost *string `field:"optional" json:"bastionHost" yaml:"bastionHost"`
	// The public key from the remote host or the signing CA, used to verify the host connection.
	// Experimental.
	BastionHostKey *string `field:"optional" json:"bastionHostKey" yaml:"bastionHostKey"`
	// The password to use for the bastion host.
	// Experimental.
	BastionPassword *string `field:"optional" json:"bastionPassword" yaml:"bastionPassword"`
	// The port to use connect to the bastion host.
	// Experimental.
	BastionPort *float64 `field:"optional" json:"bastionPort" yaml:"bastionPort"`
	// The contents of an SSH key file to use for the bastion host.
	//
	// These can be loaded from a file on disk using the file function.
	// Experimental.
	BastionPrivateKey *string `field:"optional" json:"bastionPrivateKey" yaml:"bastionPrivateKey"`
	// The user for the connection to the bastion host.
	// Experimental.
	BastionUser *string `field:"optional" json:"bastionUser" yaml:"bastionUser"`
	// The contents of a signed CA Certificate.
	//
	// The certificate argument must be used in conjunction with a private_key.
	// These can be loaded from a file on disk using the the file function.
	// Experimental.
	Certificate *string `field:"optional" json:"certificate" yaml:"certificate"`
	// The public key from the remote host or the signing CA, used to verify the connection.
	// Experimental.
	HostKey *string `field:"optional" json:"hostKey" yaml:"hostKey"`
	// The password to use for the connection.
	// Experimental.
	Password *string `field:"optional" json:"password" yaml:"password"`
	// The port to connect to.
	// Default: 22.
	//
	// Experimental.
	Port *float64 `field:"optional" json:"port" yaml:"port"`
	// The contents of an SSH key to use for the connection.
	//
	// These can be loaded from a file on disk using the file function.
	// This takes preference over password if provided.
	// Experimental.
	PrivateKey *string `field:"optional" json:"privateKey" yaml:"privateKey"`
	// Setting this enables the SSH over HTTP connection.
	//
	// This host will be connected to first, and then the host or bastion_host connection will be made from there.
	// Experimental.
	ProxyHost *string `field:"optional" json:"proxyHost" yaml:"proxyHost"`
	// The port to use connect to the proxy host.
	// Experimental.
	ProxyPort *float64 `field:"optional" json:"proxyPort" yaml:"proxyPort"`
	// The ssh connection also supports the following fields to facilitate connections by SSH over HTTP proxy.
	// Experimental.
	ProxyScheme *string `field:"optional" json:"proxyScheme" yaml:"proxyScheme"`
	// The username to use connect to the private proxy host.
	//
	// This argument should be specified only if authentication is required for the HTTP Proxy server.
	// Experimental.
	ProxyUserName *string `field:"optional" json:"proxyUserName" yaml:"proxyUserName"`
	// The password to use connect to the private proxy host.
	//
	// This argument should be specified only if authentication is required for the HTTP Proxy server.
	// Experimental.
	ProxyUserPassword *string `field:"optional" json:"proxyUserPassword" yaml:"proxyUserPassword"`
	// The path used to copy scripts meant for remote execution.
	//
	// Refer to {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/connection#how-provisioners-execute-remote-scripts How Provisioners Execute Remote Scripts below for more details}
	// Experimental.
	ScriptPath *string `field:"optional" json:"scriptPath" yaml:"scriptPath"`
	// The target platform to connect to.
	//
	// Valid values are "windows" and "unix".
	// If the platform is set to windows, the default script_path is c:\windows\temp\terraform_%RAND%.cmd, assuming the SSH default shell is cmd.exe.
	// If the SSH default shell is PowerShell, set script_path to "c:/windows/temp/terraform_%RAND%.ps1"
	// Default: unix.
	//
	// Experimental.
	TargetPlatform *string `field:"optional" json:"targetPlatform" yaml:"targetPlatform"`
	// The timeout to wait for the connection to become available.
	//
	// Should be provided as a string (e.g., "30s" or "5m".)
	// Default: 5m.
	//
	// Experimental.
	Timeout *string `field:"optional" json:"timeout" yaml:"timeout"`
	// The user to use for the connection.
	// Default: root.
	//
	// Experimental.
	User *string `field:"optional" json:"user" yaml:"user"`
}

Most provisioners require access to the remote resource via SSH or WinRM and expect a nested connection block with details about how to connect.

Refer to {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/connection connection} Experimental.

type StackAnnotation added in v0.6.0

type StackAnnotation struct {
	// Experimental.
	ConstructPath *string `field:"required" json:"constructPath" yaml:"constructPath"`
	// Experimental.
	Level AnnotationMetadataEntryType `field:"required" json:"level" yaml:"level"`
	// Experimental.
	Message *string `field:"required" json:"message" yaml:"message"`
	// Experimental.
	Stacktrace *[]*string `field:"optional" json:"stacktrace" yaml:"stacktrace"`
}

Experimental.

type StackManifest

type StackManifest struct {
	// Experimental.
	Annotations *[]*StackAnnotation `field:"required" json:"annotations" yaml:"annotations"`
	// Experimental.
	ConstructPath *string `field:"required" json:"constructPath" yaml:"constructPath"`
	// Experimental.
	Dependencies *[]*string `field:"required" json:"dependencies" yaml:"dependencies"`
	// Experimental.
	Name *string `field:"required" json:"name" yaml:"name"`
	// Experimental.
	StackMetadataPath *string `field:"required" json:"stackMetadataPath" yaml:"stackMetadataPath"`
	// Experimental.
	SynthesizedStackPath *string `field:"required" json:"synthesizedStackPath" yaml:"synthesizedStackPath"`
	// Experimental.
	WorkingDirectory *string `field:"required" json:"workingDirectory" yaml:"workingDirectory"`
}

Experimental.

type StringConcat

type StringConcat interface {
	IFragmentConcatenator
	// Concatenates string fragments.
	// Experimental.
	Join(left interface{}, right interface{}) interface{}
}

Converts all fragments to strings and concats those.

Drops 'undefined's. Experimental.

func NewStringConcat

func NewStringConcat() StringConcat

Experimental.

type StringListList added in v0.17.0

type StringListList interface {
	ComplexList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Creating an iterator for this complex list.
	//
	// The list will be converted into a map with the mapKeyAttributeName as the key.
	// Experimental.
	AllWithMapKey(mapKeyAttributeName *string) DynamicListTerraformIterator
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) *[]*string
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewStringListList added in v0.17.0

func NewStringListList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) StringListList

Experimental.

type StringListMap added in v0.16.0

type StringListMap interface {
	ComplexMap
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(key *string) *[]*string
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewStringListMap added in v0.16.0

func NewStringListMap(terraformResource IInterpolatingParent, terraformAttribute *string) StringListMap

Experimental.

type StringMap

type StringMap interface {
	IResolvable
	ITerraformAddressable
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Lookup(key *string) *string
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewStringMap

func NewStringMap(terraformResource IInterpolatingParent, terraformAttribute *string) StringMap

Experimental.

type StringMapList added in v0.11.0

type StringMapList interface {
	MapList
	// The creation stack of this resolvable which will be appended to errors thrown during resolution.
	//
	// If this returns an empty array the stack will not be attached.
	// Experimental.
	CreationStack() *[]*string
	// Experimental.
	Fqn() *string
	// Experimental.
	TerraformAttribute() *string
	// Experimental.
	SetTerraformAttribute(val *string)
	// Experimental.
	TerraformResource() IInterpolatingParent
	// Experimental.
	SetTerraformResource(val IInterpolatingParent)
	// Experimental.
	WrapsSet() *bool
	// Experimental.
	SetWrapsSet(val *bool)
	// Experimental.
	ComputeFqn() *string
	// Experimental.
	Get(index *float64) StringMap
	// Experimental.
	InterpolationForAttribute(property *string) IResolvable
	// Produce the Token's value at resolution time.
	// Experimental.
	Resolve(_context IResolveContext) interface{}
	// Return a string representation of this resolvable object.
	//
	// Returns a reversible string representation.
	// Experimental.
	ToString() *string
}

Experimental.

func NewStringMapList added in v0.11.0

func NewStringMapList(terraformResource IInterpolatingParent, terraformAttribute *string, wrapsSet *bool) StringMapList

Experimental.

type SwiftBackend deprecated

type SwiftBackend interface {
	TerraformBackend
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	CdktfStack() TerraformStack
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ConstructNodeMetadata() *map[string]interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Fqn() *string
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	FriendlyUniqueId() *string
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Name() *string
	// The tree node.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Node() constructs.Node
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	RawOverrides() interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, _fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ResetOverrideLogicalId()
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	SynthesizeAttributes() *map[string]interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	SynthesizeHclAttributes() *map[string]interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToHclTerraform() interface{}
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ToTerraform() interface{}
}

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

func NewSwiftBackend deprecated

func NewSwiftBackend(scope constructs.Construct, props *SwiftBackendConfig) SwiftBackend

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

type SwiftBackendConfig deprecated added in v0.15.0

type SwiftBackendConfig struct {
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Container *string `field:"required" json:"container" yaml:"container"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ApplicationCredentialId *string `field:"optional" json:"applicationCredentialId" yaml:"applicationCredentialId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ApplicationCredentialName *string `field:"optional" json:"applicationCredentialName" yaml:"applicationCredentialName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ApplicationCredentialSecret *string `field:"optional" json:"applicationCredentialSecret" yaml:"applicationCredentialSecret"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ArchiveContainer *string `field:"optional" json:"archiveContainer" yaml:"archiveContainer"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	AuthUrl *string `field:"optional" json:"authUrl" yaml:"authUrl"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	CacertFile *string `field:"optional" json:"cacertFile" yaml:"cacertFile"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Cert *string `field:"optional" json:"cert" yaml:"cert"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Cloud *string `field:"optional" json:"cloud" yaml:"cloud"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	DefaultDomain *string `field:"optional" json:"defaultDomain" yaml:"defaultDomain"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	DomainId *string `field:"optional" json:"domainId" yaml:"domainId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	DomainName *string `field:"optional" json:"domainName" yaml:"domainName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ExpireAfter *string `field:"optional" json:"expireAfter" yaml:"expireAfter"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Insecure *bool `field:"optional" json:"insecure" yaml:"insecure"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Key *string `field:"optional" json:"key" yaml:"key"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Password *string `field:"optional" json:"password" yaml:"password"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ProjectDomainId *string `field:"optional" json:"projectDomainId" yaml:"projectDomainId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	ProjectDomainName *string `field:"optional" json:"projectDomainName" yaml:"projectDomainName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	RegionName *string `field:"optional" json:"regionName" yaml:"regionName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	StateName *string `field:"optional" json:"stateName" yaml:"stateName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	TenantId *string `field:"optional" json:"tenantId" yaml:"tenantId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	TenantName *string `field:"optional" json:"tenantName" yaml:"tenantName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	Token *string `field:"optional" json:"token" yaml:"token"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserDomainId *string `field:"optional" json:"userDomainId" yaml:"userDomainId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserDomainName *string `field:"optional" json:"userDomainName" yaml:"userDomainName"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserId *string `field:"optional" json:"userId" yaml:"userId"`
	// Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
	UserName *string `field:"optional" json:"userName" yaml:"userName"`
}

Deprecated: CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.

type TaggedCloudWorkspaces added in v0.12.2

type TaggedCloudWorkspaces interface {
	CloudWorkspace
	// Experimental.
	Project() *string
	// Experimental.
	SetProject(val *string)
	// Experimental.
	Tags() *[]*string
	// Experimental.
	SetTags(val *[]*string)
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToTerraform() interface{}
}

A set of Terraform Cloud workspace tags.

You will be able to use this working directory with any workspaces that have all of the specified tags, and can use the terraform workspace commands to switch between them or create new workspaces. New workspaces will automatically have the specified tags. This option conflicts with name. Experimental.

func NewTaggedCloudWorkspaces added in v0.12.2

func NewTaggedCloudWorkspaces(tags *[]*string, project *string) TaggedCloudWorkspaces

Experimental.

type TerraformAsset added in v0.4.0

type TerraformAsset interface {
	constructs.Construct
	// Experimental.
	AssetHash() *string
	// Experimental.
	SetAssetHash(val *string)
	// Name of the asset.
	// Experimental.
	FileName() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// The path relative to the root of the terraform directory in posix format Use this property to reference the asset.
	// Experimental.
	Path() *string
	// Experimental.
	Type() AssetType
	// Experimental.
	SetType(val AssetType)
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
}

Experimental.

func NewTerraformAsset added in v0.4.0

func NewTerraformAsset(scope constructs.Construct, id *string, config *TerraformAssetConfig) TerraformAsset

A Terraform Asset takes a file or directory outside of the CDK for Terraform context and moves it into it.

Assets copy referenced files into the stacks context for further usage in other resources. Experimental.

type TerraformAssetConfig added in v0.4.0

type TerraformAssetConfig struct {
	// Experimental.
	Path *string `field:"required" json:"path" yaml:"path"`
	// Experimental.
	AssetHash *string `field:"optional" json:"assetHash" yaml:"assetHash"`
	// Experimental.
	Type AssetType `field:"optional" json:"type" yaml:"type"`
}

Experimental.

type TerraformBackend

type TerraformBackend interface {
	TerraformElement
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Name() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Creates a TerraformRemoteState resource that accesses this backend.
	// Experimental.
	GetRemoteStateDataSource(scope constructs.Construct, name *string, fromStack *string) TerraformRemoteState
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

type TerraformCondition added in v0.16.0

type TerraformCondition struct {
	// This is a boolean expression that should return true if the intended assumption or guarantee is fulfilled or false if it does not.
	// Experimental.
	Condition interface{} `field:"required" json:"condition" yaml:"condition"`
	// This contains the text that Terraform will include as part of error messages when it detects an unmet condition.
	// Experimental.
	ErrorMessage *string `field:"required" json:"errorMessage" yaml:"errorMessage"`
}

Experimental.

type TerraformCount added in v0.16.0

type TerraformCount interface {
	// Experimental.
	Index() *float64
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() *float64
}

Iterator for the Terraform count property. Experimental.

func TerraformCount_Of added in v0.16.0

func TerraformCount_Of(count *float64) TerraformCount

Experimental.

type TerraformDataSource

type TerraformDataSource interface {
	TerraformElement
	IInterpolatingParent
	ITerraformDependable
	ITerraformResource
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Count() interface{}
	// Experimental.
	SetCount(val interface{})
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(val *[]*string)
	// Experimental.
	ForEach() ITerraformIterator
	// Experimental.
	SetForEach(val ITerraformIterator)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Lifecycle() *TerraformResourceLifecycle
	// Experimental.
	SetLifecycle(val *TerraformResourceLifecycle)
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Provider() TerraformProvider
	// Experimental.
	SetProvider(val TerraformProvider)
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	TerraformGeneratorMetadata() *TerraformProviderGeneratorMetadata
	// Experimental.
	TerraformMetaArguments() *map[string]interface{}
	// Experimental.
	TerraformResourceType() *string
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	InterpolationForAttribute(terraformAttribute *string) IResolvable
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformDataSource

func NewTerraformDataSource(scope constructs.Construct, id *string, config *TerraformResourceConfig) TerraformDataSource

Experimental.

type TerraformElement

type TerraformElement interface {
	constructs.Construct
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformElement

func NewTerraformElement(scope constructs.Construct, id *string, elementType *string) TerraformElement

Experimental.

type TerraformElementMetadata

type TerraformElementMetadata struct {
	// Experimental.
	Path *string `field:"required" json:"path" yaml:"path"`
	// Experimental.
	StackTrace *[]*string `field:"required" json:"stackTrace" yaml:"stackTrace"`
	// Experimental.
	UniqueId *string `field:"required" json:"uniqueId" yaml:"uniqueId"`
}

Experimental.

type TerraformHclModule

type TerraformHclModule interface {
	TerraformModule
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(val *[]*string)
	// Experimental.
	ForEach() ITerraformIterator
	// Experimental.
	SetForEach(val ITerraformIterator)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Providers() *[]interface{}
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	SkipAssetCreationFromLocalModules() *bool
	// Experimental.
	Source() *string
	// Experimental.
	Variables() *map[string]interface{}
	// Experimental.
	Version() *string
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	AddProvider(provider interface{})
	// Experimental.
	Get(output *string) interface{}
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Experimental.
	InterpolationForOutput(moduleOutput *string) IResolvable
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	Set(variable *string, value interface{})
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformHclModule

func NewTerraformHclModule(scope constructs.Construct, id *string, options *TerraformHclModuleConfig) TerraformHclModule

Experimental.

type TerraformHclModuleConfig added in v0.15.0

type TerraformHclModuleConfig struct {
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Providers *[]interface{} `field:"optional" json:"providers" yaml:"providers"`
	// Experimental.
	SkipAssetCreationFromLocalModules *bool `field:"optional" json:"skipAssetCreationFromLocalModules" yaml:"skipAssetCreationFromLocalModules"`
	// Experimental.
	Source *string `field:"required" json:"source" yaml:"source"`
	// Experimental.
	Version *string `field:"optional" json:"version" yaml:"version"`
	// Experimental.
	Variables *map[string]interface{} `field:"optional" json:"variables" yaml:"variables"`
}

Experimental.

type TerraformIterator added in v0.12.0

type TerraformIterator interface {
	ITerraformIterator
	// Creates a dynamic expression that can be used to loop over this iterator in a dynamic block.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// See https://developer.hashicorp.com/terraform/cdktf/concepts/iterators#using-iterators-for-list-attributes
	// Experimental.
	Dynamic(attributes *map[string]interface{}) IResolvable
	// Creates a for expression that results in a list.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraform's for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty() instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromList(myIteratorSourceVar).forExpressionForList("val.foo if val.bar == true")`
	// will result in `[ for key, val in var.myIteratorSource: val.foo if val.bar == true ]`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForList(expression interface{}) IResolvable
	// Creates a for expression that results in a map.
	//
	// This method allows you to create every possible for expression, but requires more knowledge about
	// Terraforms for expression syntax.
	// For the most common use cases you can use keys(), values(), and pluckProperty instead.
	//
	// You may write any valid Terraform for each expression, e.g.
	// `TerraformIterator.fromMap(myIteratorSourceVar).forExpressionForMap("key", "val.foo if val.bar == true")`
	// will result in `{ for key, val in var.myIteratorSource: key => val.foo if val.bar == true }`.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	ForExpressionForMap(keyExpression interface{}, valueExpression interface{}) IResolvable
	// Returns: the given attribute of the current item iterated over as any.
	// Experimental.
	GetAny(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of any.
	// Experimental.
	GetAnyMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a boolean.
	// Experimental.
	GetBoolean(attribute *string) IResolvable
	// Returns: the given attribute of the current item iterated over as a map of booleans.
	// Experimental.
	GetBooleanMap(attribute *string) *map[string]*bool
	// Returns: the given attribute of the current item iterated over as a (string) list.
	// Experimental.
	GetList(attribute *string) *[]*string
	// Returns: the given attribute of the current item iterated over as a map.
	// Experimental.
	GetMap(attribute *string) *map[string]interface{}
	// Returns: the given attribute of the current item iterated over as a number.
	// Experimental.
	GetNumber(attribute *string) *float64
	// Returns: the given attribute of the current item iterated over as a number list.
	// Experimental.
	GetNumberList(attribute *string) *[]*float64
	// Returns: the given attribute of the current item iterated over as a map of numbers.
	// Experimental.
	GetNumberMap(attribute *string) *map[string]*float64
	// Returns: the given attribute of the current item iterated over as a string.
	// Experimental.
	GetString(attribute *string) *string
	// Returns: the given attribute of the current item iterated over as a map of strings.
	// Experimental.
	GetStringMap(attribute *string) *map[string]*string
	// Creates a for expression that maps the iterators to its keys.
	//
	// For lists these would be the indices, for maps the keys.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Keys() IResolvable
	// Creates a for expression that accesses the key on each element of the iterator.
	//
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	PluckProperty(property *string) IResolvable
	// Creates a for expression that maps the iterators to its value in case it is a map.
	//
	// For lists these would stay the same.
	// As this returns an IResolvable you might need to wrap the output in
	// a Token, e.g. `Token.asString`.
	// Experimental.
	Values() IResolvable
}

Experimental.

type TerraformLocal

type TerraformLocal interface {
	TerraformElement
	ITerraformAddressable
	// Experimental.
	AsAnyMap() *map[string]interface{}
	// Experimental.
	AsBoolean() IResolvable
	// Experimental.
	AsBooleanMap() *map[string]*bool
	// Experimental.
	AsList() *[]*string
	// Experimental.
	AsNumber() *float64
	// Experimental.
	AsNumberMap() *map[string]*float64
	// Experimental.
	AsString() *string
	// Experimental.
	AsStringMap() *map[string]*string
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Expression() interface{}
	// Experimental.
	SetExpression(val interface{})
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	//
	// Returns: a string token referencing the value of this local.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformLocal

func NewTerraformLocal(scope constructs.Construct, id *string, expression interface{}) TerraformLocal

Experimental.

type TerraformMetaArguments

type TerraformMetaArguments struct {
	// Experimental.
	Connection interface{} `field:"optional" json:"connection" yaml:"connection"`
	// Experimental.
	Count interface{} `field:"optional" json:"count" yaml:"count"`
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Lifecycle *TerraformResourceLifecycle `field:"optional" json:"lifecycle" yaml:"lifecycle"`
	// Experimental.
	Provider TerraformProvider `field:"optional" json:"provider" yaml:"provider"`
	// Experimental.
	Provisioners *[]interface{} `field:"optional" json:"provisioners" yaml:"provisioners"`
}

Experimental.

type TerraformModule

type TerraformModule interface {
	TerraformElement
	ITerraformDependable
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(val *[]*string)
	// Experimental.
	ForEach() ITerraformIterator
	// Experimental.
	SetForEach(val ITerraformIterator)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Providers() *[]interface{}
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	SkipAssetCreationFromLocalModules() *bool
	// Experimental.
	Source() *string
	// Experimental.
	Version() *string
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	AddProvider(provider interface{})
	// Experimental.
	GetString(output *string) *string
	// Experimental.
	InterpolationForOutput(moduleOutput *string) IResolvable
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

type TerraformModuleConfig added in v0.15.0

type TerraformModuleConfig struct {
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Providers *[]interface{} `field:"optional" json:"providers" yaml:"providers"`
	// Experimental.
	SkipAssetCreationFromLocalModules *bool `field:"optional" json:"skipAssetCreationFromLocalModules" yaml:"skipAssetCreationFromLocalModules"`
	// Experimental.
	Source *string `field:"required" json:"source" yaml:"source"`
	// Experimental.
	Version *string `field:"optional" json:"version" yaml:"version"`
}

Experimental.

type TerraformModuleProvider

type TerraformModuleProvider struct {
	// Experimental.
	ModuleAlias *string `field:"required" json:"moduleAlias" yaml:"moduleAlias"`
	// Experimental.
	Provider TerraformProvider `field:"required" json:"provider" yaml:"provider"`
}

Experimental.

type TerraformModuleUserConfig added in v0.15.0

type TerraformModuleUserConfig struct {
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Providers *[]interface{} `field:"optional" json:"providers" yaml:"providers"`
	// Experimental.
	SkipAssetCreationFromLocalModules *bool `field:"optional" json:"skipAssetCreationFromLocalModules" yaml:"skipAssetCreationFromLocalModules"`
}

Experimental.

type TerraformOutput

type TerraformOutput interface {
	TerraformElement
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	DependsOn() *[]ITerraformDependable
	// Experimental.
	SetDependsOn(val *[]ITerraformDependable)
	// Experimental.
	Description() *string
	// Experimental.
	SetDescription(val *string)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Precondition() *Precondition
	// Experimental.
	SetPrecondition(val *Precondition)
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	Sensitive() *bool
	// Experimental.
	SetSensitive(val *bool)
	// Experimental.
	StaticId() *bool
	// Experimental.
	SetStaticId(val *bool)
	// Experimental.
	Value() interface{}
	// Experimental.
	SetValue(val interface{})
	// Experimental.
	AddOverride(path *string, value interface{})
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformOutput

func NewTerraformOutput(scope constructs.Construct, id *string, config *TerraformOutputConfig) TerraformOutput

Experimental.

type TerraformOutputConfig

type TerraformOutputConfig struct {
	// Experimental.
	Value interface{} `field:"required" json:"value" yaml:"value"`
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Experimental.
	Precondition *Precondition `field:"optional" json:"precondition" yaml:"precondition"`
	// Experimental.
	Sensitive *bool `field:"optional" json:"sensitive" yaml:"sensitive"`
	// If set to true the synthesized Terraform Output will be named after the `id` passed to the constructor instead of the default (TerraformOutput.friendlyUniqueId).
	// Default: false.
	//
	// Experimental.
	StaticId *bool `field:"optional" json:"staticId" yaml:"staticId"`
}

Experimental.

type TerraformProvider

type TerraformProvider interface {
	TerraformElement
	// Experimental.
	Alias() *string
	// Experimental.
	SetAlias(val *string)
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	MetaAttributes() *map[string]interface{}
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	TerraformGeneratorMetadata() *TerraformProviderGeneratorMetadata
	// Experimental.
	TerraformProviderSource() *string
	// Experimental.
	TerraformResourceType() *string
	// Experimental.
	AddOverride(path *string, value interface{})
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

type TerraformProviderConfig

type TerraformProviderConfig struct {
	// Experimental.
	TerraformResourceType *string `field:"required" json:"terraformResourceType" yaml:"terraformResourceType"`
	// Experimental.
	TerraformGeneratorMetadata *TerraformProviderGeneratorMetadata `field:"optional" json:"terraformGeneratorMetadata" yaml:"terraformGeneratorMetadata"`
	// Experimental.
	TerraformProviderSource *string `field:"optional" json:"terraformProviderSource" yaml:"terraformProviderSource"`
}

Experimental.

type TerraformProviderGeneratorMetadata

type TerraformProviderGeneratorMetadata struct {
	// Experimental.
	ProviderName *string `field:"required" json:"providerName" yaml:"providerName"`
	// Experimental.
	ProviderVersion *string `field:"optional" json:"providerVersion" yaml:"providerVersion"`
	// Experimental.
	ProviderVersionConstraint *string `field:"optional" json:"providerVersionConstraint" yaml:"providerVersionConstraint"`
}

Experimental.

type TerraformRemoteState

type TerraformRemoteState interface {
	TerraformElement
	ITerraformAddressable
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	Get(output *string) IResolvable
	// Experimental.
	GetBoolean(output *string) IResolvable
	// Experimental.
	GetList(output *string) *[]*string
	// Experimental.
	GetNumber(output *string) *float64
	// Experimental.
	GetString(output *string) *string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

type TerraformResource

type TerraformResource interface {
	TerraformElement
	IInterpolatingParent
	ITerraformDependable
	ITerraformResource
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	Connection() interface{}
	// Experimental.
	SetConnection(val interface{})
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Count() interface{}
	// Experimental.
	SetCount(val interface{})
	// Experimental.
	DependsOn() *[]*string
	// Experimental.
	SetDependsOn(val *[]*string)
	// Experimental.
	ForEach() ITerraformIterator
	// Experimental.
	SetForEach(val ITerraformIterator)
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	Lifecycle() *TerraformResourceLifecycle
	// Experimental.
	SetLifecycle(val *TerraformResourceLifecycle)
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Provider() TerraformProvider
	// Experimental.
	SetProvider(val TerraformProvider)
	// Experimental.
	Provisioners() *[]interface{}
	// Experimental.
	SetProvisioners(val *[]interface{})
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	TerraformGeneratorMetadata() *TerraformProviderGeneratorMetadata
	// Experimental.
	TerraformMetaArguments() *map[string]interface{}
	// Experimental.
	TerraformResourceType() *string
	// Adds a user defined moveTarget string to this resource to be later used in .moveTo(moveTarget) to resolve the location of the move.
	// Experimental.
	AddMoveTarget(moveTarget *string)
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	GetAnyMapAttribute(terraformAttribute *string) *map[string]interface{}
	// Experimental.
	GetBooleanAttribute(terraformAttribute *string) IResolvable
	// Experimental.
	GetBooleanMapAttribute(terraformAttribute *string) *map[string]*bool
	// Experimental.
	GetListAttribute(terraformAttribute *string) *[]*string
	// Experimental.
	GetNumberAttribute(terraformAttribute *string) *float64
	// Experimental.
	GetNumberListAttribute(terraformAttribute *string) *[]*float64
	// Experimental.
	GetNumberMapAttribute(terraformAttribute *string) *map[string]*float64
	// Experimental.
	GetStringAttribute(terraformAttribute *string) *string
	// Experimental.
	GetStringMapAttribute(terraformAttribute *string) *map[string]*string
	// Experimental.
	HasResourceMove() interface{}
	// Experimental.
	ImportFrom(id *string, provider TerraformProvider)
	// Experimental.
	InterpolationForAttribute(terraformAttribute *string) IResolvable
	// Move the resource corresponding to "id" to this resource.
	//
	// Note that the resource being moved from must be marked as moved using it's instance function.
	// Experimental.
	MoveFromId(id *string)
	// Moves this resource to the target resource given by moveTarget.
	// Experimental.
	MoveTo(moveTarget *string, index interface{})
	// Moves this resource to the resource corresponding to "id".
	// Experimental.
	MoveToId(id *string)
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Adds this resource to the terraform JSON output.
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformResource

func NewTerraformResource(scope constructs.Construct, id *string, config *TerraformResourceConfig) TerraformResource

Experimental.

type TerraformResourceConfig

type TerraformResourceConfig struct {
	// Experimental.
	Connection interface{} `field:"optional" json:"connection" yaml:"connection"`
	// Experimental.
	Count interface{} `field:"optional" json:"count" yaml:"count"`
	// Experimental.
	DependsOn *[]ITerraformDependable `field:"optional" json:"dependsOn" yaml:"dependsOn"`
	// Experimental.
	ForEach ITerraformIterator `field:"optional" json:"forEach" yaml:"forEach"`
	// Experimental.
	Lifecycle *TerraformResourceLifecycle `field:"optional" json:"lifecycle" yaml:"lifecycle"`
	// Experimental.
	Provider TerraformProvider `field:"optional" json:"provider" yaml:"provider"`
	// Experimental.
	Provisioners *[]interface{} `field:"optional" json:"provisioners" yaml:"provisioners"`
	// Experimental.
	TerraformResourceType *string `field:"required" json:"terraformResourceType" yaml:"terraformResourceType"`
	// Experimental.
	TerraformGeneratorMetadata *TerraformProviderGeneratorMetadata `field:"optional" json:"terraformGeneratorMetadata" yaml:"terraformGeneratorMetadata"`
}

Experimental.

type TerraformResourceImport added in v0.19.0

type TerraformResourceImport struct {
	// Experimental.
	Id *string `field:"required" json:"id" yaml:"id"`
	// Experimental.
	Provider TerraformProvider `field:"optional" json:"provider" yaml:"provider"`
}

Experimental.

type TerraformResourceLifecycle

type TerraformResourceLifecycle struct {
	// Experimental.
	CreateBeforeDestroy *bool `field:"optional" json:"createBeforeDestroy" yaml:"createBeforeDestroy"`
	// Experimental.
	IgnoreChanges interface{} `field:"optional" json:"ignoreChanges" yaml:"ignoreChanges"`
	// Experimental.
	Postcondition *[]*Postcondition `field:"optional" json:"postcondition" yaml:"postcondition"`
	// Experimental.
	Precondition *[]*Precondition `field:"optional" json:"precondition" yaml:"precondition"`
	// Experimental.
	PreventDestroy *bool `field:"optional" json:"preventDestroy" yaml:"preventDestroy"`
	// Experimental.
	ReplaceTriggeredBy *[]interface{} `field:"optional" json:"replaceTriggeredBy" yaml:"replaceTriggeredBy"`
}

Experimental.

type TerraformResourceMoveById added in v0.19.2

type TerraformResourceMoveById struct {
	// Experimental.
	From *string `field:"required" json:"from" yaml:"from"`
	// Experimental.
	To *string `field:"required" json:"to" yaml:"to"`
}

Experimental.

type TerraformResourceMoveByTarget added in v0.19.2

type TerraformResourceMoveByTarget struct {
	// Experimental.
	MoveTarget *string `field:"required" json:"moveTarget" yaml:"moveTarget"`
	// Experimental.
	Index interface{} `field:"optional" json:"index" yaml:"index"`
}

Experimental.

type TerraformResourceTargets added in v0.19.0

type TerraformResourceTargets interface {
	// Experimental.
	AddResourceTarget(resource TerraformResource, target *string)
	// Experimental.
	GetResourceByTarget(target *string) TerraformResource
}

Experimental.

func NewTerraformResourceTargets added in v0.19.0

func NewTerraformResourceTargets() TerraformResourceTargets

Experimental.

type TerraformSelf added in v0.12.0

type TerraformSelf interface {
}

Expressions in connection blocks cannot refer to their parent resource by name.

References create dependencies, and referring to a resource by name within its own block would create a dependency cycle. Instead, expressions can use the self object, which represents the connection's parent resource and has all of that resource's attributes. For example, use self.public_ip to reference an aws_instance's public_ip attribute. Experimental.

func NewTerraformSelf added in v0.12.0

func NewTerraformSelf() TerraformSelf

Experimental.

type TerraformStack

type TerraformStack interface {
	constructs.Construct
	// Experimental.
	Dependencies() *[]TerraformStack
	// Experimental.
	SetDependencies(val *[]TerraformStack)
	// Experimental.
	MoveTargets() TerraformResourceTargets
	// Experimental.
	SetMoveTargets(val TerraformResourceTargets)
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Synthesizer() IStackSynthesizer
	// Experimental.
	SetSynthesizer(val IStackSynthesizer)
	// Experimental.
	AddDependency(dependency TerraformStack)
	// Experimental.
	AddOverride(path *string, value interface{})
	// Returns the naming scheme used to allocate logical IDs.
	//
	// By default, uses
	// the `HashedAddressingScheme` but this method can be overridden to customize
	// this behavior.
	// Experimental.
	AllocateLogicalId(tfElement interface{}) *string
	// Experimental.
	AllProviders() *[]TerraformProvider
	// Experimental.
	DependsOn(stack TerraformStack) *bool
	// Experimental.
	EnsureBackendExists() TerraformBackend
	// Experimental.
	GetLogicalId(tfElement interface{}) *string
	// Experimental.
	HasResourceMove() *bool
	// Experimental.
	PrepareStack()
	// Experimental.
	RegisterIncomingCrossStackReference(fromStack TerraformStack) TerraformRemoteState
	// Experimental.
	RegisterOutgoingCrossStackReference(identifier *string) TerraformOutput
	// Run all validations on the stack.
	// Experimental.
	RunAllValidations()
	// Experimental.
	ToHclTerraform() *map[string]interface{}
	// Returns a string representation of this construct.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformStack

func NewTerraformStack(scope constructs.Construct, id *string) TerraformStack

Experimental.

func TerraformStack_Of

func TerraformStack_Of(construct constructs.IConstruct) TerraformStack

Experimental.

type TerraformStackMetadata

type TerraformStackMetadata struct {
	// Experimental.
	Backend *string `field:"required" json:"backend" yaml:"backend"`
	// Experimental.
	StackName *string `field:"required" json:"stackName" yaml:"stackName"`
	// Experimental.
	Version *string `field:"required" json:"version" yaml:"version"`
	// Experimental.
	Cloud *string `field:"optional" json:"cloud" yaml:"cloud"`
}

Experimental.

type TerraformVariable

type TerraformVariable interface {
	TerraformElement
	ITerraformAddressable
	// Experimental.
	BooleanValue() IResolvable
	// Experimental.
	CdktfStack() TerraformStack
	// Experimental.
	ConstructNodeMetadata() *map[string]interface{}
	// Experimental.
	Default() interface{}
	// Experimental.
	Description() *string
	// Experimental.
	Fqn() *string
	// Experimental.
	FriendlyUniqueId() *string
	// Experimental.
	ListValue() *[]*string
	// The tree node.
	// Experimental.
	Node() constructs.Node
	// Experimental.
	Nullable() *bool
	// Experimental.
	NumberValue() *float64
	// Experimental.
	RawOverrides() interface{}
	// Experimental.
	Sensitive() *bool
	// Experimental.
	StringValue() *string
	// Experimental.
	Type() *string
	// Experimental.
	Validation() *[]*TerraformVariableValidationConfig
	// Experimental.
	Value() interface{}
	// Experimental.
	AddOverride(path *string, value interface{})
	// Experimental.
	AddValidation(validation *TerraformVariableValidationConfig)
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Resets a previously passed logical Id to use the auto-generated logical id again.
	// Experimental.
	ResetOverrideLogicalId()
	// Experimental.
	SynthesizeAttributes() *map[string]interface{}
	// Experimental.
	SynthesizeHclAttributes() *map[string]interface{}
	// Experimental.
	ToHclTerraform() interface{}
	// Experimental.
	ToMetadata() interface{}
	// Returns a string representation of this construct.
	//
	// Returns: a string token referencing the value of this variable.
	// Experimental.
	ToString() *string
	// Experimental.
	ToTerraform() interface{}
}

Experimental.

func NewTerraformVariable

func NewTerraformVariable(scope constructs.Construct, id *string, config *TerraformVariableConfig) TerraformVariable

Experimental.

type TerraformVariableConfig

type TerraformVariableConfig struct {
	// Experimental.
	Default interface{} `field:"optional" json:"default" yaml:"default"`
	// Experimental.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// Experimental.
	Nullable *bool `field:"optional" json:"nullable" yaml:"nullable"`
	// Experimental.
	Sensitive *bool `field:"optional" json:"sensitive" yaml:"sensitive"`
	// The type argument in a variable block allows you to restrict the type of value that will be accepted as the value for a variable.
	//
	// If no type constraint is set then a value of any type is accepted.
	//
	// While type constraints are optional, we recommend specifying them; they serve as easy reminders for users of the module, and allow Terraform to return a helpful error message if the wrong type is used.
	//
	// Type constraints are created from a mixture of type keywords and type constructors. The supported type keywords are:
	//
	// - string
	// - number
	// - bool
	//
	// The type constructors allow you to specify complex types such as collections:
	//
	// - list(\<TYPE\>)
	// - set(\<TYPE\>)
	// - map(\<TYPE\>)
	// - object({\<ATTR NAME\> = \<TYPE\>, ... })
	// - tuple([\<TYPE\>, ...])
	//
	// The keyword any may be used to indicate that any type is acceptable. For more information on the meaning and behavior of these different types, as well as detailed information about automatic conversion of complex types, refer to {@link https://developer.hashicorp.com/terraform/language/expressions/type-constraints Type Constraints}.
	//
	// If both the type and default arguments are specified, the given default value must be convertible to the specified type.
	// Experimental.
	Type *string `field:"optional" json:"type" yaml:"type"`
	// Specify arbitrary custom validation rules for a particular variable using a validation block nested within the corresponding variable block.
	// Experimental.
	Validation *[]*TerraformVariableValidationConfig `field:"optional" json:"validation" yaml:"validation"`
}

Experimental.

type TerraformVariableValidationConfig added in v0.12.0

type TerraformVariableValidationConfig struct {
	// This is a boolean expression that should return true if the intended assumption or guarantee is fulfilled or false if it does not.
	// Experimental.
	Condition interface{} `field:"required" json:"condition" yaml:"condition"`
	// This contains the text that Terraform will include as part of error messages when it detects an unmet condition.
	// Experimental.
	ErrorMessage *string `field:"required" json:"errorMessage" yaml:"errorMessage"`
}

Add one or more validation blocks within the variable block to specify custom conditions. Experimental.

type Testing

type Testing interface {
}

Testing utilities for cdktf applications. Experimental.

func NewTesting added in v0.12.0

func NewTesting() Testing

Experimental.

type TestingAppConfig added in v0.15.0

type TestingAppConfig struct {
	// Experimental.
	Context *map[string]interface{} `field:"optional" json:"context" yaml:"context"`
	// Experimental.
	EnableFutureFlags *bool `field:"optional" json:"enableFutureFlags" yaml:"enableFutureFlags"`
	// Experimental.
	FakeCdktfJsonPath *bool `field:"optional" json:"fakeCdktfJsonPath" yaml:"fakeCdktfJsonPath"`
	// Experimental.
	Outdir *string `field:"optional" json:"outdir" yaml:"outdir"`
	// Experimental.
	StackTraces *bool `field:"optional" json:"stackTraces" yaml:"stackTraces"`
	// Experimental.
	StubVersion *bool `field:"optional" json:"stubVersion" yaml:"stubVersion"`
}

Experimental.

type Token

type Token interface {
}

Represents a special or lazily-evaluated value.

Can be used to delay evaluation of a certain value in case, for example, that it requires some context or late-bound data. Can also be used to mark values that need special processing at document rendering time.

Tokens can be embedded into strings while retaining their original semantics. Experimental.

func NewToken

func NewToken() Token

Experimental.

type Tokenization

type Tokenization interface {
}

Less oft-needed functions to manipulate Tokens. Experimental.

func NewTokenization

func NewTokenization() Tokenization

Experimental.

type TokenizedStringFragments

type TokenizedStringFragments interface {
	// Return all escape fragments from this string.
	// Experimental.
	Escapes() *[]IResolvable
	// Returns the first token.
	// Experimental.
	FirstToken() IResolvable
	// Returns the first value.
	// Experimental.
	FirstValue() interface{}
	// Return all intrinsic fragments from this string.
	// Experimental.
	Intrinsic() *[]IResolvable
	// Returns the number of fragments.
	// Experimental.
	Length() *float64
	// Return all literals from this string.
	// Experimental.
	Literals() *[]IResolvable
	// Return all Tokens from this string.
	// Experimental.
	Tokens() *[]IResolvable
	// Experimental.
	AddEscape(kind *string)
	// Adds an intrinsic fragment.
	// Experimental.
	AddIntrinsic(value interface{})
	// Adds a literal fragment.
	// Experimental.
	AddLiteral(lit interface{})
	// Adds a token fragment.
	// Experimental.
	AddToken(token IResolvable)
	// Experimental.
	Concat(other TokenizedStringFragments)
	// Combine the string fragments using the given joiner.
	//
	// If there are any.
	// Experimental.
	Join(concat IFragmentConcatenator) interface{}
	// Apply a transformation function to all tokens in the string.
	// Experimental.
	MapTokens(context IResolveContext) TokenizedStringFragments
}

Fragments of a concatenated string containing stringified Tokens. Experimental.

func NewTokenizedStringFragments

func NewTokenizedStringFragments() TokenizedStringFragments

Experimental.

func Tokenization_ReverseString

func Tokenization_ReverseString(s *string) TokenizedStringFragments

Un-encode a string potentially containing encoded tokens. Experimental.

type VariableType

type VariableType interface {
}

Experimental.

type WinrmProvisionerConnection added in v0.12.2

type WinrmProvisionerConnection struct {
	// The address of the resource to connect to.
	// Experimental.
	Host *string `field:"required" json:"host" yaml:"host"`
	// The connection type.
	//
	// Valid values are "ssh" and "winrm".
	// Provisioners typically assume that the remote system runs Microsoft Windows when using WinRM.
	// Behaviors based on the SSH target_platform will force Windows-specific behavior for WinRM, unless otherwise specified.
	// Experimental.
	Type *string `field:"required" json:"type" yaml:"type"`
	// The CA certificate to validate against.
	// Experimental.
	Cacert *string `field:"optional" json:"cacert" yaml:"cacert"`
	// Set to true to connect using HTTPS instead of HTTP.
	// Experimental.
	Https *bool `field:"optional" json:"https" yaml:"https"`
	// Set to true to skip validating the HTTPS certificate chain.
	// Experimental.
	Insecure *bool `field:"optional" json:"insecure" yaml:"insecure"`
	// The password to use for the connection.
	// Experimental.
	Password *string `field:"optional" json:"password" yaml:"password"`
	// The port to connect to.
	// Default: 22.
	//
	// Experimental.
	Port *float64 `field:"optional" json:"port" yaml:"port"`
	// The path used to copy scripts meant for remote execution.
	//
	// Refer to {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/connection#how-provisioners-execute-remote-scripts How Provisioners Execute Remote Scripts below for more details}
	// Experimental.
	ScriptPath *string `field:"optional" json:"scriptPath" yaml:"scriptPath"`
	// The timeout to wait for the connection to become available.
	//
	// Should be provided as a string (e.g., "30s" or "5m".)
	// Default: 5m.
	//
	// Experimental.
	Timeout *string `field:"optional" json:"timeout" yaml:"timeout"`
	// Set to true to use NTLM authentication rather than default (basic authentication), removing the requirement for basic authentication to be enabled within the target guest.
	//
	// Refer to Authentication for Remote Connections in the Windows App Development documentation for more details.
	// Experimental.
	UseNtlm *bool `field:"optional" json:"useNtlm" yaml:"useNtlm"`
	// The user to use for the connection.
	// Default: root.
	//
	// Experimental.
	User *string `field:"optional" json:"user" yaml:"user"`
}

Most provisioners require access to the remote resource via SSH or WinRM and expect a nested connection block with details about how to connect.

See {@link https://developer.hashicorp.com/terraform/language/resources/provisioners/connection connection} Experimental.

Source Files

Directories

Path Synopsis
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL