@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
970 lines • 138 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EcsCluster = exports.EcsClusterSettingList = exports.EcsClusterSettingOutputReference = exports.EcsClusterServiceConnectDefaultsOutputReference = exports.EcsClusterConfigurationOutputReference = exports.EcsClusterConfigurationManagedStorageConfigurationOutputReference = exports.EcsClusterConfigurationExecuteCommandConfigurationOutputReference = exports.EcsClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputReference = void 0;
exports.ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform = ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToTerraform;
exports.ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform = ecsClusterConfigurationExecuteCommandConfigurationLogConfigurationToHclTerraform;
exports.ecsClusterConfigurationExecuteCommandConfigurationToTerraform = ecsClusterConfigurationExecuteCommandConfigurationToTerraform;
exports.ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform = ecsClusterConfigurationExecuteCommandConfigurationToHclTerraform;
exports.ecsClusterConfigurationManagedStorageConfigurationToTerraform = ecsClusterConfigurationManagedStorageConfigurationToTerraform;
exports.ecsClusterConfigurationManagedStorageConfigurationToHclTerraform = ecsClusterConfigurationManagedStorageConfigurationToHclTerraform;
exports.ecsClusterConfigurationToTerraform = ecsClusterConfigurationToTerraform;
exports.ecsClusterConfigurationToHclTerraform = ecsClusterConfigurationToHclTerraform;
exports.ecsClusterServiceConnectDefaultsToTerraform = ecsClusterServiceConnectDefaultsToTerraform;
exports.ecsClusterServiceConnectDefaultsToHclTerraform = ecsClusterServiceConnectDefaultsToHclTerraform;
exports.ecsClusterSettingToTerraform = ecsClusterSettingToTerraform;
exports.ecsClusterSettingToHclTerraform = ecsClusterSettingToHclTerraform;
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),
};
}
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));
}
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: "21.22.1" };
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),
};
}
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));
}
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: "21.22.1" };
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),
};
}
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));
}
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: "21.22.1" };
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),
};
}
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));
}
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: "21.22.1" };
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),
};
}
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));
}
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: "21.22.1" };
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),
};
}
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));
}
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: "21.22.1" };
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: "21.22.1" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.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/6.25.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/6.25.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: '6.25.0',
providerVersionConstraint: '~> 6.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._region = config.region;
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 region() {
return this.getStringAttribute('region');
}
set region(value) {
this._region = value;
}
resetRegion() {
this._region = undefined;
}
// Temporarily expose input value. Use with caution.
get regionInput() {
return this._region;
}
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),
region: cdktf.stringToTerraform(this._region),
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",
},
region: {
value: cdktf.stringToHclTerraform(this._region),
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: "21.22.1" };
// =================
// STATIC PROPERTIES
// =================
EcsCluster.tfResourceType = "aws_ecs_cluster";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLWNsdXN0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQWlGQSxzS0FZQztBQUdELDRLQXdDQztBQTJKRCxzSUFVQztBQUdELDRJQTRCQztBQXlHRCxzSUFTQztBQUdELDRJQXNCQztBQXVGRCxnRkFTQztBQUdELHNGQXNCQztBQStFRCxrR0FRQztBQUdELHdHQWdCQztBQTBERCxvRUFTQztBQUdELDBFQXNCQzs7QUE3d0JELCtCQUErQjtBQXdFL0IsU0FBZ0IsNkVBQTZFLENBQUMsTUFBK0o7SUFDM1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTztRQUNMLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFPLENBQUMsMkJBQTJCLENBQUM7UUFDN0YsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxzQkFBc0IsQ0FBQztRQUNuRiw0QkFBNEIsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTyxDQUFDLHlCQUF5QixDQUFDO1FBQ3pGLGNBQWMsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFlBQVksQ0FBQztRQUM3RCxhQUFhLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUM7S0FDNUQsQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQixnRkFBZ0YsQ0FB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