UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

1,149 lines (1,148 loc) 396 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; Object.defineProperty(exports, "__esModule", { value: true }); exports.StorageBucket = exports.StorageBucketWebsiteOutputReference = exports.StorageBucketVersioningOutputReference = exports.StorageBucketTimeoutsOutputReference = exports.StorageBucketSoftDeletePolicyOutputReference = exports.StorageBucketRetentionPolicyOutputReference = exports.StorageBucketLoggingOutputReference = exports.StorageBucketLifecycleRuleList = exports.StorageBucketLifecycleRuleOutputReference = exports.StorageBucketLifecycleRuleConditionOutputReference = exports.StorageBucketLifecycleRuleActionOutputReference = exports.StorageBucketIpFilterOutputReference = exports.StorageBucketIpFilterVpcNetworkSourcesList = exports.StorageBucketIpFilterVpcNetworkSourcesOutputReference = exports.StorageBucketIpFilterPublicNetworkSourceOutputReference = exports.StorageBucketHierarchicalNamespaceOutputReference = exports.StorageBucketEncryptionOutputReference = exports.StorageBucketCustomPlacementConfigOutputReference = exports.StorageBucketCorsList = exports.StorageBucketCorsOutputReference = exports.StorageBucketAutoclassOutputReference = void 0; exports.storageBucketAutoclassToTerraform = storageBucketAutoclassToTerraform; exports.storageBucketAutoclassToHclTerraform = storageBucketAutoclassToHclTerraform; exports.storageBucketCorsToTerraform = storageBucketCorsToTerraform; exports.storageBucketCorsToHclTerraform = storageBucketCorsToHclTerraform; exports.storageBucketCustomPlacementConfigToTerraform = storageBucketCustomPlacementConfigToTerraform; exports.storageBucketCustomPlacementConfigToHclTerraform = storageBucketCustomPlacementConfigToHclTerraform; exports.storageBucketEncryptionToTerraform = storageBucketEncryptionToTerraform; exports.storageBucketEncryptionToHclTerraform = storageBucketEncryptionToHclTerraform; exports.storageBucketHierarchicalNamespaceToTerraform = storageBucketHierarchicalNamespaceToTerraform; exports.storageBucketHierarchicalNamespaceToHclTerraform = storageBucketHierarchicalNamespaceToHclTerraform; exports.storageBucketIpFilterPublicNetworkSourceToTerraform = storageBucketIpFilterPublicNetworkSourceToTerraform; exports.storageBucketIpFilterPublicNetworkSourceToHclTerraform = storageBucketIpFilterPublicNetworkSourceToHclTerraform; exports.storageBucketIpFilterVpcNetworkSourcesToTerraform = storageBucketIpFilterVpcNetworkSourcesToTerraform; exports.storageBucketIpFilterVpcNetworkSourcesToHclTerraform = storageBucketIpFilterVpcNetworkSourcesToHclTerraform; exports.storageBucketIpFilterToTerraform = storageBucketIpFilterToTerraform; exports.storageBucketIpFilterToHclTerraform = storageBucketIpFilterToHclTerraform; exports.storageBucketLifecycleRuleActionToTerraform = storageBucketLifecycleRuleActionToTerraform; exports.storageBucketLifecycleRuleActionToHclTerraform = storageBucketLifecycleRuleActionToHclTerraform; exports.storageBucketLifecycleRuleConditionToTerraform = storageBucketLifecycleRuleConditionToTerraform; exports.storageBucketLifecycleRuleConditionToHclTerraform = storageBucketLifecycleRuleConditionToHclTerraform; exports.storageBucketLifecycleRuleToTerraform = storageBucketLifecycleRuleToTerraform; exports.storageBucketLifecycleRuleToHclTerraform = storageBucketLifecycleRuleToHclTerraform; exports.storageBucketLoggingToTerraform = storageBucketLoggingToTerraform; exports.storageBucketLoggingToHclTerraform = storageBucketLoggingToHclTerraform; exports.storageBucketRetentionPolicyToTerraform = storageBucketRetentionPolicyToTerraform; exports.storageBucketRetentionPolicyToHclTerraform = storageBucketRetentionPolicyToHclTerraform; exports.storageBucketSoftDeletePolicyToTerraform = storageBucketSoftDeletePolicyToTerraform; exports.storageBucketSoftDeletePolicyToHclTerraform = storageBucketSoftDeletePolicyToHclTerraform; exports.storageBucketTimeoutsToTerraform = storageBucketTimeoutsToTerraform; exports.storageBucketTimeoutsToHclTerraform = storageBucketTimeoutsToHclTerraform; exports.storageBucketVersioningToTerraform = storageBucketVersioningToTerraform; exports.storageBucketVersioningToHclTerraform = storageBucketVersioningToHclTerraform; exports.storageBucketWebsiteToTerraform = storageBucketWebsiteToTerraform; exports.storageBucketWebsiteToHclTerraform = storageBucketWebsiteToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function storageBucketAutoclassToTerraform(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), terminal_storage_class: cdktf.stringToTerraform(struct.terminalStorageClass), }; } function storageBucketAutoclassToHclTerraform(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", }, terminal_storage_class: { value: cdktf.stringToHclTerraform(struct.terminalStorageClass), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketAutoclassOutputReference 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._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } if (this._terminalStorageClass !== undefined) { hasAnyValues = true; internalValueResult.terminalStorageClass = this._terminalStorageClass; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enabled = undefined; this._terminalStorageClass = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enabled = value.enabled; this._terminalStorageClass = value.terminalStorageClass; } } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } get terminalStorageClass() { return this.getStringAttribute('terminal_storage_class'); } set terminalStorageClass(value) { this._terminalStorageClass = value; } resetTerminalStorageClass() { this._terminalStorageClass = undefined; } // Temporarily expose input value. Use with caution. get terminalStorageClassInput() { return this._terminalStorageClass; } } exports.StorageBucketAutoclassOutputReference = StorageBucketAutoclassOutputReference; _a = JSII_RTTI_SYMBOL_1; StorageBucketAutoclassOutputReference[_a] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketAutoclassOutputReference", version: "16.3.0" }; function storageBucketCorsToTerraform(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 { max_age_seconds: cdktf.numberToTerraform(struct.maxAgeSeconds), method: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.method), origin: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.origin), response_header: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.responseHeader), }; } function storageBucketCorsToHclTerraform(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 = { max_age_seconds: { value: cdktf.numberToHclTerraform(struct.maxAgeSeconds), isBlock: false, type: "simple", storageClassType: "number", }, method: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.method), isBlock: false, type: "list", storageClassType: "stringList", }, origin: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.origin), isBlock: false, type: "list", storageClassType: "stringList", }, response_header: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.responseHeader), isBlock: false, type: "list", storageClassType: "stringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketCorsOutputReference 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._maxAgeSeconds !== undefined) { hasAnyValues = true; internalValueResult.maxAgeSeconds = this._maxAgeSeconds; } if (this._method !== undefined) { hasAnyValues = true; internalValueResult.method = this._method; } if (this._origin !== undefined) { hasAnyValues = true; internalValueResult.origin = this._origin; } if (this._responseHeader !== undefined) { hasAnyValues = true; internalValueResult.responseHeader = this._responseHeader; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._maxAgeSeconds = undefined; this._method = undefined; this._origin = undefined; this._responseHeader = 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._maxAgeSeconds = value.maxAgeSeconds; this._method = value.method; this._origin = value.origin; this._responseHeader = value.responseHeader; } } get maxAgeSeconds() { return this.getNumberAttribute('max_age_seconds'); } set maxAgeSeconds(value) { this._maxAgeSeconds = value; } resetMaxAgeSeconds() { this._maxAgeSeconds = undefined; } // Temporarily expose input value. Use with caution. get maxAgeSecondsInput() { return this._maxAgeSeconds; } get method() { return this.getListAttribute('method'); } set method(value) { this._method = value; } resetMethod() { this._method = undefined; } // Temporarily expose input value. Use with caution. get methodInput() { return this._method; } get origin() { return this.getListAttribute('origin'); } set origin(value) { this._origin = value; } resetOrigin() { this._origin = undefined; } // Temporarily expose input value. Use with caution. get originInput() { return this._origin; } get responseHeader() { return this.getListAttribute('response_header'); } set responseHeader(value) { this._responseHeader = value; } resetResponseHeader() { this._responseHeader = undefined; } // Temporarily expose input value. Use with caution. get responseHeaderInput() { return this._responseHeader; } } exports.StorageBucketCorsOutputReference = StorageBucketCorsOutputReference; _b = JSII_RTTI_SYMBOL_1; StorageBucketCorsOutputReference[_b] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketCorsOutputReference", version: "16.3.0" }; class StorageBucketCorsList 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 StorageBucketCorsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.StorageBucketCorsList = StorageBucketCorsList; _c = JSII_RTTI_SYMBOL_1; StorageBucketCorsList[_c] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketCorsList", version: "16.3.0" }; function storageBucketCustomPlacementConfigToTerraform(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 { data_locations: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.dataLocations), }; } function storageBucketCustomPlacementConfigToHclTerraform(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 = { data_locations: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.dataLocations), isBlock: false, type: "set", storageClassType: "stringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketCustomPlacementConfigOutputReference 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._dataLocations !== undefined) { hasAnyValues = true; internalValueResult.dataLocations = this._dataLocations; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._dataLocations = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._dataLocations = value.dataLocations; } } get dataLocations() { return cdktf.Fn.tolist(this.getListAttribute('data_locations')); } set dataLocations(value) { this._dataLocations = value; } // Temporarily expose input value. Use with caution. get dataLocationsInput() { return this._dataLocations; } } exports.StorageBucketCustomPlacementConfigOutputReference = StorageBucketCustomPlacementConfigOutputReference; _d = JSII_RTTI_SYMBOL_1; StorageBucketCustomPlacementConfigOutputReference[_d] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketCustomPlacementConfigOutputReference", version: "16.3.0" }; function storageBucketEncryptionToTerraform(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 { default_kms_key_name: cdktf.stringToTerraform(struct.defaultKmsKeyName), }; } function storageBucketEncryptionToHclTerraform(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 = { default_kms_key_name: { value: cdktf.stringToHclTerraform(struct.defaultKmsKeyName), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketEncryptionOutputReference 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._defaultKmsKeyName !== undefined) { hasAnyValues = true; internalValueResult.defaultKmsKeyName = this._defaultKmsKeyName; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._defaultKmsKeyName = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._defaultKmsKeyName = value.defaultKmsKeyName; } } get defaultKmsKeyName() { return this.getStringAttribute('default_kms_key_name'); } set defaultKmsKeyName(value) { this._defaultKmsKeyName = value; } // Temporarily expose input value. Use with caution. get defaultKmsKeyNameInput() { return this._defaultKmsKeyName; } } exports.StorageBucketEncryptionOutputReference = StorageBucketEncryptionOutputReference; _e = JSII_RTTI_SYMBOL_1; StorageBucketEncryptionOutputReference[_e] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketEncryptionOutputReference", version: "16.3.0" }; function storageBucketHierarchicalNamespaceToTerraform(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), }; } function storageBucketHierarchicalNamespaceToHclTerraform(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", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketHierarchicalNamespaceOutputReference 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._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enabled = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enabled = value.enabled; } } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } } exports.StorageBucketHierarchicalNamespaceOutputReference = StorageBucketHierarchicalNamespaceOutputReference; _f = JSII_RTTI_SYMBOL_1; StorageBucketHierarchicalNamespaceOutputReference[_f] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketHierarchicalNamespaceOutputReference", version: "16.3.0" }; function storageBucketIpFilterPublicNetworkSourceToTerraform(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 { allowed_ip_cidr_ranges: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedIpCidrRanges), }; } function storageBucketIpFilterPublicNetworkSourceToHclTerraform(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 = { allowed_ip_cidr_ranges: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedIpCidrRanges), isBlock: false, type: "list", storageClassType: "stringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketIpFilterPublicNetworkSourceOutputReference 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._allowedIpCidrRanges !== undefined) { hasAnyValues = true; internalValueResult.allowedIpCidrRanges = this._allowedIpCidrRanges; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._allowedIpCidrRanges = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._allowedIpCidrRanges = value.allowedIpCidrRanges; } } get allowedIpCidrRanges() { return this.getListAttribute('allowed_ip_cidr_ranges'); } set allowedIpCidrRanges(value) { this._allowedIpCidrRanges = value; } // Temporarily expose input value. Use with caution. get allowedIpCidrRangesInput() { return this._allowedIpCidrRanges; } } exports.StorageBucketIpFilterPublicNetworkSourceOutputReference = StorageBucketIpFilterPublicNetworkSourceOutputReference; _g = JSII_RTTI_SYMBOL_1; StorageBucketIpFilterPublicNetworkSourceOutputReference[_g] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketIpFilterPublicNetworkSourceOutputReference", version: "16.3.0" }; function storageBucketIpFilterVpcNetworkSourcesToTerraform(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 { allowed_ip_cidr_ranges: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedIpCidrRanges), network: cdktf.stringToTerraform(struct.network), }; } function storageBucketIpFilterVpcNetworkSourcesToHclTerraform(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 = { allowed_ip_cidr_ranges: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedIpCidrRanges), isBlock: false, type: "list", storageClassType: "stringList", }, network: { value: cdktf.stringToHclTerraform(struct.network), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketIpFilterVpcNetworkSourcesOutputReference 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._allowedIpCidrRanges !== undefined) { hasAnyValues = true; internalValueResult.allowedIpCidrRanges = this._allowedIpCidrRanges; } if (this._network !== undefined) { hasAnyValues = true; internalValueResult.network = this._network; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._allowedIpCidrRanges = undefined; this._network = 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._allowedIpCidrRanges = value.allowedIpCidrRanges; this._network = value.network; } } get allowedIpCidrRanges() { return this.getListAttribute('allowed_ip_cidr_ranges'); } set allowedIpCidrRanges(value) { this._allowedIpCidrRanges = value; } // Temporarily expose input value. Use with caution. get allowedIpCidrRangesInput() { return this._allowedIpCidrRanges; } get network() { return this.getStringAttribute('network'); } set network(value) { this._network = value; } // Temporarily expose input value. Use with caution. get networkInput() { return this._network; } } exports.StorageBucketIpFilterVpcNetworkSourcesOutputReference = StorageBucketIpFilterVpcNetworkSourcesOutputReference; _h = JSII_RTTI_SYMBOL_1; StorageBucketIpFilterVpcNetworkSourcesOutputReference[_h] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketIpFilterVpcNetworkSourcesOutputReference", version: "16.3.0" }; class StorageBucketIpFilterVpcNetworkSourcesList 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 StorageBucketIpFilterVpcNetworkSourcesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.StorageBucketIpFilterVpcNetworkSourcesList = StorageBucketIpFilterVpcNetworkSourcesList; _j = JSII_RTTI_SYMBOL_1; StorageBucketIpFilterVpcNetworkSourcesList[_j] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketIpFilterVpcNetworkSourcesList", version: "16.3.0" }; function storageBucketIpFilterToTerraform(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), public_network_source: storageBucketIpFilterPublicNetworkSourceToTerraform(struct.publicNetworkSource), vpc_network_sources: cdktf.listMapper(storageBucketIpFilterVpcNetworkSourcesToTerraform, true)(struct.vpcNetworkSources), }; } function storageBucketIpFilterToHclTerraform(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", }, public_network_source: { value: storageBucketIpFilterPublicNetworkSourceToHclTerraform(struct.publicNetworkSource), isBlock: true, type: "list", storageClassType: "StorageBucketIpFilterPublicNetworkSourceList", }, vpc_network_sources: { value: cdktf.listMapperHcl(storageBucketIpFilterVpcNetworkSourcesToHclTerraform, true)(struct.vpcNetworkSources), isBlock: true, type: "list", storageClassType: "StorageBucketIpFilterVpcNetworkSourcesList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketIpFilterOutputReference 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; // public_network_source - computed: false, optional: true, required: false this._publicNetworkSource = new StorageBucketIpFilterPublicNetworkSourceOutputReference(this, "public_network_source"); // vpc_network_sources - computed: false, optional: true, required: false this._vpcNetworkSources = new StorageBucketIpFilterVpcNetworkSourcesList(this, "vpc_network_sources", false); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._mode !== undefined) { hasAnyValues = true; internalValueResult.mode = this._mode; } if (this._publicNetworkSource?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.publicNetworkSource = this._publicNetworkSource?.internalValue; } if (this._vpcNetworkSources?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.vpcNetworkSources = this._vpcNetworkSources?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._mode = undefined; this._publicNetworkSource.internalValue = undefined; this._vpcNetworkSources.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._mode = value.mode; this._publicNetworkSource.internalValue = value.publicNetworkSource; this._vpcNetworkSources.internalValue = value.vpcNetworkSources; } } get mode() { return this.getStringAttribute('mode'); } set mode(value) { this._mode = value; } // Temporarily expose input value. Use with caution. get modeInput() { return this._mode; } get publicNetworkSource() { return this._publicNetworkSource; } putPublicNetworkSource(value) { this._publicNetworkSource.internalValue = value; } resetPublicNetworkSource() { this._publicNetworkSource.internalValue = undefined; } // Temporarily expose input value. Use with caution. get publicNetworkSourceInput() { return this._publicNetworkSource.internalValue; } get vpcNetworkSources() { return this._vpcNetworkSources; } putVpcNetworkSources(value) { this._vpcNetworkSources.internalValue = value; } resetVpcNetworkSources() { this._vpcNetworkSources.internalValue = undefined; } // Temporarily expose input value. Use with caution. get vpcNetworkSourcesInput() { return this._vpcNetworkSources.internalValue; } } exports.StorageBucketIpFilterOutputReference = StorageBucketIpFilterOutputReference; _k = JSII_RTTI_SYMBOL_1; StorageBucketIpFilterOutputReference[_k] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketIpFilterOutputReference", version: "16.3.0" }; function storageBucketLifecycleRuleActionToTerraform(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 { storage_class: cdktf.stringToTerraform(struct.storageClass), type: cdktf.stringToTerraform(struct.type), }; } function storageBucketLifecycleRuleActionToHclTerraform(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 = { storage_class: { value: cdktf.stringToHclTerraform(struct.storageClass), isBlock: false, type: "simple", storageClassType: "string", }, type: { value: cdktf.stringToHclTerraform(struct.type), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketLifecycleRuleActionOutputReference 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._storageClass !== undefined) { hasAnyValues = true; internalValueResult.storageClass = this._storageClass; } if (this._type !== undefined) { hasAnyValues = true; internalValueResult.type = this._type; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._storageClass = undefined; this._type = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._storageClass = value.storageClass; this._type = value.type; } } get storageClass() { return this.getStringAttribute('storage_class'); } set storageClass(value) { this._storageClass = value; } resetStorageClass() { this._storageClass = undefined; } // Temporarily expose input value. Use with caution. get storageClassInput() { return this._storageClass; } get type() { return this.getStringAttribute('type'); } set type(value) { this._type = value; } // Temporarily expose input value. Use with caution. get typeInput() { return this._type; } } exports.StorageBucketLifecycleRuleActionOutputReference = StorageBucketLifecycleRuleActionOutputReference; _l = JSII_RTTI_SYMBOL_1; StorageBucketLifecycleRuleActionOutputReference[_l] = { fqn: "@cdktf/provider-google.storageBucket.StorageBucketLifecycleRuleActionOutputReference", version: "16.3.0" }; function storageBucketLifecycleRuleConditionToTerraform(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 { age: cdktf.numberToTerraform(struct.age), created_before: cdktf.stringToTerraform(struct.createdBefore), custom_time_before: cdktf.stringToTerraform(struct.customTimeBefore), days_since_custom_time: cdktf.numberToTerraform(struct.daysSinceCustomTime), days_since_noncurrent_time: cdktf.numberToTerraform(struct.daysSinceNoncurrentTime), matches_prefix: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.matchesPrefix), matches_storage_class: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.matchesStorageClass), matches_suffix: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.matchesSuffix), noncurrent_time_before: cdktf.stringToTerraform(struct.noncurrentTimeBefore), num_newer_versions: cdktf.numberToTerraform(struct.numNewerVersions), send_age_if_zero: cdktf.booleanToTerraform(struct.sendAgeIfZero), send_days_since_custom_time_if_zero: cdktf.booleanToTerraform(struct.sendDaysSinceCustomTimeIfZero), send_days_since_noncurrent_time_if_zero: cdktf.booleanToTerraform(struct.sendDaysSinceNoncurrentTimeIfZero), send_num_newer_versions_if_zero: cdktf.booleanToTerraform(struct.sendNumNewerVersionsIfZero), with_state: cdktf.stringToTerraform(struct.withState), }; } function storageBucketLifecycleRuleConditionToHclTerraform(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 = { age: { value: cdktf.numberToHclTerraform(struct.age), isBlock: false, type: "simple", storageClassType: "number", }, created_before: { value: cdktf.stringToHclTerraform(struct.createdBefore), isBlock: false, type: "simple", storageClassType: "string", }, custom_time_before: { value: cdktf.stringToHclTerraform(struct.customTimeBefore), isBlock: false, type: "simple", storageClassType: "string", }, days_since_custom_time: { value: cdktf.numberToHclTerraform(struct.daysSinceCustomTime), isBlock: false, type: "simple", storageClassType: "number", }, days_since_noncurrent_time: { value: cdktf.numberToHclTerraform(struct.daysSinceNoncurrentTime), isBlock: false, type: "simple", storageClassType: "number", }, matches_prefix: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.matchesPrefix), isBlock: false, type: "list", storageClassType: "stringList", }, matches_storage_class: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.matchesStorageClass), isBlock: false, type: "list", storageClassType: "stringList", }, matches_suffix: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.matchesSuffix), isBlock: false, type: "list", storageClassType: "stringList", }, noncurrent_time_before: { value: cdktf.stringToHclTerraform(struct.noncurrentTimeBefore), isBlock: false, type: "simple", storageClassType: "string", }, num_newer_versions: { value: cdktf.numberToHclTerraform(struct.numNewerVersions), isBlock: false, type: "simple", storageClassType: "number", }, send_age_if_zero: { value: cdktf.booleanToHclTerraform(struct.sendAgeIfZero), isBlock: false, type: "simple", storageClassType: "boolean", }, send_days_since_custom_time_if_zero: { value: cdktf.booleanToHclTerraform(struct.sendDaysSinceCustomTimeIfZero), isBlock: false, type: "simple", storageClassType: "boolean", }, send_days_since_noncurrent_time_if_zero: { value: cdktf.booleanToHclTerraform(struct.sendDaysSinceNoncurrentTimeIfZero), isBlock: false, type: "simple", storageClassType: "boolean", }, send_num_newer_versions_if_zero: { value: cdktf.booleanToHclTerraform(struct.sendNumNewerVersionsIfZero), isBlock: false, type: "simple", storageClassType: "boolean", }, with_state: { value: cdktf.stringToHclTerraform(struct.withState), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class StorageBucketLifecycleRuleConditionOutputReference 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._age !== undefined) { hasAnyValues = true; internalValueResult.age = this._age; } if (this._createdBefore !== undefined) { hasAnyValues = true; internalValueResult.createdBefore = this._createdBefore; } if (this._customTimeBefore !== undefined) { hasAnyValues = true; internalValueResult.customTimeBefore = this._customTimeBefore; } if (this._daysSinceCustomTime !== undefined) { hasAnyValues = true; internalValueResult.daysSinceCustomTime = this._daysSinceCustomTime; } if (this._daysSinceNoncurrentTime !== undefined) { hasAnyValues = true; internalValueResult.daysSinceNoncurrentTime = this._daysSinceNoncurrentTime; } if (this._matchesPrefix !== undefined) { hasAnyValues = true; internalValueResult.matchesPrefix = this._matchesPrefix; } if (this._matchesStorageClass !== undefined) { hasAnyValues = true; internalValueResult.matchesStorageClass = this._matchesStorageClass; } if (this._matchesSuffix !== undefined) { hasAnyValues = true; internalValueResult.matchesSuffix = this._matchesSuffix; } if (this._noncurrentTimeBefore !== undefined) { hasAnyValues = true; internalValueResult.noncurrentTimeBefore = this._noncurrentTimeBefore; } if (this._numNewerVersions !== undefined) { hasAnyValues = true; internalValueResult.numNewerVersions = this._numNewerVersions; } if (this._sendAgeIfZero !== undefined) { hasAnyValues = true; internalValueResult.sendAgeIfZero = this._sendAgeIfZero; } if (this._sendDaysSinceCustomTimeIfZero !== undefined) { hasAnyValues = true; internalValueResult.sendDaysSinceCustomTimeIfZero = this._sendDaysSinceCustomTimeIfZero; } if (this._sendDaysSinceNoncurrentTimeIfZero !== undefined) { hasAnyValues = true; internalValueResult.sendDaysSinceNoncurrentTimeIfZero = this._sendDaysSinceNoncurrentTimeIfZero; }