@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
994 lines • 138 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigConfigRule = exports.ConfigConfigRuleSourceOutputReference = exports.configConfigRuleSourceToHclTerraform = exports.configConfigRuleSourceToTerraform = exports.ConfigConfigRuleSourceSourceDetailList = exports.ConfigConfigRuleSourceSourceDetailOutputReference = exports.configConfigRuleSourceSourceDetailToHclTerraform = exports.configConfigRuleSourceSourceDetailToTerraform = exports.ConfigConfigRuleSourceCustomPolicyDetailsOutputReference = exports.configConfigRuleSourceCustomPolicyDetailsToHclTerraform = exports.configConfigRuleSourceCustomPolicyDetailsToTerraform = exports.ConfigConfigRuleScopeOutputReference = exports.configConfigRuleScopeToHclTerraform = exports.configConfigRuleScopeToTerraform = exports.ConfigConfigRuleEvaluationModeList = exports.ConfigConfigRuleEvaluationModeOutputReference = exports.configConfigRuleEvaluationModeToHclTerraform = exports.configConfigRuleEvaluationModeToTerraform = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function configConfigRuleEvaluationModeToTerraform(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 {
mode: cdktf.stringToTerraform(struct.mode),
};
}
exports.configConfigRuleEvaluationModeToTerraform = configConfigRuleEvaluationModeToTerraform;
function configConfigRuleEvaluationModeToHclTerraform(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 = {
mode: {
value: cdktf.stringToHclTerraform(struct.mode),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.configConfigRuleEvaluationModeToHclTerraform = configConfigRuleEvaluationModeToHclTerraform;
class ConfigConfigRuleEvaluationModeOutputReference 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._mode !== undefined) {
hasAnyValues = true;
internalValueResult.mode = this._mode;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._mode = 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._mode = value.mode;
}
}
get mode() {
return this.getStringAttribute('mode');
}
set mode(value) {
this._mode = value;
}
resetMode() {
this._mode = undefined;
}
// Temporarily expose input value. Use with caution.
get modeInput() {
return this._mode;
}
}
exports.ConfigConfigRuleEvaluationModeOutputReference = ConfigConfigRuleEvaluationModeOutputReference;
_a = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleEvaluationModeOutputReference[_a] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleEvaluationModeOutputReference", version: "19.50.0" };
class ConfigConfigRuleEvaluationModeList 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 ConfigConfigRuleEvaluationModeOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.ConfigConfigRuleEvaluationModeList = ConfigConfigRuleEvaluationModeList;
_b = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleEvaluationModeList[_b] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleEvaluationModeList", version: "19.50.0" };
function configConfigRuleScopeToTerraform(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 {
compliance_resource_id: cdktf.stringToTerraform(struct.complianceResourceId),
compliance_resource_types: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.complianceResourceTypes),
tag_key: cdktf.stringToTerraform(struct.tagKey),
tag_value: cdktf.stringToTerraform(struct.tagValue),
};
}
exports.configConfigRuleScopeToTerraform = configConfigRuleScopeToTerraform;
function configConfigRuleScopeToHclTerraform(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 = {
compliance_resource_id: {
value: cdktf.stringToHclTerraform(struct.complianceResourceId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
compliance_resource_types: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.complianceResourceTypes),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
tag_key: {
value: cdktf.stringToHclTerraform(struct.tagKey),
isBlock: false,
type: "simple",
storageClassType: "string",
},
tag_value: {
value: cdktf.stringToHclTerraform(struct.tagValue),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.configConfigRuleScopeToHclTerraform = configConfigRuleScopeToHclTerraform;
class ConfigConfigRuleScopeOutputReference 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._complianceResourceId !== undefined) {
hasAnyValues = true;
internalValueResult.complianceResourceId = this._complianceResourceId;
}
if (this._complianceResourceTypes !== undefined) {
hasAnyValues = true;
internalValueResult.complianceResourceTypes = this._complianceResourceTypes;
}
if (this._tagKey !== undefined) {
hasAnyValues = true;
internalValueResult.tagKey = this._tagKey;
}
if (this._tagValue !== undefined) {
hasAnyValues = true;
internalValueResult.tagValue = this._tagValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._complianceResourceId = undefined;
this._complianceResourceTypes = undefined;
this._tagKey = undefined;
this._tagValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._complianceResourceId = value.complianceResourceId;
this._complianceResourceTypes = value.complianceResourceTypes;
this._tagKey = value.tagKey;
this._tagValue = value.tagValue;
}
}
get complianceResourceId() {
return this.getStringAttribute('compliance_resource_id');
}
set complianceResourceId(value) {
this._complianceResourceId = value;
}
resetComplianceResourceId() {
this._complianceResourceId = undefined;
}
// Temporarily expose input value. Use with caution.
get complianceResourceIdInput() {
return this._complianceResourceId;
}
get complianceResourceTypes() {
return cdktf.Fn.tolist(this.getListAttribute('compliance_resource_types'));
}
set complianceResourceTypes(value) {
this._complianceResourceTypes = value;
}
resetComplianceResourceTypes() {
this._complianceResourceTypes = undefined;
}
// Temporarily expose input value. Use with caution.
get complianceResourceTypesInput() {
return this._complianceResourceTypes;
}
get tagKey() {
return this.getStringAttribute('tag_key');
}
set tagKey(value) {
this._tagKey = value;
}
resetTagKey() {
this._tagKey = undefined;
}
// Temporarily expose input value. Use with caution.
get tagKeyInput() {
return this._tagKey;
}
get tagValue() {
return this.getStringAttribute('tag_value');
}
set tagValue(value) {
this._tagValue = value;
}
resetTagValue() {
this._tagValue = undefined;
}
// Temporarily expose input value. Use with caution.
get tagValueInput() {
return this._tagValue;
}
}
exports.ConfigConfigRuleScopeOutputReference = ConfigConfigRuleScopeOutputReference;
_c = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleScopeOutputReference[_c] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleScopeOutputReference", version: "19.50.0" };
function configConfigRuleSourceCustomPolicyDetailsToTerraform(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_debug_log_delivery: cdktf.booleanToTerraform(struct.enableDebugLogDelivery),
policy_runtime: cdktf.stringToTerraform(struct.policyRuntime),
policy_text: cdktf.stringToTerraform(struct.policyText),
};
}
exports.configConfigRuleSourceCustomPolicyDetailsToTerraform = configConfigRuleSourceCustomPolicyDetailsToTerraform;
function configConfigRuleSourceCustomPolicyDetailsToHclTerraform(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_debug_log_delivery: {
value: cdktf.booleanToHclTerraform(struct.enableDebugLogDelivery),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
policy_runtime: {
value: cdktf.stringToHclTerraform(struct.policyRuntime),
isBlock: false,
type: "simple",
storageClassType: "string",
},
policy_text: {
value: cdktf.stringToHclTerraform(struct.policyText),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.configConfigRuleSourceCustomPolicyDetailsToHclTerraform = configConfigRuleSourceCustomPolicyDetailsToHclTerraform;
class ConfigConfigRuleSourceCustomPolicyDetailsOutputReference 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._enableDebugLogDelivery !== undefined) {
hasAnyValues = true;
internalValueResult.enableDebugLogDelivery = this._enableDebugLogDelivery;
}
if (this._policyRuntime !== undefined) {
hasAnyValues = true;
internalValueResult.policyRuntime = this._policyRuntime;
}
if (this._policyText !== undefined) {
hasAnyValues = true;
internalValueResult.policyText = this._policyText;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._enableDebugLogDelivery = undefined;
this._policyRuntime = undefined;
this._policyText = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._enableDebugLogDelivery = value.enableDebugLogDelivery;
this._policyRuntime = value.policyRuntime;
this._policyText = value.policyText;
}
}
get enableDebugLogDelivery() {
return this.getBooleanAttribute('enable_debug_log_delivery');
}
set enableDebugLogDelivery(value) {
this._enableDebugLogDelivery = value;
}
resetEnableDebugLogDelivery() {
this._enableDebugLogDelivery = undefined;
}
// Temporarily expose input value. Use with caution.
get enableDebugLogDeliveryInput() {
return this._enableDebugLogDelivery;
}
get policyRuntime() {
return this.getStringAttribute('policy_runtime');
}
set policyRuntime(value) {
this._policyRuntime = value;
}
// Temporarily expose input value. Use with caution.
get policyRuntimeInput() {
return this._policyRuntime;
}
get policyText() {
return this.getStringAttribute('policy_text');
}
set policyText(value) {
this._policyText = value;
}
// Temporarily expose input value. Use with caution.
get policyTextInput() {
return this._policyText;
}
}
exports.ConfigConfigRuleSourceCustomPolicyDetailsOutputReference = ConfigConfigRuleSourceCustomPolicyDetailsOutputReference;
_d = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleSourceCustomPolicyDetailsOutputReference[_d] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleSourceCustomPolicyDetailsOutputReference", version: "19.50.0" };
function configConfigRuleSourceSourceDetailToTerraform(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 {
event_source: cdktf.stringToTerraform(struct.eventSource),
maximum_execution_frequency: cdktf.stringToTerraform(struct.maximumExecutionFrequency),
message_type: cdktf.stringToTerraform(struct.messageType),
};
}
exports.configConfigRuleSourceSourceDetailToTerraform = configConfigRuleSourceSourceDetailToTerraform;
function configConfigRuleSourceSourceDetailToHclTerraform(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 = {
event_source: {
value: cdktf.stringToHclTerraform(struct.eventSource),
isBlock: false,
type: "simple",
storageClassType: "string",
},
maximum_execution_frequency: {
value: cdktf.stringToHclTerraform(struct.maximumExecutionFrequency),
isBlock: false,
type: "simple",
storageClassType: "string",
},
message_type: {
value: cdktf.stringToHclTerraform(struct.messageType),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.configConfigRuleSourceSourceDetailToHclTerraform = configConfigRuleSourceSourceDetailToHclTerraform;
class ConfigConfigRuleSourceSourceDetailOutputReference 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._eventSource !== undefined) {
hasAnyValues = true;
internalValueResult.eventSource = this._eventSource;
}
if (this._maximumExecutionFrequency !== undefined) {
hasAnyValues = true;
internalValueResult.maximumExecutionFrequency = this._maximumExecutionFrequency;
}
if (this._messageType !== undefined) {
hasAnyValues = true;
internalValueResult.messageType = this._messageType;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._eventSource = undefined;
this._maximumExecutionFrequency = undefined;
this._messageType = 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._eventSource = value.eventSource;
this._maximumExecutionFrequency = value.maximumExecutionFrequency;
this._messageType = value.messageType;
}
}
get eventSource() {
return this.getStringAttribute('event_source');
}
set eventSource(value) {
this._eventSource = value;
}
resetEventSource() {
this._eventSource = undefined;
}
// Temporarily expose input value. Use with caution.
get eventSourceInput() {
return this._eventSource;
}
get maximumExecutionFrequency() {
return this.getStringAttribute('maximum_execution_frequency');
}
set maximumExecutionFrequency(value) {
this._maximumExecutionFrequency = value;
}
resetMaximumExecutionFrequency() {
this._maximumExecutionFrequency = undefined;
}
// Temporarily expose input value. Use with caution.
get maximumExecutionFrequencyInput() {
return this._maximumExecutionFrequency;
}
get messageType() {
return this.getStringAttribute('message_type');
}
set messageType(value) {
this._messageType = value;
}
resetMessageType() {
this._messageType = undefined;
}
// Temporarily expose input value. Use with caution.
get messageTypeInput() {
return this._messageType;
}
}
exports.ConfigConfigRuleSourceSourceDetailOutputReference = ConfigConfigRuleSourceSourceDetailOutputReference;
_e = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleSourceSourceDetailOutputReference[_e] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleSourceSourceDetailOutputReference", version: "19.50.0" };
class ConfigConfigRuleSourceSourceDetailList 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 ConfigConfigRuleSourceSourceDetailOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.ConfigConfigRuleSourceSourceDetailList = ConfigConfigRuleSourceSourceDetailList;
_f = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleSourceSourceDetailList[_f] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleSourceSourceDetailList", version: "19.50.0" };
function configConfigRuleSourceToTerraform(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 {
owner: cdktf.stringToTerraform(struct.owner),
source_identifier: cdktf.stringToTerraform(struct.sourceIdentifier),
custom_policy_details: configConfigRuleSourceCustomPolicyDetailsToTerraform(struct.customPolicyDetails),
source_detail: cdktf.listMapper(configConfigRuleSourceSourceDetailToTerraform, true)(struct.sourceDetail),
};
}
exports.configConfigRuleSourceToTerraform = configConfigRuleSourceToTerraform;
function configConfigRuleSourceToHclTerraform(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 = {
owner: {
value: cdktf.stringToHclTerraform(struct.owner),
isBlock: false,
type: "simple",
storageClassType: "string",
},
source_identifier: {
value: cdktf.stringToHclTerraform(struct.sourceIdentifier),
isBlock: false,
type: "simple",
storageClassType: "string",
},
custom_policy_details: {
value: configConfigRuleSourceCustomPolicyDetailsToHclTerraform(struct.customPolicyDetails),
isBlock: true,
type: "list",
storageClassType: "ConfigConfigRuleSourceCustomPolicyDetailsList",
},
source_detail: {
value: cdktf.listMapperHcl(configConfigRuleSourceSourceDetailToHclTerraform, true)(struct.sourceDetail),
isBlock: true,
type: "set",
storageClassType: "ConfigConfigRuleSourceSourceDetailList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.configConfigRuleSourceToHclTerraform = configConfigRuleSourceToHclTerraform;
class ConfigConfigRuleSourceOutputReference 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;
// custom_policy_details - computed: false, optional: true, required: false
this._customPolicyDetails = new ConfigConfigRuleSourceCustomPolicyDetailsOutputReference(this, "custom_policy_details");
// source_detail - computed: false, optional: true, required: false
this._sourceDetail = new ConfigConfigRuleSourceSourceDetailList(this, "source_detail", true);
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._owner !== undefined) {
hasAnyValues = true;
internalValueResult.owner = this._owner;
}
if (this._sourceIdentifier !== undefined) {
hasAnyValues = true;
internalValueResult.sourceIdentifier = this._sourceIdentifier;
}
if (this._customPolicyDetails?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.customPolicyDetails = this._customPolicyDetails?.internalValue;
}
if (this._sourceDetail?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.sourceDetail = this._sourceDetail?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._owner = undefined;
this._sourceIdentifier = undefined;
this._customPolicyDetails.internalValue = undefined;
this._sourceDetail.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._owner = value.owner;
this._sourceIdentifier = value.sourceIdentifier;
this._customPolicyDetails.internalValue = value.customPolicyDetails;
this._sourceDetail.internalValue = value.sourceDetail;
}
}
get owner() {
return this.getStringAttribute('owner');
}
set owner(value) {
this._owner = value;
}
// Temporarily expose input value. Use with caution.
get ownerInput() {
return this._owner;
}
get sourceIdentifier() {
return this.getStringAttribute('source_identifier');
}
set sourceIdentifier(value) {
this._sourceIdentifier = value;
}
resetSourceIdentifier() {
this._sourceIdentifier = undefined;
}
// Temporarily expose input value. Use with caution.
get sourceIdentifierInput() {
return this._sourceIdentifier;
}
get customPolicyDetails() {
return this._customPolicyDetails;
}
putCustomPolicyDetails(value) {
this._customPolicyDetails.internalValue = value;
}
resetCustomPolicyDetails() {
this._customPolicyDetails.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get customPolicyDetailsInput() {
return this._customPolicyDetails.internalValue;
}
get sourceDetail() {
return this._sourceDetail;
}
putSourceDetail(value) {
this._sourceDetail.internalValue = value;
}
resetSourceDetail() {
this._sourceDetail.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get sourceDetailInput() {
return this._sourceDetail.internalValue;
}
}
exports.ConfigConfigRuleSourceOutputReference = ConfigConfigRuleSourceOutputReference;
_g = JSII_RTTI_SYMBOL_1;
ConfigConfigRuleSourceOutputReference[_g] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRuleSourceOutputReference", version: "19.50.0" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/config_config_rule aws_config_config_rule}
*/
class ConfigConfigRule extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a ConfigConfigRule 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 ConfigConfigRule to import
* @param importFromId The id of the existing ConfigConfigRule that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/config_config_rule#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the ConfigConfigRule to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_config_config_rule", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/config_config_rule aws_config_config_rule} 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 ConfigConfigRuleConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'aws_config_config_rule',
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
});
// evaluation_mode - computed: false, optional: true, required: false
this._evaluationMode = new ConfigConfigRuleEvaluationModeList(this, "evaluation_mode", true);
// scope - computed: false, optional: true, required: false
this._scope = new ConfigConfigRuleScopeOutputReference(this, "scope");
// source - computed: false, optional: false, required: true
this._source = new ConfigConfigRuleSourceOutputReference(this, "source");
this._description = config.description;
this._id = config.id;
this._inputParameters = config.inputParameters;
this._maximumExecutionFrequency = config.maximumExecutionFrequency;
this._name = config.name;
this._tags = config.tags;
this._tagsAll = config.tagsAll;
this._evaluationMode.internalValue = config.evaluationMode;
this._scope.internalValue = config.scope;
this._source.internalValue = config.source;
}
// ==========
// 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 this._description;
}
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 inputParameters() {
return this.getStringAttribute('input_parameters');
}
set inputParameters(value) {
this._inputParameters = value;
}
resetInputParameters() {
this._inputParameters = undefined;
}
// Temporarily expose input value. Use with caution.
get inputParametersInput() {
return this._inputParameters;
}
get maximumExecutionFrequency() {
return this.getStringAttribute('maximum_execution_frequency');
}
set maximumExecutionFrequency(value) {
this._maximumExecutionFrequency = value;
}
resetMaximumExecutionFrequency() {
this._maximumExecutionFrequency = undefined;
}
// Temporarily expose input value. Use with caution.
get maximumExecutionFrequencyInput() {
return this._maximumExecutionFrequency;
}
get name() {
return this.getStringAttribute('name');
}
set name(value) {
this._name = value;
}
// Temporarily expose input value. Use with caution.
get nameInput() {
return this._name;
}
// rule_id - computed: true, optional: false, required: false
get ruleId() {
return this.getStringAttribute('rule_id');
}
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 evaluationMode() {
return this._evaluationMode;
}
putEvaluationMode(value) {
this._evaluationMode.internalValue = value;
}
resetEvaluationMode() {
this._evaluationMode.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get evaluationModeInput() {
return this._evaluationMode.internalValue;
}
get scope() {
return this._scope;
}
putScope(value) {
this._scope.internalValue = value;
}
resetScope() {
this._scope.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get scopeInput() {
return this._scope.internalValue;
}
get source() {
return this._source;
}
putSource(value) {
this._source.internalValue = value;
}
// Temporarily expose input value. Use with caution.
get sourceInput() {
return this._source.internalValue;
}
// =========
// SYNTHESIS
// =========
synthesizeAttributes() {
return {
description: cdktf.stringToTerraform(this._description),
id: cdktf.stringToTerraform(this._id),
input_parameters: cdktf.stringToTerraform(this._inputParameters),
maximum_execution_frequency: cdktf.stringToTerraform(this._maximumExecutionFrequency),
name: cdktf.stringToTerraform(this._name),
tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags),
tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll),
evaluation_mode: cdktf.listMapper(configConfigRuleEvaluationModeToTerraform, true)(this._evaluationMode.internalValue),
scope: configConfigRuleScopeToTerraform(this._scope.internalValue),
source: configConfigRuleSourceToTerraform(this._source.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
description: {
value: cdktf.stringToHclTerraform(this._description),
isBlock: false,
type: "simple",
storageClassType: "string",
},
id: {
value: cdktf.stringToHclTerraform(this._id),
isBlock: false,
type: "simple",
storageClassType: "string",
},
input_parameters: {
value: cdktf.stringToHclTerraform(this._inputParameters),
isBlock: false,
type: "simple",
storageClassType: "string",
},
maximum_execution_frequency: {
value: cdktf.stringToHclTerraform(this._maximumExecutionFrequency),
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",
},
evaluation_mode: {
value: cdktf.listMapperHcl(configConfigRuleEvaluationModeToHclTerraform, true)(this._evaluationMode.internalValue),
isBlock: true,
type: "set",
storageClassType: "ConfigConfigRuleEvaluationModeList",
},
scope: {
value: configConfigRuleScopeToHclTerraform(this._scope.internalValue),
isBlock: true,
type: "list",
storageClassType: "ConfigConfigRuleScopeList",
},
source: {
value: configConfigRuleSourceToHclTerraform(this._source.internalValue),
isBlock: true,
type: "list",
storageClassType: "ConfigConfigRuleSourceList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.ConfigConfigRule = ConfigConfigRule;
_h = JSII_RTTI_SYMBOL_1;
ConfigConfigRule[_h] = { fqn: "@cdktf/provider-aws.configConfigRule.ConfigConfigRule", version: "19.50.0" };
// =================
// STATIC PROPERTIES
// =================
ConfigConfigRule.tfResourceType = "aws_config_config_rule";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnLWNvbmZpZy1ydWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsK0JBQStCO0FBOEQvQixTQUFnQix5Q0FBeUMsQ0FBQyxNQUEyRDtJQUNuSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsSUFBSSxDQUFDO0tBQzVDLENBQUE7QUFDSCxDQUFDO0FBUkQsOEZBUUM7QUFHRCxTQUFnQiw0Q0FBNEMsQ0FBQyxNQUEyRDtJQUN0SCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNaLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLElBQUksQ0FBQztZQUMvQyxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFB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