UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,067 lines 188 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j; Object.defineProperty(exports, "__esModule", { value: true }); exports.AthenaWorkgroup = exports.AthenaWorkgroupConfigurationOutputReference = exports.AthenaWorkgroupConfigurationResultConfigurationOutputReference = exports.AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference = exports.AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference = exports.AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference = exports.AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference = exports.AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference = exports.AthenaWorkgroupConfigurationEngineVersionOutputReference = void 0; exports.athenaWorkgroupConfigurationEngineVersionToTerraform = athenaWorkgroupConfigurationEngineVersionToTerraform; exports.athenaWorkgroupConfigurationEngineVersionToHclTerraform = athenaWorkgroupConfigurationEngineVersionToHclTerraform; exports.athenaWorkgroupConfigurationIdentityCenterConfigurationToTerraform = athenaWorkgroupConfigurationIdentityCenterConfigurationToTerraform; exports.athenaWorkgroupConfigurationIdentityCenterConfigurationToHclTerraform = athenaWorkgroupConfigurationIdentityCenterConfigurationToHclTerraform; exports.athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToTerraform = athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToTerraform; exports.athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToHclTerraform = athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToHclTerraform; exports.athenaWorkgroupConfigurationManagedQueryResultsConfigurationToTerraform = athenaWorkgroupConfigurationManagedQueryResultsConfigurationToTerraform; exports.athenaWorkgroupConfigurationManagedQueryResultsConfigurationToHclTerraform = athenaWorkgroupConfigurationManagedQueryResultsConfigurationToHclTerraform; exports.athenaWorkgroupConfigurationResultConfigurationAclConfigurationToTerraform = athenaWorkgroupConfigurationResultConfigurationAclConfigurationToTerraform; exports.athenaWorkgroupConfigurationResultConfigurationAclConfigurationToHclTerraform = athenaWorkgroupConfigurationResultConfigurationAclConfigurationToHclTerraform; exports.athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToTerraform = athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToTerraform; exports.athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToHclTerraform = athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToHclTerraform; exports.athenaWorkgroupConfigurationResultConfigurationToTerraform = athenaWorkgroupConfigurationResultConfigurationToTerraform; exports.athenaWorkgroupConfigurationResultConfigurationToHclTerraform = athenaWorkgroupConfigurationResultConfigurationToHclTerraform; exports.athenaWorkgroupConfigurationToTerraform = athenaWorkgroupConfigurationToTerraform; exports.athenaWorkgroupConfigurationToHclTerraform = athenaWorkgroupConfigurationToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function athenaWorkgroupConfigurationEngineVersionToTerraform(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 { selected_engine_version: cdktf.stringToTerraform(struct.selectedEngineVersion), }; } function athenaWorkgroupConfigurationEngineVersionToHclTerraform(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 = { selected_engine_version: { value: cdktf.stringToHclTerraform(struct.selectedEngineVersion), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationEngineVersionOutputReference 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._selectedEngineVersion !== undefined) { hasAnyValues = true; internalValueResult.selectedEngineVersion = this._selectedEngineVersion; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._selectedEngineVersion = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._selectedEngineVersion = value.selectedEngineVersion; } } // effective_engine_version - computed: true, optional: false, required: false get effectiveEngineVersion() { return this.getStringAttribute('effective_engine_version'); } get selectedEngineVersion() { return this.getStringAttribute('selected_engine_version'); } set selectedEngineVersion(value) { this._selectedEngineVersion = value; } resetSelectedEngineVersion() { this._selectedEngineVersion = undefined; } // Temporarily expose input value. Use with caution. get selectedEngineVersionInput() { return this._selectedEngineVersion; } } exports.AthenaWorkgroupConfigurationEngineVersionOutputReference = AthenaWorkgroupConfigurationEngineVersionOutputReference; _a = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationEngineVersionOutputReference[_a] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationEngineVersionOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationIdentityCenterConfigurationToTerraform(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 { enable_identity_center: cdktf.booleanToTerraform(struct.enableIdentityCenter), identity_center_instance_arn: cdktf.stringToTerraform(struct.identityCenterInstanceArn), }; } function athenaWorkgroupConfigurationIdentityCenterConfigurationToHclTerraform(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 = { enable_identity_center: { value: cdktf.booleanToHclTerraform(struct.enableIdentityCenter), isBlock: false, type: "simple", storageClassType: "boolean", }, identity_center_instance_arn: { value: cdktf.stringToHclTerraform(struct.identityCenterInstanceArn), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference 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._enableIdentityCenter !== undefined) { hasAnyValues = true; internalValueResult.enableIdentityCenter = this._enableIdentityCenter; } if (this._identityCenterInstanceArn !== undefined) { hasAnyValues = true; internalValueResult.identityCenterInstanceArn = this._identityCenterInstanceArn; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enableIdentityCenter = undefined; this._identityCenterInstanceArn = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enableIdentityCenter = value.enableIdentityCenter; this._identityCenterInstanceArn = value.identityCenterInstanceArn; } } get enableIdentityCenter() { return this.getBooleanAttribute('enable_identity_center'); } set enableIdentityCenter(value) { this._enableIdentityCenter = value; } resetEnableIdentityCenter() { this._enableIdentityCenter = undefined; } // Temporarily expose input value. Use with caution. get enableIdentityCenterInput() { return this._enableIdentityCenter; } get identityCenterInstanceArn() { return this.getStringAttribute('identity_center_instance_arn'); } set identityCenterInstanceArn(value) { this._identityCenterInstanceArn = value; } resetIdentityCenterInstanceArn() { this._identityCenterInstanceArn = undefined; } // Temporarily expose input value. Use with caution. get identityCenterInstanceArnInput() { return this._identityCenterInstanceArn; } } exports.AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference = AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference; _b = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference[_b] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToTerraform(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: cdktf.stringToTerraform(struct.kmsKey), }; } function athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToHclTerraform(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: { value: cdktf.stringToHclTerraform(struct.kmsKey), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference 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._kmsKey !== undefined) { hasAnyValues = true; internalValueResult.kmsKey = this._kmsKey; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._kmsKey = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._kmsKey = value.kmsKey; } } get kmsKey() { return this.getStringAttribute('kms_key'); } set kmsKey(value) { this._kmsKey = value; } resetKmsKey() { this._kmsKey = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyInput() { return this._kmsKey; } } exports.AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference = AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference; _c = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference[_c] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationManagedQueryResultsConfigurationToTerraform(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 { enabled: cdktf.booleanToTerraform(struct.enabled), encryption_configuration: athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToTerraform(struct.encryptionConfiguration), }; } function athenaWorkgroupConfigurationManagedQueryResultsConfigurationToHclTerraform(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 = { enabled: { value: cdktf.booleanToHclTerraform(struct.enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, encryption_configuration: { value: athenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationToHclTerraform(struct.encryptionConfiguration), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference 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; // encryption_configuration - computed: false, optional: true, required: false this._encryptionConfiguration = new AthenaWorkgroupConfigurationManagedQueryResultsConfigurationEncryptionConfigurationOutputReference(this, "encryption_configuration"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } if (this._encryptionConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.encryptionConfiguration = this._encryptionConfiguration?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enabled = undefined; this._encryptionConfiguration.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enabled = value.enabled; this._encryptionConfiguration.internalValue = value.encryptionConfiguration; } } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } resetEnabled() { this._enabled = undefined; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } get encryptionConfiguration() { return this._encryptionConfiguration; } putEncryptionConfiguration(value) { this._encryptionConfiguration.internalValue = value; } resetEncryptionConfiguration() { this._encryptionConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get encryptionConfigurationInput() { return this._encryptionConfiguration.internalValue; } } exports.AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference = AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference; _d = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference[_d] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationResultConfigurationAclConfigurationToTerraform(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 { s3_acl_option: cdktf.stringToTerraform(struct.s3AclOption), }; } function athenaWorkgroupConfigurationResultConfigurationAclConfigurationToHclTerraform(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 = { s3_acl_option: { value: cdktf.stringToHclTerraform(struct.s3AclOption), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference 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._s3AclOption !== undefined) { hasAnyValues = true; internalValueResult.s3AclOption = this._s3AclOption; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._s3AclOption = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._s3AclOption = value.s3AclOption; } } get s3AclOption() { return this.getStringAttribute('s3_acl_option'); } set s3AclOption(value) { this._s3AclOption = value; } // Temporarily expose input value. Use with caution. get s3AclOptionInput() { return this._s3AclOption; } } exports.AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference = AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference; _e = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference[_e] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToTerraform(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 { encryption_option: cdktf.stringToTerraform(struct.encryptionOption), kms_key_arn: cdktf.stringToTerraform(struct.kmsKeyArn), }; } function athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToHclTerraform(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 = { encryption_option: { value: cdktf.stringToHclTerraform(struct.encryptionOption), isBlock: false, type: "simple", storageClassType: "string", }, kms_key_arn: { value: cdktf.stringToHclTerraform(struct.kmsKeyArn), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference 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._encryptionOption !== undefined) { hasAnyValues = true; internalValueResult.encryptionOption = this._encryptionOption; } if (this._kmsKeyArn !== undefined) { hasAnyValues = true; internalValueResult.kmsKeyArn = this._kmsKeyArn; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._encryptionOption = undefined; this._kmsKeyArn = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._encryptionOption = value.encryptionOption; this._kmsKeyArn = value.kmsKeyArn; } } get encryptionOption() { return this.getStringAttribute('encryption_option'); } set encryptionOption(value) { this._encryptionOption = value; } resetEncryptionOption() { this._encryptionOption = undefined; } // Temporarily expose input value. Use with caution. get encryptionOptionInput() { return this._encryptionOption; } get kmsKeyArn() { return this.getStringAttribute('kms_key_arn'); } set kmsKeyArn(value) { this._kmsKeyArn = value; } resetKmsKeyArn() { this._kmsKeyArn = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyArnInput() { return this._kmsKeyArn; } } exports.AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference = AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference; _f = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference[_f] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationResultConfigurationToTerraform(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 { expected_bucket_owner: cdktf.stringToTerraform(struct.expectedBucketOwner), output_location: cdktf.stringToTerraform(struct.outputLocation), acl_configuration: athenaWorkgroupConfigurationResultConfigurationAclConfigurationToTerraform(struct.aclConfiguration), encryption_configuration: athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToTerraform(struct.encryptionConfiguration), }; } function athenaWorkgroupConfigurationResultConfigurationToHclTerraform(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 = { expected_bucket_owner: { value: cdktf.stringToHclTerraform(struct.expectedBucketOwner), isBlock: false, type: "simple", storageClassType: "string", }, output_location: { value: cdktf.stringToHclTerraform(struct.outputLocation), isBlock: false, type: "simple", storageClassType: "string", }, acl_configuration: { value: athenaWorkgroupConfigurationResultConfigurationAclConfigurationToHclTerraform(struct.aclConfiguration), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationResultConfigurationAclConfigurationList", }, encryption_configuration: { value: athenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationToHclTerraform(struct.encryptionConfiguration), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationResultConfigurationOutputReference 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; // acl_configuration - computed: false, optional: true, required: false this._aclConfiguration = new AthenaWorkgroupConfigurationResultConfigurationAclConfigurationOutputReference(this, "acl_configuration"); // encryption_configuration - computed: false, optional: true, required: false this._encryptionConfiguration = new AthenaWorkgroupConfigurationResultConfigurationEncryptionConfigurationOutputReference(this, "encryption_configuration"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._expectedBucketOwner !== undefined) { hasAnyValues = true; internalValueResult.expectedBucketOwner = this._expectedBucketOwner; } if (this._outputLocation !== undefined) { hasAnyValues = true; internalValueResult.outputLocation = this._outputLocation; } if (this._aclConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.aclConfiguration = this._aclConfiguration?.internalValue; } if (this._encryptionConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.encryptionConfiguration = this._encryptionConfiguration?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._expectedBucketOwner = undefined; this._outputLocation = undefined; this._aclConfiguration.internalValue = undefined; this._encryptionConfiguration.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._expectedBucketOwner = value.expectedBucketOwner; this._outputLocation = value.outputLocation; this._aclConfiguration.internalValue = value.aclConfiguration; this._encryptionConfiguration.internalValue = value.encryptionConfiguration; } } get expectedBucketOwner() { return this.getStringAttribute('expected_bucket_owner'); } set expectedBucketOwner(value) { this._expectedBucketOwner = value; } resetExpectedBucketOwner() { this._expectedBucketOwner = undefined; } // Temporarily expose input value. Use with caution. get expectedBucketOwnerInput() { return this._expectedBucketOwner; } get outputLocation() { return this.getStringAttribute('output_location'); } set outputLocation(value) { this._outputLocation = value; } resetOutputLocation() { this._outputLocation = undefined; } // Temporarily expose input value. Use with caution. get outputLocationInput() { return this._outputLocation; } get aclConfiguration() { return this._aclConfiguration; } putAclConfiguration(value) { this._aclConfiguration.internalValue = value; } resetAclConfiguration() { this._aclConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get aclConfigurationInput() { return this._aclConfiguration.internalValue; } get encryptionConfiguration() { return this._encryptionConfiguration; } putEncryptionConfiguration(value) { this._encryptionConfiguration.internalValue = value; } resetEncryptionConfiguration() { this._encryptionConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get encryptionConfigurationInput() { return this._encryptionConfiguration.internalValue; } } exports.AthenaWorkgroupConfigurationResultConfigurationOutputReference = AthenaWorkgroupConfigurationResultConfigurationOutputReference; _g = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationResultConfigurationOutputReference[_g] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationResultConfigurationOutputReference", version: "21.22.1" }; function athenaWorkgroupConfigurationToTerraform(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 { bytes_scanned_cutoff_per_query: cdktf.numberToTerraform(struct.bytesScannedCutoffPerQuery), enforce_workgroup_configuration: cdktf.booleanToTerraform(struct.enforceWorkgroupConfiguration), execution_role: cdktf.stringToTerraform(struct.executionRole), publish_cloudwatch_metrics_enabled: cdktf.booleanToTerraform(struct.publishCloudwatchMetricsEnabled), requester_pays_enabled: cdktf.booleanToTerraform(struct.requesterPaysEnabled), engine_version: athenaWorkgroupConfigurationEngineVersionToTerraform(struct.engineVersion), identity_center_configuration: athenaWorkgroupConfigurationIdentityCenterConfigurationToTerraform(struct.identityCenterConfiguration), managed_query_results_configuration: athenaWorkgroupConfigurationManagedQueryResultsConfigurationToTerraform(struct.managedQueryResultsConfiguration), result_configuration: athenaWorkgroupConfigurationResultConfigurationToTerraform(struct.resultConfiguration), }; } function athenaWorkgroupConfigurationToHclTerraform(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 = { bytes_scanned_cutoff_per_query: { value: cdktf.numberToHclTerraform(struct.bytesScannedCutoffPerQuery), isBlock: false, type: "simple", storageClassType: "number", }, enforce_workgroup_configuration: { value: cdktf.booleanToHclTerraform(struct.enforceWorkgroupConfiguration), isBlock: false, type: "simple", storageClassType: "boolean", }, execution_role: { value: cdktf.stringToHclTerraform(struct.executionRole), isBlock: false, type: "simple", storageClassType: "string", }, publish_cloudwatch_metrics_enabled: { value: cdktf.booleanToHclTerraform(struct.publishCloudwatchMetricsEnabled), isBlock: false, type: "simple", storageClassType: "boolean", }, requester_pays_enabled: { value: cdktf.booleanToHclTerraform(struct.requesterPaysEnabled), isBlock: false, type: "simple", storageClassType: "boolean", }, engine_version: { value: athenaWorkgroupConfigurationEngineVersionToHclTerraform(struct.engineVersion), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationEngineVersionList", }, identity_center_configuration: { value: athenaWorkgroupConfigurationIdentityCenterConfigurationToHclTerraform(struct.identityCenterConfiguration), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationIdentityCenterConfigurationList", }, managed_query_results_configuration: { value: athenaWorkgroupConfigurationManagedQueryResultsConfigurationToHclTerraform(struct.managedQueryResultsConfiguration), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationManagedQueryResultsConfigurationList", }, result_configuration: { value: athenaWorkgroupConfigurationResultConfigurationToHclTerraform(struct.resultConfiguration), isBlock: true, type: "list", storageClassType: "AthenaWorkgroupConfigurationResultConfigurationList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class AthenaWorkgroupConfigurationOutputReference 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; // engine_version - computed: false, optional: true, required: false this._engineVersion = new AthenaWorkgroupConfigurationEngineVersionOutputReference(this, "engine_version"); // identity_center_configuration - computed: false, optional: true, required: false this._identityCenterConfiguration = new AthenaWorkgroupConfigurationIdentityCenterConfigurationOutputReference(this, "identity_center_configuration"); // managed_query_results_configuration - computed: false, optional: true, required: false this._managedQueryResultsConfiguration = new AthenaWorkgroupConfigurationManagedQueryResultsConfigurationOutputReference(this, "managed_query_results_configuration"); // result_configuration - computed: false, optional: true, required: false this._resultConfiguration = new AthenaWorkgroupConfigurationResultConfigurationOutputReference(this, "result_configuration"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._bytesScannedCutoffPerQuery !== undefined) { hasAnyValues = true; internalValueResult.bytesScannedCutoffPerQuery = this._bytesScannedCutoffPerQuery; } if (this._enforceWorkgroupConfiguration !== undefined) { hasAnyValues = true; internalValueResult.enforceWorkgroupConfiguration = this._enforceWorkgroupConfiguration; } if (this._executionRole !== undefined) { hasAnyValues = true; internalValueResult.executionRole = this._executionRole; } if (this._publishCloudwatchMetricsEnabled !== undefined) { hasAnyValues = true; internalValueResult.publishCloudwatchMetricsEnabled = this._publishCloudwatchMetricsEnabled; } if (this._requesterPaysEnabled !== undefined) { hasAnyValues = true; internalValueResult.requesterPaysEnabled = this._requesterPaysEnabled; } if (this._engineVersion?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.engineVersion = this._engineVersion?.internalValue; } if (this._identityCenterConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.identityCenterConfiguration = this._identityCenterConfiguration?.internalValue; } if (this._managedQueryResultsConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.managedQueryResultsConfiguration = this._managedQueryResultsConfiguration?.internalValue; } if (this._resultConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.resultConfiguration = this._resultConfiguration?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._bytesScannedCutoffPerQuery = undefined; this._enforceWorkgroupConfiguration = undefined; this._executionRole = undefined; this._publishCloudwatchMetricsEnabled = undefined; this._requesterPaysEnabled = undefined; this._engineVersion.internalValue = undefined; this._identityCenterConfiguration.internalValue = undefined; this._managedQueryResultsConfiguration.internalValue = undefined; this._resultConfiguration.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._bytesScannedCutoffPerQuery = value.bytesScannedCutoffPerQuery; this._enforceWorkgroupConfiguration = value.enforceWorkgroupConfiguration; this._executionRole = value.executionRole; this._publishCloudwatchMetricsEnabled = value.publishCloudwatchMetricsEnabled; this._requesterPaysEnabled = value.requesterPaysEnabled; this._engineVersion.internalValue = value.engineVersion; this._identityCenterConfiguration.internalValue = value.identityCenterConfiguration; this._managedQueryResultsConfiguration.internalValue = value.managedQueryResultsConfiguration; this._resultConfiguration.internalValue = value.resultConfiguration; } } get bytesScannedCutoffPerQuery() { return this.getNumberAttribute('bytes_scanned_cutoff_per_query'); } set bytesScannedCutoffPerQuery(value) { this._bytesScannedCutoffPerQuery = value; } resetBytesScannedCutoffPerQuery() { this._bytesScannedCutoffPerQuery = undefined; } // Temporarily expose input value. Use with caution. get bytesScannedCutoffPerQueryInput() { return this._bytesScannedCutoffPerQuery; } get enforceWorkgroupConfiguration() { return this.getBooleanAttribute('enforce_workgroup_configuration'); } set enforceWorkgroupConfiguration(value) { this._enforceWorkgroupConfiguration = value; } resetEnforceWorkgroupConfiguration() { this._enforceWorkgroupConfiguration = undefined; } // Temporarily expose input value. Use with caution. get enforceWorkgroupConfigurationInput() { return this._enforceWorkgroupConfiguration; } get executionRole() { return this.getStringAttribute('execution_role'); } set executionRole(value) { this._executionRole = value; } resetExecutionRole() { this._executionRole = undefined; } // Temporarily expose input value. Use with caution. get executionRoleInput() { return this._executionRole; } get publishCloudwatchMetricsEnabled() { return this.getBooleanAttribute('publish_cloudwatch_metrics_enabled'); } set publishCloudwatchMetricsEnabled(value) { this._publishCloudwatchMetricsEnabled = value; } resetPublishCloudwatchMetricsEnabled() { this._publishCloudwatchMetricsEnabled = undefined; } // Temporarily expose input value. Use with caution. get publishCloudwatchMetricsEnabledInput() { return this._publishCloudwatchMetricsEnabled; } get requesterPaysEnabled() { return this.getBooleanAttribute('requester_pays_enabled'); } set requesterPaysEnabled(value) { this._requesterPaysEnabled = value; } resetRequesterPaysEnabled() { this._requesterPaysEnabled = undefined; } // Temporarily expose input value. Use with caution. get requesterPaysEnabledInput() { return this._requesterPaysEnabled; } get engineVersion() { return this._engineVersion; } putEngineVersion(value) { this._engineVersion.internalValue = value; } resetEngineVersion() { this._engineVersion.internalValue = undefined; } // Temporarily expose input value. Use with caution. get engineVersionInput() { return this._engineVersion.internalValue; } get identityCenterConfiguration() { return this._identityCenterConfiguration; } putIdentityCenterConfiguration(value) { this._identityCenterConfiguration.internalValue = value; } resetIdentityCenterConfiguration() { this._identityCenterConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get identityCenterConfigurationInput() { return this._identityCenterConfiguration.internalValue; } get managedQueryResultsConfiguration() { return this._managedQueryResultsConfiguration; } putManagedQueryResultsConfiguration(value) { this._managedQueryResultsConfiguration.internalValue = value; } resetManagedQueryResultsConfiguration() { this._managedQueryResultsConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get managedQueryResultsConfigurationInput() { return this._managedQueryResultsConfiguration.internalValue; } get resultConfiguration() { return this._resultConfiguration; } putResultConfiguration(value) { this._resultConfiguration.internalValue = value; } resetResultConfiguration() { this._resultConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get resultConfigurationInput() { return this._resultConfiguration.internalValue; } } exports.AthenaWorkgroupConfigurationOutputReference = AthenaWorkgroupConfigurationOutputReference; _h = JSII_RTTI_SYMBOL_1; AthenaWorkgroupConfigurationOutputReference[_h] = { fqn: "@cdktf/provider-aws.athenaWorkgroup.AthenaWorkgroupConfigurationOutputReference", version: "21.22.1" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/athena_workgroup aws_athena_workgroup} */ class AthenaWorkgroup extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a AthenaWorkgroup 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 AthenaWorkgroup to import * @param importFromId The id of the existing AthenaWorkgroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/athena_workgroup#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the AthenaWorkgroup to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_athena_workgroup", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/athena_workgroup aws_athena_workgroup} 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 AthenaWorkgroupConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_athena_workgroup', 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 AthenaWorkgroupConfigurationOutputReference(this, "configuration"); this._description = config.description; this._forceDestroy = config.forceDestroy; this._id = config.id; this._name = config.name; this._region = config.region; this._state = config.state; this._tags = config.tags; this._tagsAll = config.tagsAll; this._configuration.internalValue = config.configuration; } // ========== // ATTRIBUTES // ========== // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get description() { return this.getStringAttribute('description'); } set description(value) { this._description = value; } resetDescription() { this._description = undefined; } // Temporarily expose input value. Use with caution. get descriptionInput() { return