UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

949 lines 136 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h; Object.defineProperty(exports, "__esModule", { value: true }); exports.EcsCluster = exports.EcsClusterSettingList = exports.EcsClusterSettingOutputReference = exports.ecsClusterSettingToHclTerraform = exports.ecsClusterSettingToTerraform = exports.EcsClusterServiceConnectDefaultsOutputReference = exports.ecsClusterServiceConnectDefaultsToHclTerraform = exports.ecsClusterServiceConnectDefaultsToTerraform = exports.EcsClusterConfigurationOutputReference = exports.ecsClusterConfigurationToHclTerraform = exports.ecsClusterConfigurationToTerraform = exports.EcsClusterConfigurationManagedStorageConfigurationOutputReference = exports.ecsClusterConfigurationManagedStorageConfigurationToHclTerraform = exports.ecsClusterConfigurationManagedStorageConfigurationToTerraform = exports.EcsClusterConfigurationExecuteCommandConfigurationOutputReference = exports.ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform = exports.ecsClusterConfigurationExecuteCommandConfigurationToTerraform = exports.EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference = exports.ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform = exports.ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { cloud_watch_encryption_enabled: cdktf.booleanToTerraform(struct.cloudWatchEncryptionEnabled), cloud_watch_log_group_name: cdktf.stringToTerraform(struct.cloudWatchLogGroupName), s3_bucket_encryption_enabled: cdktf.booleanToTerraform(struct.s3BucketEncryptionEnabled), s3_bucket_name: cdktf.stringToTerraform(struct.s3BucketName), s3_key_prefix: cdktf.stringToTerraform(struct.s3KeyPrefix), }; } exports.ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform = ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform; function ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { cloud_watch_encryption_enabled: { value: cdktf.booleanToHclTerraform(struct.cloudWatchEncryptionEnabled), isBlock: false, type: "simple", storageClassType: "boolean", }, cloud_watch_log_group_name: { value: cdktf.stringToHclTerraform(struct.cloudWatchLogGroupName), isBlock: false, type: "simple", storageClassType: "string", }, s3_bucket_encryption_enabled: { value: cdktf.booleanToHclTerraform(struct.s3BucketEncryptionEnabled), isBlock: false, type: "simple", storageClassType: "boolean", }, s3_bucket_name: { value: cdktf.stringToHclTerraform(struct.s3BucketName), isBlock: false, type: "simple", storageClassType: "string", }, s3_key_prefix: { value: cdktf.stringToHclTerraform(struct.s3KeyPrefix), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform = ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform; class EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._cloudWatchEncryptionEnabled !== undefined) { hasAnyValues = true; internalValueResult.cloudWatchEncryptionEnabled = this._cloudWatchEncryptionEnabled; } if (this._cloudWatchLogGroupName !== undefined) { hasAnyValues = true; internalValueResult.cloudWatchLogGroupName = this._cloudWatchLogGroupName; } if (this._s3BucketEncryptionEnabled !== undefined) { hasAnyValues = true; internalValueResult.s3BucketEncryptionEnabled = this._s3BucketEncryptionEnabled; } if (this._s3BucketName !== undefined) { hasAnyValues = true; internalValueResult.s3BucketName = this._s3BucketName; } if (this._s3KeyPrefix !== undefined) { hasAnyValues = true; internalValueResult.s3KeyPrefix = this._s3KeyPrefix; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._cloudWatchEncryptionEnabled = undefined; this._cloudWatchLogGroupName = undefined; this._s3BucketEncryptionEnabled = undefined; this._s3BucketName = undefined; this._s3KeyPrefix = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._cloudWatchEncryptionEnabled = value.cloudWatchEncryptionEnabled; this._cloudWatchLogGroupName = value.cloudWatchLogGroupName; this._s3BucketEncryptionEnabled = value.s3BucketEncryptionEnabled; this._s3BucketName = value.s3BucketName; this._s3KeyPrefix = value.s3KeyPrefix; } } get cloudWatchEncryptionEnabled() { return this.getBooleanAttribute('cloud_watch_encryption_enabled'); } set cloudWatchEncryptionEnabled(value) { this._cloudWatchEncryptionEnabled = value; } resetCloudWatchEncryptionEnabled() { this._cloudWatchEncryptionEnabled = undefined; } // Temporarily expose input value. Use with caution. get cloudWatchEncryptionEnabledInput() { return this._cloudWatchEncryptionEnabled; } get cloudWatchLogGroupName() { return this.getStringAttribute('cloud_watch_log_group_name'); } set cloudWatchLogGroupName(value) { this._cloudWatchLogGroupName = value; } resetCloudWatchLogGroupName() { this._cloudWatchLogGroupName = undefined; } // Temporarily expose input value. Use with caution. get cloudWatchLogGroupNameInput() { return this._cloudWatchLogGroupName; } get s3BucketEncryptionEnabled() { return this.getBooleanAttribute('s3_bucket_encryption_enabled'); } set s3BucketEncryptionEnabled(value) { this._s3BucketEncryptionEnabled = value; } resetS3BucketEncryptionEnabled() { this._s3BucketEncryptionEnabled = undefined; } // Temporarily expose input value. Use with caution. get s3BucketEncryptionEnabledInput() { return this._s3BucketEncryptionEnabled; } get s3BucketName() { return this.getStringAttribute('s3_bucket_name'); } set s3BucketName(value) { this._s3BucketName = value; } resetS3BucketName() { this._s3BucketName = undefined; } // Temporarily expose input value. Use with caution. get s3BucketNameInput() { return this._s3BucketName; } get s3KeyPrefix() { return this.getStringAttribute('s3_key_prefix'); } set s3KeyPrefix(value) { this._s3KeyPrefix = value; } resetS3KeyPrefix() { this._s3KeyPrefix = undefined; } // Temporarily expose input value. Use with caution. get s3KeyPrefixInput() { return this._s3KeyPrefix; } } exports.EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference = EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference; _a = JSII_RTTI_SYMBOL_1; EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference[_a] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference", version: "19.50.0" }; function ecsClusterConfigurationExecuteCommandConfigurationToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { kms_key_id: cdktf.stringToTerraform(struct.kmsKeyId), logging: cdktf.stringToTerraform(struct.logging), log_configuration: ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform(struct.logConfiguration), }; } exports.ecsClusterConfigurationExecuteCommandConfigurationToTerraform = ecsClusterConfigurationExecuteCommandConfigurationToTerraform; function ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { kms_key_id: { value: cdktf.stringToHclTerraform(struct.kmsKeyId), isBlock: false, type: "simple", storageClassType: "string", }, logging: { value: cdktf.stringToHclTerraform(struct.logging), isBlock: false, type: "simple", storageClassType: "string", }, log_configuration: { value: ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform(struct.logConfiguration), isBlock: true, type: "list", storageClassType: "EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform = ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform; class EcsClusterConfigurationExecuteCommandConfigurationOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; // log_configuration - computed: false, optional: true, required: false this._logConfiguration = new EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference(this, "log_configuration"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._kmsKeyId !== undefined) { hasAnyValues = true; internalValueResult.kmsKeyId = this._kmsKeyId; } if (this._logging !== undefined) { hasAnyValues = true; internalValueResult.logging = this._logging; } if (this._logConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.logConfiguration = this._logConfiguration?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._kmsKeyId = undefined; this._logging = undefined; this._logConfiguration.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._kmsKeyId = value.kmsKeyId; this._logging = value.logging; this._logConfiguration.internalValue = value.logConfiguration; } } get kmsKeyId() { return this.getStringAttribute('kms_key_id'); } set kmsKeyId(value) { this._kmsKeyId = value; } resetKmsKeyId() { this._kmsKeyId = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyIdInput() { return this._kmsKeyId; } get logging() { return this.getStringAttribute('logging'); } set logging(value) { this._logging = value; } resetLogging() { this._logging = undefined; } // Temporarily expose input value. Use with caution. get loggingInput() { return this._logging; } get logConfiguration() { return this._logConfiguration; } putLogConfiguration(value) { this._logConfiguration.internalValue = value; } resetLogConfiguration() { this._logConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get logConfigurationInput() { return this._logConfiguration.internalValue; } } exports.EcsClusterConfigurationExecuteCommandConfigurationOutputReference = EcsClusterConfigurationExecuteCommandConfigurationOutputReference; _b = JSII_RTTI_SYMBOL_1; EcsClusterConfigurationExecuteCommandConfigurationOutputReference[_b] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterConfigurationExecuteCommandConfigurationOutputReference", version: "19.50.0" }; function ecsClusterConfigurationManagedStorageConfigurationToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { fargate_ephemeral_storage_kms_key_id: cdktf.stringToTerraform(struct.fargateEphemeralStorageKmsKeyId), kms_key_id: cdktf.stringToTerraform(struct.kmsKeyId), }; } exports.ecsClusterConfigurationManagedStorageConfigurationToTerraform = ecsClusterConfigurationManagedStorageConfigurationToTerraform; function ecsClusterConfigurationManagedStorageConfigurationToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { fargate_ephemeral_storage_kms_key_id: { value: cdktf.stringToHclTerraform(struct.fargateEphemeralStorageKmsKeyId), isBlock: false, type: "simple", storageClassType: "string", }, kms_key_id: { value: cdktf.stringToHclTerraform(struct.kmsKeyId), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ecsClusterConfigurationManagedStorageConfigurationToHclTerraform = ecsClusterConfigurationManagedStorageConfigurationToHclTerraform; class EcsClusterConfigurationManagedStorageConfigurationOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._fargateEphemeralStorageKmsKeyId !== undefined) { hasAnyValues = true; internalValueResult.fargateEphemeralStorageKmsKeyId = this._fargateEphemeralStorageKmsKeyId; } if (this._kmsKeyId !== undefined) { hasAnyValues = true; internalValueResult.kmsKeyId = this._kmsKeyId; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._fargateEphemeralStorageKmsKeyId = undefined; this._kmsKeyId = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._fargateEphemeralStorageKmsKeyId = value.fargateEphemeralStorageKmsKeyId; this._kmsKeyId = value.kmsKeyId; } } get fargateEphemeralStorageKmsKeyId() { return this.getStringAttribute('fargate_ephemeral_storage_kms_key_id'); } set fargateEphemeralStorageKmsKeyId(value) { this._fargateEphemeralStorageKmsKeyId = value; } resetFargateEphemeralStorageKmsKeyId() { this._fargateEphemeralStorageKmsKeyId = undefined; } // Temporarily expose input value. Use with caution. get fargateEphemeralStorageKmsKeyIdInput() { return this._fargateEphemeralStorageKmsKeyId; } get kmsKeyId() { return this.getStringAttribute('kms_key_id'); } set kmsKeyId(value) { this._kmsKeyId = value; } resetKmsKeyId() { this._kmsKeyId = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyIdInput() { return this._kmsKeyId; } } exports.EcsClusterConfigurationManagedStorageConfigurationOutputReference = EcsClusterConfigurationManagedStorageConfigurationOutputReference; _c = JSII_RTTI_SYMBOL_1; EcsClusterConfigurationManagedStorageConfigurationOutputReference[_c] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterConfigurationManagedStorageConfigurationOutputReference", version: "19.50.0" }; function ecsClusterConfigurationToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { execute_command_configuration: ecsClusterConfigurationExecuteCommandConfigurationToTerraform(struct.executeCommandConfiguration), managed_storage_configuration: ecsClusterConfigurationManagedStorageConfigurationToTerraform(struct.managedStorageConfiguration), }; } exports.ecsClusterConfigurationToTerraform = ecsClusterConfigurationToTerraform; function ecsClusterConfigurationToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { execute_command_configuration: { value: ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform(struct.executeCommandConfiguration), isBlock: true, type: "list", storageClassType: "EcsClusterConfigurationExecuteCommandConfigurationList", }, managed_storage_configuration: { value: ecsClusterConfigurationManagedStorageConfigurationToHclTerraform(struct.managedStorageConfiguration), isBlock: true, type: "list", storageClassType: "EcsClusterConfigurationManagedStorageConfigurationList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ecsClusterConfigurationToHclTerraform = ecsClusterConfigurationToHclTerraform; class EcsClusterConfigurationOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; // execute_command_configuration - computed: false, optional: true, required: false this._executeCommandConfiguration = new EcsClusterConfigurationExecuteCommandConfigurationOutputReference(this, "execute_command_configuration"); // managed_storage_configuration - computed: false, optional: true, required: false this._managedStorageConfiguration = new EcsClusterConfigurationManagedStorageConfigurationOutputReference(this, "managed_storage_configuration"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._executeCommandConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.executeCommandConfiguration = this._executeCommandConfiguration?.internalValue; } if (this._managedStorageConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.managedStorageConfiguration = this._managedStorageConfiguration?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._executeCommandConfiguration.internalValue = undefined; this._managedStorageConfiguration.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._executeCommandConfiguration.internalValue = value.executeCommandConfiguration; this._managedStorageConfiguration.internalValue = value.managedStorageConfiguration; } } get executeCommandConfiguration() { return this._executeCommandConfiguration; } putExecuteCommandConfiguration(value) { this._executeCommandConfiguration.internalValue = value; } resetExecuteCommandConfiguration() { this._executeCommandConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get executeCommandConfigurationInput() { return this._executeCommandConfiguration.internalValue; } get managedStorageConfiguration() { return this._managedStorageConfiguration; } putManagedStorageConfiguration(value) { this._managedStorageConfiguration.internalValue = value; } resetManagedStorageConfiguration() { this._managedStorageConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get managedStorageConfigurationInput() { return this._managedStorageConfiguration.internalValue; } } exports.EcsClusterConfigurationOutputReference = EcsClusterConfigurationOutputReference; _d = JSII_RTTI_SYMBOL_1; EcsClusterConfigurationOutputReference[_d] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterConfigurationOutputReference", version: "19.50.0" }; function ecsClusterServiceConnectDefaultsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { namespace: cdktf.stringToTerraform(struct.namespace), }; } exports.ecsClusterServiceConnectDefaultsToTerraform = ecsClusterServiceConnectDefaultsToTerraform; function ecsClusterServiceConnectDefaultsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { namespace: { value: cdktf.stringToHclTerraform(struct.namespace), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ecsClusterServiceConnectDefaultsToHclTerraform = ecsClusterServiceConnectDefaultsToHclTerraform; class EcsClusterServiceConnectDefaultsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._namespace !== undefined) { hasAnyValues = true; internalValueResult.namespace = this._namespace; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._namespace = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._namespace = value.namespace; } } get namespace() { return this.getStringAttribute('namespace'); } set namespace(value) { this._namespace = value; } // Temporarily expose input value. Use with caution. get namespaceInput() { return this._namespace; } } exports.EcsClusterServiceConnectDefaultsOutputReference = EcsClusterServiceConnectDefaultsOutputReference; _e = JSII_RTTI_SYMBOL_1; EcsClusterServiceConnectDefaultsOutputReference[_e] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterServiceConnectDefaultsOutputReference", version: "19.50.0" }; function ecsClusterSettingToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { name: cdktf.stringToTerraform(struct.name), value: cdktf.stringToTerraform(struct.value), }; } exports.ecsClusterSettingToTerraform = ecsClusterSettingToTerraform; function ecsClusterSettingToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { name: { value: cdktf.stringToHclTerraform(struct.name), isBlock: false, type: "simple", storageClassType: "string", }, value: { value: cdktf.stringToHclTerraform(struct.value), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ecsClusterSettingToHclTerraform = ecsClusterSettingToHclTerraform; class EcsClusterSettingOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) { super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._name !== undefined) { hasAnyValues = true; internalValueResult.name = this._name; } if (this._value !== undefined) { hasAnyValues = true; internalValueResult.value = this._value; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._name = undefined; this._value = undefined; } else if (cdktf.Tokenization.isResolvable(value)) { this.isEmptyObject = false; this.resolvableValue = value; } else { this.isEmptyObject = Object.keys(value).length === 0; this.resolvableValue = undefined; this._name = value.name; this._value = value.value; } } get name() { return this.getStringAttribute('name'); } set name(value) { this._name = value; } // Temporarily expose input value. Use with caution. get nameInput() { return this._name; } get value() { return this.getStringAttribute('value'); } set value(value) { this._value = value; } // Temporarily expose input value. Use with caution. get valueInput() { return this._value; } } exports.EcsClusterSettingOutputReference = EcsClusterSettingOutputReference; _f = JSII_RTTI_SYMBOL_1; EcsClusterSettingOutputReference[_f] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterSettingOutputReference", version: "19.50.0" }; class EcsClusterSettingList extends cdktf.ComplexList { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, wrapsSet) { super(terraformResource, terraformAttribute, wrapsSet); this.terraformResource = terraformResource; this.terraformAttribute = terraformAttribute; this.wrapsSet = wrapsSet; } /** * @param index the index of the item to return */ get(index) { return new EcsClusterSettingOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.EcsClusterSettingList = EcsClusterSettingList; _g = JSII_RTTI_SYMBOL_1; EcsClusterSettingList[_g] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsClusterSettingList", version: "19.50.0" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/ecs_cluster aws_ecs_cluster} */ class EcsCluster extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a EcsCluster resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the EcsCluster to import * @param importFromId The id of the existing EcsCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/ecs_cluster#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the EcsCluster to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_ecs_cluster", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/ecs_cluster aws_ecs_cluster} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options EcsClusterConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_ecs_cluster', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '5.84.0', providerVersionConstraint: '~> 5.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // configuration - computed: false, optional: true, required: false this._configuration = new EcsClusterConfigurationOutputReference(this, "configuration"); // service_connect_defaults - computed: false, optional: true, required: false this._serviceConnectDefaults = new EcsClusterServiceConnectDefaultsOutputReference(this, "service_connect_defaults"); // setting - computed: false, optional: true, required: false this._setting = new EcsClusterSettingList(this, "setting", true); this._id = config.id; this._name = config.name; this._tags = config.tags; this._tagsAll = config.tagsAll; this._configuration.internalValue = config.configuration; this._serviceConnectDefaults.internalValue = config.serviceConnectDefaults; this._setting.internalValue = config.setting; } // ========== // ATTRIBUTES // ========== // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get id() { return this.getStringAttribute('id'); } set id(value) { this._id = value; } resetId() { this._id = undefined; } // Temporarily expose input value. Use with caution. get idInput() { return this._id; } get name() { return this.getStringAttribute('name'); } set name(value) { this._name = value; } // Temporarily expose input value. Use with caution. get nameInput() { return this._name; } get tags() { return this.getStringMapAttribute('tags'); } set tags(value) { this._tags = value; } resetTags() { this._tags = undefined; } // Temporarily expose input value. Use with caution. get tagsInput() { return this._tags; } get tagsAll() { return this.getStringMapAttribute('tags_all'); } set tagsAll(value) { this._tagsAll = value; } resetTagsAll() { this._tagsAll = undefined; } // Temporarily expose input value. Use with caution. get tagsAllInput() { return this._tagsAll; } get configuration() { return this._configuration; } putConfiguration(value) { this._configuration.internalValue = value; } resetConfiguration() { this._configuration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get configurationInput() { return this._configuration.internalValue; } get serviceConnectDefaults() { return this._serviceConnectDefaults; } putServiceConnectDefaults(value) { this._serviceConnectDefaults.internalValue = value; } resetServiceConnectDefaults() { this._serviceConnectDefaults.internalValue = undefined; } // Temporarily expose input value. Use with caution. get serviceConnectDefaultsInput() { return this._serviceConnectDefaults.internalValue; } get setting() { return this._setting; } putSetting(value) { this._setting.internalValue = value; } resetSetting() { this._setting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get settingInput() { return this._setting.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { id: cdktf.stringToTerraform(this._id), name: cdktf.stringToTerraform(this._name), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags), tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll), configuration: ecsClusterConfigurationToTerraform(this._configuration.internalValue), service_connect_defaults: ecsClusterServiceConnectDefaultsToTerraform(this._serviceConnectDefaults.internalValue), setting: cdktf.listMapper(ecsClusterSettingToTerraform, true)(this._setting.internalValue), }; } synthesizeHclAttributes() { const attrs = { id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, name: { value: cdktf.stringToHclTerraform(this._name), isBlock: false, type: "simple", storageClassType: "string", }, tags: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tags), isBlock: false, type: "map", storageClassType: "stringMap", }, tags_all: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tagsAll), isBlock: false, type: "map", storageClassType: "stringMap", }, configuration: { value: ecsClusterConfigurationToHclTerraform(this._configuration.internalValue), isBlock: true, type: "list", storageClassType: "EcsClusterConfigurationList", }, service_connect_defaults: { value: ecsClusterServiceConnectDefaultsToHclTerraform(this._serviceConnectDefaults.internalValue), isBlock: true, type: "list", storageClassType: "EcsClusterServiceConnectDefaultsList", }, setting: { value: cdktf.listMapperHcl(ecsClusterSettingToHclTerraform, true)(this._setting.internalValue), isBlock: true, type: "set", storageClassType: "EcsClusterSettingList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.EcsCluster = EcsCluster; _h = JSII_RTTI_SYMBOL_1; EcsCluster[_h] = { fqn: "@cdktf/provider-aws.ecsCluster.EcsCluster", version: "19.50.0" }; // ================= // STATIC PROPERTIES // ================= EcsCluster.tfResourceType = "aws_ecs_cluster"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWNsdXN0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUFrRS9CLFNBQWdCLDZFQUE2RSxDQUFDLE1BQStKO0lBQzNQLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCw4QkFBOEIsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTyxDQUFDLDJCQUEyQixDQUFDO1FBQzdGLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDbkYsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU8sQ0FBQyx5QkFBeUIsQ0FBQztRQUN6RixjQUFjLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxZQUFZLENBQUM7UUFDN0QsYUFBYSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDO0tBQzVELENBQUE7QUFDSCxDQUFDO0FBWkQsc0tBWUM7QUFHRCxTQUFnQixnRkFBZ0YsQ0FBQyxNQUErSjtJQUM5UCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxD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