UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

891 lines 619 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14; Object.defineProperty(exports, "__esModule", { value: true }); exports.ComputeSecurityPolicy = exports.ComputeSecurityPolicyTimeoutsOutputReference = exports.ComputeSecurityPolicyRuleList = exports.ComputeSecurityPolicyRuleOutputReference = exports.ComputeSecurityPolicyRuleRedirectOptionsOutputReference = exports.ComputeSecurityPolicyRuleRateLimitOptionsOutputReference = exports.ComputeSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputReference = exports.ComputeSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputReference = exports.ComputeSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigsList = exports.ComputeSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigsOutputReference = exports.ComputeSecurityPolicyRuleRateLimitOptionsBanThresholdOutputReference = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigOutputReference = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionList = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionOutputReference = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriList = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputReference = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamList = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputReference = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderList = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputReference = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieList = exports.ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieOutputReference = exports.ComputeSecurityPolicyRuleMatchOutputReference = exports.ComputeSecurityPolicyRuleMatchExprOptionsOutputReference = exports.ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputReference = exports.ComputeSecurityPolicyRuleMatchExprOutputReference = exports.ComputeSecurityPolicyRuleMatchConfigOutputReference = exports.ComputeSecurityPolicyRuleHeaderActionOutputReference = exports.ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAddsList = exports.ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAddsOutputReference = exports.ComputeSecurityPolicyRecaptchaOptionsConfigOutputReference = exports.ComputeSecurityPolicyAdvancedOptionsConfigOutputReference = exports.ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference = exports.ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference = exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference = exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList = exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference = exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList = exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference = void 0; exports.computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToTerraform = computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToHclTerraform = computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToHclTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToTerraform = computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToHclTerraform = computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToHclTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToTerraform = computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToHclTerraform = computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToHclTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigToTerraform = computeSecurityPolicyAdaptiveProtectionConfigToTerraform; exports.computeSecurityPolicyAdaptiveProtectionConfigToHclTerraform = computeSecurityPolicyAdaptiveProtectionConfigToHclTerraform; exports.computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToTerraform = computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToTerraform; exports.computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToHclTerraform = computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToHclTerraform; exports.computeSecurityPolicyAdvancedOptionsConfigToTerraform = computeSecurityPolicyAdvancedOptionsConfigToTerraform; exports.computeSecurityPolicyAdvancedOptionsConfigToHclTerraform = computeSecurityPolicyAdvancedOptionsConfigToHclTerraform; exports.computeSecurityPolicyRecaptchaOptionsConfigToTerraform = computeSecurityPolicyRecaptchaOptionsConfigToTerraform; exports.computeSecurityPolicyRecaptchaOptionsConfigToHclTerraform = computeSecurityPolicyRecaptchaOptionsConfigToHclTerraform; exports.computeSecurityPolicyRuleHeaderActionRequestHeadersToAddsToTerraform = computeSecurityPolicyRuleHeaderActionRequestHeadersToAddsToTerraform; exports.computeSecurityPolicyRuleHeaderActionRequestHeadersToAddsToHclTerraform = computeSecurityPolicyRuleHeaderActionRequestHeadersToAddsToHclTerraform; exports.computeSecurityPolicyRuleHeaderActionToTerraform = computeSecurityPolicyRuleHeaderActionToTerraform; exports.computeSecurityPolicyRuleHeaderActionToHclTerraform = computeSecurityPolicyRuleHeaderActionToHclTerraform; exports.computeSecurityPolicyRuleMatchConfigToTerraform = computeSecurityPolicyRuleMatchConfigToTerraform; exports.computeSecurityPolicyRuleMatchConfigToHclTerraform = computeSecurityPolicyRuleMatchConfigToHclTerraform; exports.computeSecurityPolicyRuleMatchExprToTerraform = computeSecurityPolicyRuleMatchExprToTerraform; exports.computeSecurityPolicyRuleMatchExprToHclTerraform = computeSecurityPolicyRuleMatchExprToHclTerraform; exports.computeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsToTerraform = computeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsToTerraform; exports.computeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsToHclTerraform = computeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsToHclTerraform; exports.computeSecurityPolicyRuleMatchExprOptionsToTerraform = computeSecurityPolicyRuleMatchExprOptionsToTerraform; exports.computeSecurityPolicyRuleMatchExprOptionsToHclTerraform = computeSecurityPolicyRuleMatchExprOptionsToHclTerraform; exports.computeSecurityPolicyRuleMatchToTerraform = computeSecurityPolicyRuleMatchToTerraform; exports.computeSecurityPolicyRuleMatchToHclTerraform = computeSecurityPolicyRuleMatchToHclTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieToTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieToTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieToHclTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieToHclTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderToTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderToTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderToHclTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderToHclTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamToTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamToTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamToHclTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamToHclTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriToTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriToTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriToHclTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriToHclTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionToTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionToTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigExclusionToHclTerraform = computeSecurityPolicyRulePreconfiguredWafConfigExclusionToHclTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigToTerraform = computeSecurityPolicyRulePreconfiguredWafConfigToTerraform; exports.computeSecurityPolicyRulePreconfiguredWafConfigToHclTerraform = computeSecurityPolicyRulePreconfiguredWafConfigToHclTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsBanThresholdToTerraform = computeSecurityPolicyRuleRateLimitOptionsBanThresholdToTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsBanThresholdToHclTerraform = computeSecurityPolicyRuleRateLimitOptionsBanThresholdToHclTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigsToTerraform = computeSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigsToTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigsToHclTerraform = computeSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigsToHclTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsToTerraform = computeSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsToTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsToHclTerraform = computeSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsToHclTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsRateLimitThresholdToTerraform = computeSecurityPolicyRuleRateLimitOptionsRateLimitThresholdToTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsRateLimitThresholdToHclTerraform = computeSecurityPolicyRuleRateLimitOptionsRateLimitThresholdToHclTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsToTerraform = computeSecurityPolicyRuleRateLimitOptionsToTerraform; exports.computeSecurityPolicyRuleRateLimitOptionsToHclTerraform = computeSecurityPolicyRuleRateLimitOptionsToHclTerraform; exports.computeSecurityPolicyRuleRedirectOptionsToTerraform = computeSecurityPolicyRuleRedirectOptionsToTerraform; exports.computeSecurityPolicyRuleRedirectOptionsToHclTerraform = computeSecurityPolicyRuleRedirectOptionsToHclTerraform; exports.computeSecurityPolicyRuleToTerraform = computeSecurityPolicyRuleToTerraform; exports.computeSecurityPolicyRuleToHclTerraform = computeSecurityPolicyRuleToHclTerraform; exports.computeSecurityPolicyTimeoutsToTerraform = computeSecurityPolicyTimeoutsToTerraform; exports.computeSecurityPolicyTimeoutsToHclTerraform = computeSecurityPolicyTimeoutsToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToTerraform(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_each_unique_value: cdktf.booleanToTerraform(struct.enableEachUniqueValue), type: cdktf.stringToTerraform(struct.type), value: cdktf.stringToTerraform(struct.value), }; } function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToHclTerraform(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_each_unique_value: { value: cdktf.booleanToHclTerraform(struct.enableEachUniqueValue), isBlock: false, type: "simple", storageClassType: "boolean", }, type: { value: cdktf.stringToHclTerraform(struct.type), 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 ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference 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._enableEachUniqueValue !== undefined) { hasAnyValues = true; internalValueResult.enableEachUniqueValue = this._enableEachUniqueValue; } if (this._type !== undefined) { hasAnyValues = true; internalValueResult.type = this._type; } 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._enableEachUniqueValue = undefined; this._type = 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._enableEachUniqueValue = value.enableEachUniqueValue; this._type = value.type; this._value = value.value; } } get enableEachUniqueValue() { return this.getBooleanAttribute('enable_each_unique_value'); } set enableEachUniqueValue(value) { this._enableEachUniqueValue = value; } resetEnableEachUniqueValue() { this._enableEachUniqueValue = undefined; } // Temporarily expose input value. Use with caution. get enableEachUniqueValueInput() { return this._enableEachUniqueValue; } get type() { return this.getStringAttribute('type'); } set type(value) { this._type = value; } // Temporarily expose input value. Use with caution. get typeInput() { return this._type; } get value() { return this.getStringAttribute('value'); } set value(value) { this._value = value; } resetValue() { this._value = undefined; } // Temporarily expose input value. Use with caution. get valueInput() { return this._value; } } exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference = ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference; _a = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference[_a] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference", version: "14.35.0" }; class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList 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 ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList = ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList; _b = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList[_b] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList", version: "14.35.0" }; function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToTerraform(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 { auto_deploy_confidence_threshold: cdktf.numberToTerraform(struct.autoDeployConfidenceThreshold), auto_deploy_expiration_sec: cdktf.numberToTerraform(struct.autoDeployExpirationSec), auto_deploy_impacted_baseline_threshold: cdktf.numberToTerraform(struct.autoDeployImpactedBaselineThreshold), auto_deploy_load_threshold: cdktf.numberToTerraform(struct.autoDeployLoadThreshold), detection_absolute_qps: cdktf.numberToTerraform(struct.detectionAbsoluteQps), detection_load_threshold: cdktf.numberToTerraform(struct.detectionLoadThreshold), detection_relative_to_baseline_qps: cdktf.numberToTerraform(struct.detectionRelativeToBaselineQps), name: cdktf.stringToTerraform(struct.name), traffic_granularity_configs: cdktf.listMapper(computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToTerraform, true)(struct.trafficGranularityConfigs), }; } function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToHclTerraform(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 = { auto_deploy_confidence_threshold: { value: cdktf.numberToHclTerraform(struct.autoDeployConfidenceThreshold), isBlock: false, type: "simple", storageClassType: "number", }, auto_deploy_expiration_sec: { value: cdktf.numberToHclTerraform(struct.autoDeployExpirationSec), isBlock: false, type: "simple", storageClassType: "number", }, auto_deploy_impacted_baseline_threshold: { value: cdktf.numberToHclTerraform(struct.autoDeployImpactedBaselineThreshold), isBlock: false, type: "simple", storageClassType: "number", }, auto_deploy_load_threshold: { value: cdktf.numberToHclTerraform(struct.autoDeployLoadThreshold), isBlock: false, type: "simple", storageClassType: "number", }, detection_absolute_qps: { value: cdktf.numberToHclTerraform(struct.detectionAbsoluteQps), isBlock: false, type: "simple", storageClassType: "number", }, detection_load_threshold: { value: cdktf.numberToHclTerraform(struct.detectionLoadThreshold), isBlock: false, type: "simple", storageClassType: "number", }, detection_relative_to_baseline_qps: { value: cdktf.numberToHclTerraform(struct.detectionRelativeToBaselineQps), isBlock: false, type: "simple", storageClassType: "number", }, name: { value: cdktf.stringToHclTerraform(struct.name), isBlock: false, type: "simple", storageClassType: "string", }, traffic_granularity_configs: { value: cdktf.listMapperHcl(computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToHclTerraform, true)(struct.trafficGranularityConfigs), isBlock: true, type: "list", storageClassType: "ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference 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; // traffic_granularity_configs - computed: false, optional: true, required: false this._trafficGranularityConfigs = new ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList(this, "traffic_granularity_configs", false); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._autoDeployConfidenceThreshold !== undefined) { hasAnyValues = true; internalValueResult.autoDeployConfidenceThreshold = this._autoDeployConfidenceThreshold; } if (this._autoDeployExpirationSec !== undefined) { hasAnyValues = true; internalValueResult.autoDeployExpirationSec = this._autoDeployExpirationSec; } if (this._autoDeployImpactedBaselineThreshold !== undefined) { hasAnyValues = true; internalValueResult.autoDeployImpactedBaselineThreshold = this._autoDeployImpactedBaselineThreshold; } if (this._autoDeployLoadThreshold !== undefined) { hasAnyValues = true; internalValueResult.autoDeployLoadThreshold = this._autoDeployLoadThreshold; } if (this._detectionAbsoluteQps !== undefined) { hasAnyValues = true; internalValueResult.detectionAbsoluteQps = this._detectionAbsoluteQps; } if (this._detectionLoadThreshold !== undefined) { hasAnyValues = true; internalValueResult.detectionLoadThreshold = this._detectionLoadThreshold; } if (this._detectionRelativeToBaselineQps !== undefined) { hasAnyValues = true; internalValueResult.detectionRelativeToBaselineQps = this._detectionRelativeToBaselineQps; } if (this._name !== undefined) { hasAnyValues = true; internalValueResult.name = this._name; } if (this._trafficGranularityConfigs?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.trafficGranularityConfigs = this._trafficGranularityConfigs?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._autoDeployConfidenceThreshold = undefined; this._autoDeployExpirationSec = undefined; this._autoDeployImpactedBaselineThreshold = undefined; this._autoDeployLoadThreshold = undefined; this._detectionAbsoluteQps = undefined; this._detectionLoadThreshold = undefined; this._detectionRelativeToBaselineQps = undefined; this._name = undefined; this._trafficGranularityConfigs.internalValue = 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._autoDeployConfidenceThreshold = value.autoDeployConfidenceThreshold; this._autoDeployExpirationSec = value.autoDeployExpirationSec; this._autoDeployImpactedBaselineThreshold = value.autoDeployImpactedBaselineThreshold; this._autoDeployLoadThreshold = value.autoDeployLoadThreshold; this._detectionAbsoluteQps = value.detectionAbsoluteQps; this._detectionLoadThreshold = value.detectionLoadThreshold; this._detectionRelativeToBaselineQps = value.detectionRelativeToBaselineQps; this._name = value.name; this._trafficGranularityConfigs.internalValue = value.trafficGranularityConfigs; } } get autoDeployConfidenceThreshold() { return this.getNumberAttribute('auto_deploy_confidence_threshold'); } set autoDeployConfidenceThreshold(value) { this._autoDeployConfidenceThreshold = value; } resetAutoDeployConfidenceThreshold() { this._autoDeployConfidenceThreshold = undefined; } // Temporarily expose input value. Use with caution. get autoDeployConfidenceThresholdInput() { return this._autoDeployConfidenceThreshold; } get autoDeployExpirationSec() { return this.getNumberAttribute('auto_deploy_expiration_sec'); } set autoDeployExpirationSec(value) { this._autoDeployExpirationSec = value; } resetAutoDeployExpirationSec() { this._autoDeployExpirationSec = undefined; } // Temporarily expose input value. Use with caution. get autoDeployExpirationSecInput() { return this._autoDeployExpirationSec; } get autoDeployImpactedBaselineThreshold() { return this.getNumberAttribute('auto_deploy_impacted_baseline_threshold'); } set autoDeployImpactedBaselineThreshold(value) { this._autoDeployImpactedBaselineThreshold = value; } resetAutoDeployImpactedBaselineThreshold() { this._autoDeployImpactedBaselineThreshold = undefined; } // Temporarily expose input value. Use with caution. get autoDeployImpactedBaselineThresholdInput() { return this._autoDeployImpactedBaselineThreshold; } get autoDeployLoadThreshold() { return this.getNumberAttribute('auto_deploy_load_threshold'); } set autoDeployLoadThreshold(value) { this._autoDeployLoadThreshold = value; } resetAutoDeployLoadThreshold() { this._autoDeployLoadThreshold = undefined; } // Temporarily expose input value. Use with caution. get autoDeployLoadThresholdInput() { return this._autoDeployLoadThreshold; } get detectionAbsoluteQps() { return this.getNumberAttribute('detection_absolute_qps'); } set detectionAbsoluteQps(value) { this._detectionAbsoluteQps = value; } resetDetectionAbsoluteQps() { this._detectionAbsoluteQps = undefined; } // Temporarily expose input value. Use with caution. get detectionAbsoluteQpsInput() { return this._detectionAbsoluteQps; } get detectionLoadThreshold() { return this.getNumberAttribute('detection_load_threshold'); } set detectionLoadThreshold(value) { this._detectionLoadThreshold = value; } resetDetectionLoadThreshold() { this._detectionLoadThreshold = undefined; } // Temporarily expose input value. Use with caution. get detectionLoadThresholdInput() { return this._detectionLoadThreshold; } get detectionRelativeToBaselineQps() { return this.getNumberAttribute('detection_relative_to_baseline_qps'); } set detectionRelativeToBaselineQps(value) { this._detectionRelativeToBaselineQps = value; } resetDetectionRelativeToBaselineQps() { this._detectionRelativeToBaselineQps = undefined; } // Temporarily expose input value. Use with caution. get detectionRelativeToBaselineQpsInput() { return this._detectionRelativeToBaselineQps; } 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 trafficGranularityConfigs() { return this._trafficGranularityConfigs; } putTrafficGranularityConfigs(value) { this._trafficGranularityConfigs.internalValue = value; } resetTrafficGranularityConfigs() { this._trafficGranularityConfigs.internalValue = undefined; } // Temporarily expose input value. Use with caution. get trafficGranularityConfigsInput() { return this._trafficGranularityConfigs.internalValue; } } exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference = ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference; _c = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference[_c] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference", version: "14.35.0" }; class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList 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 ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList = ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList; _d = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList[_d] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList", version: "14.35.0" }; function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToTerraform(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: cdktf.booleanToTerraform(struct.enable), rule_visibility: cdktf.stringToTerraform(struct.ruleVisibility), threshold_configs: cdktf.listMapper(computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToTerraform, true)(struct.thresholdConfigs), }; } function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToHclTerraform(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: { value: cdktf.booleanToHclTerraform(struct.enable), isBlock: false, type: "simple", storageClassType: "boolean", }, rule_visibility: { value: cdktf.stringToHclTerraform(struct.ruleVisibility), isBlock: false, type: "simple", storageClassType: "string", }, threshold_configs: { value: cdktf.listMapperHcl(computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToHclTerraform, true)(struct.thresholdConfigs), isBlock: true, type: "list", storageClassType: "ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference 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; // threshold_configs - computed: false, optional: true, required: false this._thresholdConfigs = new ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList(this, "threshold_configs", false); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._enable !== undefined) { hasAnyValues = true; internalValueResult.enable = this._enable; } if (this._ruleVisibility !== undefined) { hasAnyValues = true; internalValueResult.ruleVisibility = this._ruleVisibility; } if (this._thresholdConfigs?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.thresholdConfigs = this._thresholdConfigs?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enable = undefined; this._ruleVisibility = undefined; this._thresholdConfigs.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enable = value.enable; this._ruleVisibility = value.ruleVisibility; this._thresholdConfigs.internalValue = value.thresholdConfigs; } } get enable() { return this.getBooleanAttribute('enable'); } set enable(value) { this._enable = value; } resetEnable() { this._enable = undefined; } // Temporarily expose input value. Use with caution. get enableInput() { return this._enable; } get ruleVisibility() { return this.getStringAttribute('rule_visibility'); } set ruleVisibility(value) { this._ruleVisibility = value; } resetRuleVisibility() { this._ruleVisibility = undefined; } // Temporarily expose input value. Use with caution. get ruleVisibilityInput() { return this._ruleVisibility; } get thresholdConfigs() { return this._thresholdConfigs; } putThresholdConfigs(value) { this._thresholdConfigs.internalValue = value; } resetThresholdConfigs() { this._thresholdConfigs.internalValue = undefined; } // Temporarily expose input value. Use with caution. get thresholdConfigsInput() { return this._thresholdConfigs.internalValue; } } exports.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference = ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference; _e = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference[_e] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference", version: "14.35.0" }; function computeSecurityPolicyAdaptiveProtectionConfigToTerraform(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 { layer_7_ddos_defense_config: computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToTerraform(struct.layer7DdosDefenseConfig), }; } function computeSecurityPolicyAdaptiveProtectionConfigToHclTerraform(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 = { layer_7_ddos_defense_config: { value: computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToHclTerraform(struct.layer7DdosDefenseConfig), isBlock: true, type: "list", storageClassType: "ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference 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; // layer_7_ddos_defense_config - computed: false, optional: true, required: false this._layer7DdosDefenseConfig = new ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference(this, "layer_7_ddos_defense_config"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._layer7DdosDefenseConfig?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.layer7DdosDefenseConfig = this._layer7DdosDefenseConfig?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._layer7DdosDefenseConfig.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._layer7DdosDefenseConfig.internalValue = value.layer7DdosDefenseConfig; } } get layer7DdosDefenseConfig() { return this._layer7DdosDefenseConfig; } putLayer7DdosDefenseConfig(value) { this._layer7DdosDefenseConfig.internalValue = value; } resetLayer7DdosDefenseConfig() { this._layer7DdosDefenseConfig.internalValue = undefined; } // Temporarily expose input value. Use with caution. get layer7DdosDefenseConfigInput() { return this._layer7DdosDefenseConfig.internalValue; } } exports.ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference = ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference; _f = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference[_f] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference", version: "14.35.0" }; function computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToTerraform(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 { content_types: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.contentTypes), }; } function computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToHclTerraform(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 = { content_types: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.contentTypes), isBlock: false, type: "set", storageClassType: "stringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference 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._contentTypes !== undefined) { hasAnyValues = true; internalValueResult.contentTypes = this._contentTypes; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._contentTypes = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._contentTypes = value.contentTypes; } } get contentTypes() { return cdktf.Fn.tolist(this.getListAttribute('content_types')); } set contentTypes(value) { this._contentTypes = value; } // Temporarily expose input value. Use with caution. get contentTypesInput() { return this._contentTypes; } } exports.ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference = ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference; _g = JSII_RTTI_SYMBOL_1; ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference[_g] = { fqn: "@cdktf/provider-google.computeSecurityPolicy.ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference", version: "14.35.0" }; function computeSecurityPolicyAdvancedOptionsConfigToTerraform(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 { json_parsing: cdktf.stringToTerraform(struct.jsonParsing), log_level: cdktf.stringToTerraform(struct.logLevel), user_ip_request_headers: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.userIpRequestHeaders), json_custom_config: computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToTerraform(struct.jsonCustomConfig), }; } function computeSecurityPolicyAdvancedOptionsConfigToHclTerraform(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 = { json_parsing: { value: cdktf.stringToHclTerraform(struct.jsonParsing), isBlock: false, type: "simple", storageClassType: "string", }, log_level: { value: cdktf.stringToHclTerraform(struct.logLevel), isBlock: false, type: "simple", storageClassType: "string", }, user_ip_request_headers: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.userIpRequestHeaders), isBlock: false, type: "set", storageClassType: "stringList", }, json_custom_config: { value: computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToHclTerraform(struct.jsonCustomConfig), isBlock: true, type: "list", storageClassType: "ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ComputeSecurityPolicyAdvancedOptionsConfigOutputReference 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; // json_custom_config - computed: false, optional: true, required: false this._jsonCustomConfig = new ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference(this, "json_custom_config"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._jsonParsing !== undefined) { hasAnyValues = true; internalValueResult.jsonParsing = this._jsonParsing; } if (this._logLevel !== undefined) { hasAnyValues = true; internalValueResult.logLevel = this._logLevel; } if (this._userIpRequestHeaders !== undefined) { hasAnyValues = true; internalValueResult.userIpRequestHeaders = this._userIpRequestHeaders; } if (this._jsonCustomConfig?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.jsonCustomConfig = this._jsonCustomConfig?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (valu