UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

1,064 lines (1,063 loc) 635 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; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutToHclTerraform = exports.computeRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutToTerraform = exports.ComputeRegionInstanceTemplateReservationAffinityOutputReference = exports.computeRegionInstanceTemplateReservationAffinityToHclTerraform = exports.computeRegionInstanceTemplateReservationAffinityToTerraform = exports.ComputeRegionInstanceTemplateReservationAffinitySpecificReservationOutputReference = exports.computeRegionInstanceTemplateReservationAffinitySpecificReservationToHclTerraform = exports.computeRegionInstanceTemplateReservationAffinitySpecificReservationToTerraform = exports.ComputeRegionInstanceTemplateNetworkPerformanceConfigOutputReference = exports.computeRegionInstanceTemplateNetworkPerformanceConfigToHclTerraform = exports.computeRegionInstanceTemplateNetworkPerformanceConfigToTerraform = exports.ComputeRegionInstanceTemplateNetworkInterfaceList = exports.ComputeRegionInstanceTemplateNetworkInterfaceOutputReference = exports.computeRegionInstanceTemplateNetworkInterfaceToHclTerraform = exports.computeRegionInstanceTemplateNetworkInterfaceToTerraform = exports.ComputeRegionInstanceTemplateNetworkInterfaceIpv6AccessConfigList = exports.ComputeRegionInstanceTemplateNetworkInterfaceIpv6AccessConfigOutputReference = exports.computeRegionInstanceTemplateNetworkInterfaceIpv6AccessConfigToHclTerraform = exports.computeRegionInstanceTemplateNetworkInterfaceIpv6AccessConfigToTerraform = exports.ComputeRegionInstanceTemplateNetworkInterfaceAliasIpRangeList = exports.ComputeRegionInstanceTemplateNetworkInterfaceAliasIpRangeOutputReference = exports.computeRegionInstanceTemplateNetworkInterfaceAliasIpRangeToHclTerraform = exports.computeRegionInstanceTemplateNetworkInterfaceAliasIpRangeToTerraform = exports.ComputeRegionInstanceTemplateNetworkInterfaceAccessConfigList = exports.ComputeRegionInstanceTemplateNetworkInterfaceAccessConfigOutputReference = exports.computeRegionInstanceTemplateNetworkInterfaceAccessConfigToHclTerraform = exports.computeRegionInstanceTemplateNetworkInterfaceAccessConfigToTerraform = exports.ComputeRegionInstanceTemplateGuestAcceleratorList = exports.ComputeRegionInstanceTemplateGuestAcceleratorOutputReference = exports.computeRegionInstanceTemplateGuestAcceleratorToHclTerraform = exports.computeRegionInstanceTemplateGuestAcceleratorToTerraform = exports.ComputeRegionInstanceTemplateDiskList = exports.ComputeRegionInstanceTemplateDiskOutputReference = exports.computeRegionInstanceTemplateDiskToHclTerraform = exports.computeRegionInstanceTemplateDiskToTerraform = exports.ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference = exports.computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToHclTerraform = exports.computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToTerraform = exports.ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference = exports.computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToHclTerraform = exports.computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToTerraform = exports.ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference = exports.computeRegionInstanceTemplateDiskDiskEncryptionKeyToHclTerraform = exports.computeRegionInstanceTemplateDiskDiskEncryptionKeyToTerraform = exports.ComputeRegionInstanceTemplateConfidentialInstanceConfigOutputReference = exports.computeRegionInstanceTemplateConfidentialInstanceConfigToHclTerraform = exports.computeRegionInstanceTemplateConfidentialInstanceConfigToTerraform = exports.ComputeRegionInstanceTemplateAdvancedMachineFeaturesOutputReference = exports.computeRegionInstanceTemplateAdvancedMachineFeaturesToHclTerraform = exports.computeRegionInstanceTemplateAdvancedMachineFeaturesToTerraform = void 0; exports.ComputeRegionInstanceTemplate = exports.ComputeRegionInstanceTemplateTimeoutsOutputReference = exports.computeRegionInstanceTemplateTimeoutsToHclTerraform = exports.computeRegionInstanceTemplateTimeoutsToTerraform = exports.ComputeRegionInstanceTemplateShieldedInstanceConfigOutputReference = exports.computeRegionInstanceTemplateShieldedInstanceConfigToHclTerraform = exports.computeRegionInstanceTemplateShieldedInstanceConfigToTerraform = exports.ComputeRegionInstanceTemplateServiceAccountOutputReference = exports.computeRegionInstanceTemplateServiceAccountToHclTerraform = exports.computeRegionInstanceTemplateServiceAccountToTerraform = exports.ComputeRegionInstanceTemplateSchedulingOutputReference = exports.computeRegionInstanceTemplateSchedulingToHclTerraform = exports.computeRegionInstanceTemplateSchedulingToTerraform = exports.ComputeRegionInstanceTemplateSchedulingOnInstanceStopActionOutputReference = exports.computeRegionInstanceTemplateSchedulingOnInstanceStopActionToHclTerraform = exports.computeRegionInstanceTemplateSchedulingOnInstanceStopActionToTerraform = exports.ComputeRegionInstanceTemplateSchedulingNodeAffinitiesList = exports.ComputeRegionInstanceTemplateSchedulingNodeAffinitiesOutputReference = exports.computeRegionInstanceTemplateSchedulingNodeAffinitiesToHclTerraform = exports.computeRegionInstanceTemplateSchedulingNodeAffinitiesToTerraform = exports.ComputeRegionInstanceTemplateSchedulingMaxRunDurationOutputReference = exports.computeRegionInstanceTemplateSchedulingMaxRunDurationToHclTerraform = exports.computeRegionInstanceTemplateSchedulingMaxRunDurationToTerraform = exports.ComputeRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutList = exports.ComputeRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeoutOutputReference = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function computeRegionInstanceTemplateAdvancedMachineFeaturesToTerraform(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_nested_virtualization: cdktf.booleanToTerraform(struct.enableNestedVirtualization), enable_uefi_networking: cdktf.booleanToTerraform(struct.enableUefiNetworking), performance_monitoring_unit: cdktf.stringToTerraform(struct.performanceMonitoringUnit), threads_per_core: cdktf.numberToTerraform(struct.threadsPerCore), turbo_mode: cdktf.stringToTerraform(struct.turboMode), visible_core_count: cdktf.numberToTerraform(struct.visibleCoreCount), }; } exports.computeRegionInstanceTemplateAdvancedMachineFeaturesToTerraform = computeRegionInstanceTemplateAdvancedMachineFeaturesToTerraform; function computeRegionInstanceTemplateAdvancedMachineFeaturesToHclTerraform(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_nested_virtualization: { value: cdktf.booleanToHclTerraform(struct.enableNestedVirtualization), isBlock: false, type: "simple", storageClassType: "boolean", }, enable_uefi_networking: { value: cdktf.booleanToHclTerraform(struct.enableUefiNetworking), isBlock: false, type: "simple", storageClassType: "boolean", }, performance_monitoring_unit: { value: cdktf.stringToHclTerraform(struct.performanceMonitoringUnit), isBlock: false, type: "simple", storageClassType: "string", }, threads_per_core: { value: cdktf.numberToHclTerraform(struct.threadsPerCore), isBlock: false, type: "simple", storageClassType: "number", }, turbo_mode: { value: cdktf.stringToHclTerraform(struct.turboMode), isBlock: false, type: "simple", storageClassType: "string", }, visible_core_count: { value: cdktf.numberToHclTerraform(struct.visibleCoreCount), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.computeRegionInstanceTemplateAdvancedMachineFeaturesToHclTerraform = computeRegionInstanceTemplateAdvancedMachineFeaturesToHclTerraform; class ComputeRegionInstanceTemplateAdvancedMachineFeaturesOutputReference 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._enableNestedVirtualization !== undefined) { hasAnyValues = true; internalValueResult.enableNestedVirtualization = this._enableNestedVirtualization; } if (this._enableUefiNetworking !== undefined) { hasAnyValues = true; internalValueResult.enableUefiNetworking = this._enableUefiNetworking; } if (this._performanceMonitoringUnit !== undefined) { hasAnyValues = true; internalValueResult.performanceMonitoringUnit = this._performanceMonitoringUnit; } if (this._threadsPerCore !== undefined) { hasAnyValues = true; internalValueResult.threadsPerCore = this._threadsPerCore; } if (this._turboMode !== undefined) { hasAnyValues = true; internalValueResult.turboMode = this._turboMode; } if (this._visibleCoreCount !== undefined) { hasAnyValues = true; internalValueResult.visibleCoreCount = this._visibleCoreCount; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enableNestedVirtualization = undefined; this._enableUefiNetworking = undefined; this._performanceMonitoringUnit = undefined; this._threadsPerCore = undefined; this._turboMode = undefined; this._visibleCoreCount = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enableNestedVirtualization = value.enableNestedVirtualization; this._enableUefiNetworking = value.enableUefiNetworking; this._performanceMonitoringUnit = value.performanceMonitoringUnit; this._threadsPerCore = value.threadsPerCore; this._turboMode = value.turboMode; this._visibleCoreCount = value.visibleCoreCount; } } get enableNestedVirtualization() { return this.getBooleanAttribute('enable_nested_virtualization'); } set enableNestedVirtualization(value) { this._enableNestedVirtualization = value; } resetEnableNestedVirtualization() { this._enableNestedVirtualization = undefined; } // Temporarily expose input value. Use with caution. get enableNestedVirtualizationInput() { return this._enableNestedVirtualization; } get enableUefiNetworking() { return this.getBooleanAttribute('enable_uefi_networking'); } set enableUefiNetworking(value) { this._enableUefiNetworking = value; } resetEnableUefiNetworking() { this._enableUefiNetworking = undefined; } // Temporarily expose input value. Use with caution. get enableUefiNetworkingInput() { return this._enableUefiNetworking; } get performanceMonitoringUnit() { return this.getStringAttribute('performance_monitoring_unit'); } set performanceMonitoringUnit(value) { this._performanceMonitoringUnit = value; } resetPerformanceMonitoringUnit() { this._performanceMonitoringUnit = undefined; } // Temporarily expose input value. Use with caution. get performanceMonitoringUnitInput() { return this._performanceMonitoringUnit; } get threadsPerCore() { return this.getNumberAttribute('threads_per_core'); } set threadsPerCore(value) { this._threadsPerCore = value; } resetThreadsPerCore() { this._threadsPerCore = undefined; } // Temporarily expose input value. Use with caution. get threadsPerCoreInput() { return this._threadsPerCore; } get turboMode() { return this.getStringAttribute('turbo_mode'); } set turboMode(value) { this._turboMode = value; } resetTurboMode() { this._turboMode = undefined; } // Temporarily expose input value. Use with caution. get turboModeInput() { return this._turboMode; } get visibleCoreCount() { return this.getNumberAttribute('visible_core_count'); } set visibleCoreCount(value) { this._visibleCoreCount = value; } resetVisibleCoreCount() { this._visibleCoreCount = undefined; } // Temporarily expose input value. Use with caution. get visibleCoreCountInput() { return this._visibleCoreCount; } } exports.ComputeRegionInstanceTemplateAdvancedMachineFeaturesOutputReference = ComputeRegionInstanceTemplateAdvancedMachineFeaturesOutputReference; _a = JSII_RTTI_SYMBOL_1; ComputeRegionInstanceTemplateAdvancedMachineFeaturesOutputReference[_a] = { fqn: "@cdktf/provider-google.computeRegionInstanceTemplate.ComputeRegionInstanceTemplateAdvancedMachineFeaturesOutputReference", version: "14.12.0" }; function computeRegionInstanceTemplateConfidentialInstanceConfigToTerraform(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 { confidential_instance_type: cdktf.stringToTerraform(struct.confidentialInstanceType), enable_confidential_compute: cdktf.booleanToTerraform(struct.enableConfidentialCompute), }; } exports.computeRegionInstanceTemplateConfidentialInstanceConfigToTerraform = computeRegionInstanceTemplateConfidentialInstanceConfigToTerraform; function computeRegionInstanceTemplateConfidentialInstanceConfigToHclTerraform(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 = { confidential_instance_type: { value: cdktf.stringToHclTerraform(struct.confidentialInstanceType), isBlock: false, type: "simple", storageClassType: "string", }, enable_confidential_compute: { value: cdktf.booleanToHclTerraform(struct.enableConfidentialCompute), isBlock: false, type: "simple", storageClassType: "boolean", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.computeRegionInstanceTemplateConfidentialInstanceConfigToHclTerraform = computeRegionInstanceTemplateConfidentialInstanceConfigToHclTerraform; class ComputeRegionInstanceTemplateConfidentialInstanceConfigOutputReference 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._confidentialInstanceType !== undefined) { hasAnyValues = true; internalValueResult.confidentialInstanceType = this._confidentialInstanceType; } if (this._enableConfidentialCompute !== undefined) { hasAnyValues = true; internalValueResult.enableConfidentialCompute = this._enableConfidentialCompute; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._confidentialInstanceType = undefined; this._enableConfidentialCompute = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._confidentialInstanceType = value.confidentialInstanceType; this._enableConfidentialCompute = value.enableConfidentialCompute; } } get confidentialInstanceType() { return this.getStringAttribute('confidential_instance_type'); } set confidentialInstanceType(value) { this._confidentialInstanceType = value; } resetConfidentialInstanceType() { this._confidentialInstanceType = undefined; } // Temporarily expose input value. Use with caution. get confidentialInstanceTypeInput() { return this._confidentialInstanceType; } get enableConfidentialCompute() { return this.getBooleanAttribute('enable_confidential_compute'); } set enableConfidentialCompute(value) { this._enableConfidentialCompute = value; } resetEnableConfidentialCompute() { this._enableConfidentialCompute = undefined; } // Temporarily expose input value. Use with caution. get enableConfidentialComputeInput() { return this._enableConfidentialCompute; } } exports.ComputeRegionInstanceTemplateConfidentialInstanceConfigOutputReference = ComputeRegionInstanceTemplateConfidentialInstanceConfigOutputReference; _b = JSII_RTTI_SYMBOL_1; ComputeRegionInstanceTemplateConfidentialInstanceConfigOutputReference[_b] = { fqn: "@cdktf/provider-google.computeRegionInstanceTemplate.ComputeRegionInstanceTemplateConfidentialInstanceConfigOutputReference", version: "14.12.0" }; function computeRegionInstanceTemplateDiskDiskEncryptionKeyToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { kms_key_self_link: cdktf.stringToTerraform(struct.kmsKeySelfLink), }; } exports.computeRegionInstanceTemplateDiskDiskEncryptionKeyToTerraform = computeRegionInstanceTemplateDiskDiskEncryptionKeyToTerraform; function computeRegionInstanceTemplateDiskDiskEncryptionKeyToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { kms_key_self_link: { value: cdktf.stringToHclTerraform(struct.kmsKeySelfLink), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.computeRegionInstanceTemplateDiskDiskEncryptionKeyToHclTerraform = computeRegionInstanceTemplateDiskDiskEncryptionKeyToHclTerraform; class ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference 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._kmsKeySelfLink !== undefined) { hasAnyValues = true; internalValueResult.kmsKeySelfLink = this._kmsKeySelfLink; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._kmsKeySelfLink = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._kmsKeySelfLink = value.kmsKeySelfLink; } } get kmsKeySelfLink() { return this.getStringAttribute('kms_key_self_link'); } set kmsKeySelfLink(value) { this._kmsKeySelfLink = value; } // Temporarily expose input value. Use with caution. get kmsKeySelfLinkInput() { return this._kmsKeySelfLink; } } exports.ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference = ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference; _c = JSII_RTTI_SYMBOL_1; ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference[_c] = { fqn: "@cdktf/provider-google.computeRegionInstanceTemplate.ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference", version: "14.12.0" }; function computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { kms_key_self_link: cdktf.stringToTerraform(struct.kmsKeySelfLink), kms_key_service_account: cdktf.stringToTerraform(struct.kmsKeyServiceAccount), }; } exports.computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToTerraform = computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToTerraform; function computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { kms_key_self_link: { value: cdktf.stringToHclTerraform(struct.kmsKeySelfLink), isBlock: false, type: "simple", storageClassType: "string", }, kms_key_service_account: { value: cdktf.stringToHclTerraform(struct.kmsKeyServiceAccount), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToHclTerraform = computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToHclTerraform; class ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference 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._kmsKeySelfLink !== undefined) { hasAnyValues = true; internalValueResult.kmsKeySelfLink = this._kmsKeySelfLink; } if (this._kmsKeyServiceAccount !== undefined) { hasAnyValues = true; internalValueResult.kmsKeyServiceAccount = this._kmsKeyServiceAccount; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._kmsKeySelfLink = undefined; this._kmsKeyServiceAccount = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._kmsKeySelfLink = value.kmsKeySelfLink; this._kmsKeyServiceAccount = value.kmsKeyServiceAccount; } } get kmsKeySelfLink() { return this.getStringAttribute('kms_key_self_link'); } set kmsKeySelfLink(value) { this._kmsKeySelfLink = value; } // Temporarily expose input value. Use with caution. get kmsKeySelfLinkInput() { return this._kmsKeySelfLink; } get kmsKeyServiceAccount() { return this.getStringAttribute('kms_key_service_account'); } set kmsKeyServiceAccount(value) { this._kmsKeyServiceAccount = value; } resetKmsKeyServiceAccount() { this._kmsKeyServiceAccount = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyServiceAccountInput() { return this._kmsKeyServiceAccount; } } exports.ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference = ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference; _d = JSII_RTTI_SYMBOL_1; ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference[_d] = { fqn: "@cdktf/provider-google.computeRegionInstanceTemplate.ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference", version: "14.12.0" }; function computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { kms_key_self_link: cdktf.stringToTerraform(struct.kmsKeySelfLink), kms_key_service_account: cdktf.stringToTerraform(struct.kmsKeyServiceAccount), }; } exports.computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToTerraform = computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToTerraform; function computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { kms_key_self_link: { value: cdktf.stringToHclTerraform(struct.kmsKeySelfLink), isBlock: false, type: "simple", storageClassType: "string", }, kms_key_service_account: { value: cdktf.stringToHclTerraform(struct.kmsKeyServiceAccount), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToHclTerraform = computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToHclTerraform; class ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference 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._kmsKeySelfLink !== undefined) { hasAnyValues = true; internalValueResult.kmsKeySelfLink = this._kmsKeySelfLink; } if (this._kmsKeyServiceAccount !== undefined) { hasAnyValues = true; internalValueResult.kmsKeyServiceAccount = this._kmsKeyServiceAccount; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._kmsKeySelfLink = undefined; this._kmsKeyServiceAccount = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._kmsKeySelfLink = value.kmsKeySelfLink; this._kmsKeyServiceAccount = value.kmsKeyServiceAccount; } } get kmsKeySelfLink() { return this.getStringAttribute('kms_key_self_link'); } set kmsKeySelfLink(value) { this._kmsKeySelfLink = value; } // Temporarily expose input value. Use with caution. get kmsKeySelfLinkInput() { return this._kmsKeySelfLink; } get kmsKeyServiceAccount() { return this.getStringAttribute('kms_key_service_account'); } set kmsKeyServiceAccount(value) { this._kmsKeyServiceAccount = value; } resetKmsKeyServiceAccount() { this._kmsKeyServiceAccount = undefined; } // Temporarily expose input value. Use with caution. get kmsKeyServiceAccountInput() { return this._kmsKeyServiceAccount; } } exports.ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference = ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference; _e = JSII_RTTI_SYMBOL_1; ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference[_e] = { fqn: "@cdktf/provider-google.computeRegionInstanceTemplate.ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference", version: "14.12.0" }; function computeRegionInstanceTemplateDiskToTerraform(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_delete: cdktf.booleanToTerraform(struct.autoDelete), boot: cdktf.booleanToTerraform(struct.boot), device_name: cdktf.stringToTerraform(struct.deviceName), disk_name: cdktf.stringToTerraform(struct.diskName), disk_size_gb: cdktf.numberToTerraform(struct.diskSizeGb), disk_type: cdktf.stringToTerraform(struct.diskType), interface: cdktf.stringToTerraform(struct.interface), labels: cdktf.hashMapper(cdktf.stringToTerraform)(struct.labels), mode: cdktf.stringToTerraform(struct.mode), provisioned_iops: cdktf.numberToTerraform(struct.provisionedIops), provisioned_throughput: cdktf.numberToTerraform(struct.provisionedThroughput), resource_manager_tags: cdktf.hashMapper(cdktf.stringToTerraform)(struct.resourceManagerTags), resource_policies: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.resourcePolicies), source: cdktf.stringToTerraform(struct.source), source_image: cdktf.stringToTerraform(struct.sourceImage), source_snapshot: cdktf.stringToTerraform(struct.sourceSnapshot), type: cdktf.stringToTerraform(struct.type), disk_encryption_key: computeRegionInstanceTemplateDiskDiskEncryptionKeyToTerraform(struct.diskEncryptionKey), source_image_encryption_key: computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToTerraform(struct.sourceImageEncryptionKey), source_snapshot_encryption_key: computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToTerraform(struct.sourceSnapshotEncryptionKey), }; } exports.computeRegionInstanceTemplateDiskToTerraform = computeRegionInstanceTemplateDiskToTerraform; function computeRegionInstanceTemplateDiskToHclTerraform(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_delete: { value: cdktf.booleanToHclTerraform(struct.autoDelete), isBlock: false, type: "simple", storageClassType: "boolean", }, boot: { value: cdktf.booleanToHclTerraform(struct.boot), isBlock: false, type: "simple", storageClassType: "boolean", }, device_name: { value: cdktf.stringToHclTerraform(struct.deviceName), isBlock: false, type: "simple", storageClassType: "string", }, disk_name: { value: cdktf.stringToHclTerraform(struct.diskName), isBlock: false, type: "simple", storageClassType: "string", }, disk_size_gb: { value: cdktf.numberToHclTerraform(struct.diskSizeGb), isBlock: false, type: "simple", storageClassType: "number", }, disk_type: { value: cdktf.stringToHclTerraform(struct.diskType), isBlock: false, type: "simple", storageClassType: "string", }, interface: { value: cdktf.stringToHclTerraform(struct.interface), isBlock: false, type: "simple", storageClassType: "string", }, labels: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.labels), isBlock: false, type: "map", storageClassType: "stringMap", }, mode: { value: cdktf.stringToHclTerraform(struct.mode), isBlock: false, type: "simple", storageClassType: "string", }, provisioned_iops: { value: cdktf.numberToHclTerraform(struct.provisionedIops), isBlock: false, type: "simple", storageClassType: "number", }, provisioned_throughput: { value: cdktf.numberToHclTerraform(struct.provisionedThroughput), isBlock: false, type: "simple", storageClassType: "number", }, resource_manager_tags: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.resourceManagerTags), isBlock: false, type: "map", storageClassType: "stringMap", }, resource_policies: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.resourcePolicies), isBlock: false, type: "list", storageClassType: "stringList", }, source: { value: cdktf.stringToHclTerraform(struct.source), isBlock: false, type: "simple", storageClassType: "string", }, source_image: { value: cdktf.stringToHclTerraform(struct.sourceImage), isBlock: false, type: "simple", storageClassType: "string", }, source_snapshot: { value: cdktf.stringToHclTerraform(struct.sourceSnapshot), isBlock: false, type: "simple", storageClassType: "string", }, type: { value: cdktf.stringToHclTerraform(struct.type), isBlock: false, type: "simple", storageClassType: "string", }, disk_encryption_key: { value: computeRegionInstanceTemplateDiskDiskEncryptionKeyToHclTerraform(struct.diskEncryptionKey), isBlock: true, type: "list", storageClassType: "ComputeRegionInstanceTemplateDiskDiskEncryptionKeyList", }, source_image_encryption_key: { value: computeRegionInstanceTemplateDiskSourceImageEncryptionKeyToHclTerraform(struct.sourceImageEncryptionKey), isBlock: true, type: "list", storageClassType: "ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyList", }, source_snapshot_encryption_key: { value: computeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyToHclTerraform(struct.sourceSnapshotEncryptionKey), isBlock: true, type: "list", storageClassType: "ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.computeRegionInstanceTemplateDiskToHclTerraform = computeRegionInstanceTemplateDiskToHclTerraform; class ComputeRegionInstanceTemplateDiskOutputReference 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; // disk_encryption_key - computed: false, optional: true, required: false this._diskEncryptionKey = new ComputeRegionInstanceTemplateDiskDiskEncryptionKeyOutputReference(this, "disk_encryption_key"); // source_image_encryption_key - computed: false, optional: true, required: false this._sourceImageEncryptionKey = new ComputeRegionInstanceTemplateDiskSourceImageEncryptionKeyOutputReference(this, "source_image_encryption_key"); // source_snapshot_encryption_key - computed: false, optional: true, required: false this._sourceSnapshotEncryptionKey = new ComputeRegionInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference(this, "source_snapshot_encryption_key"); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._autoDelete !== undefined) { hasAnyValues = true; internalValueResult.autoDelete = this._autoDelete; } if (this._boot !== undefined) { hasAnyValues = true; internalValueResult.boot = this._boot; } if (this._deviceName !== undefined) { hasAnyValues = true; internalValueResult.deviceName = this._deviceName; } if (this._diskName !== undefined) { hasAnyValues = true; internalValueResult.diskName = this._diskName; } if (this._diskSizeGb !== undefined) { hasAnyValues = true; internalValueResult.diskSizeGb = this._diskSizeGb; } if (this._diskType !== undefined) { hasAnyValues = true; internalValueResult.diskType = this._diskType; } if (this._interface !== undefined) { hasAnyValues = true; internalValueResult.interface = this._interface; } if (this._labels !== undefined) { hasAnyValues = true; internalValueResult.labels = this._labels; } if (this._mode !== undefined) { hasAnyValues = true; internalValueResult.mode = this._mode; } if (this._provisionedIops !== undefined) { hasAnyValues = true; internalValueResult.provisionedIops = this._provisionedIops; } if (this._provisionedThroughput !== undefined) { hasAnyValues = true; internalValueResult.provisionedThroughput = this._provisionedThroughput; } if (this._resourceManagerTags !== undefined) { hasAnyValues = true; internalValueResult.resourceManagerTags = this._resourceManagerTags; } if (this._resourcePolicies !== undefined) { hasAnyValues = true; internalValueResult.resourcePolicies = this._resourcePolicies; } if (this._source !== undefined) { hasAnyValues = true; internalValueResult.source = this._source; } if (this._sourceImage !== undefined) { hasAnyValues = true; internalValueResult.sourceImage = this._sourceImage; } if (this._sourceSnapshot !== undefined) { hasAnyValues = true; internalValueResult.sourceSnapshot = this._sourceSnapshot; } if (this._type !== undefined) { hasAnyValues = true; internalValueResult.type = this._type; } if (this._diskEncryptionKey?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.diskEncryptionKey = this._diskEncryptionKey?.internalValue; } if (this._sourceImageEncryptionKey?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.sourceImageEncryptionKey = this._sourceImageEncryptionKey?.internalValue; } if (this._sourceSnapshotEncryptionKey?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.sourceSnapshotEncryptionKey = this._sourceSnapshotEncryptionKey?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._autoDelete = undefined; this._boot = undefined; this._deviceName = undefined; this._diskName = undefined; this._diskSizeGb = undefined; this._diskType = undefined; this._interface = undefined; this._labels = undefined; this._mode = undefined; this._provisionedIops = undefined; this._provisionedThroughput = undefined; this._resourceManagerTags = undefined; this._resourcePolicies = undefined; this._source = undefined; this._sourceImage = undefined; this._sourceSnapshot = undefined; this._type = undefined; this._diskEncryptionKey.internalValue = undefined; this._sourceImageEncryptionKey.internalValue = undefined; this._sourceSnapshotEncryptionKey.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._autoDelete = value.autoDelete; this._boot = value.boot; this._deviceName = value.deviceName; this._diskName = value.diskName; this._diskSizeGb = value.diskSizeGb; this._diskType = value.diskType; this._interface = value.interface; this._labels = value.labels; this._mode = value.mode; this._provisionedIops = value.provisionedIops; this._provisionedThroughput = value.provisionedThroughput; this._resourceManagerTags = value.resourceManagerTags; this._resourcePolicies = value.resourcePolicies; this._source = value.source; this._sourceImage = value.sourceImage; this._sourceSnapshot = value.sourceSnapshot; this._type = value.type; this._diskEncryptionKey.internalValue = value.diskEncryptionKey; this._sourceImageEncryptionKey.internalValue = value.sourceImageEncryptionKey; this._sourceSnapshotEncryptionKey.internalValue = value.sourceSnapshotEncryptionKey; } } get autoDelete() { return this.getBooleanAttribute('auto_delete'); } set autoDelete(value) { this._autoDelete = value; } resetAutoDelete() { this._autoDelete = undefined; } // Temporarily expose input value. Use with caution. get autoDeleteInput() { return this._autoDelete; } get boot() { return this.getBooleanAttribute('boot'); } set boot(value) { this._boot = value; } resetBoot() { this._boot = undefined; } // Temporarily expose input value. Use with caution. get bootInput() { return this._boot; } get deviceName() { return this.getStringAttribute('device_name'); } set deviceName(value) { this._deviceName = value; } resetDeviceName() { this._deviceName = undefined; } // Temporarily expose input value. Use with caution. get deviceNameInput() { return this._deviceName; } get diskName() { return this.getStringAttribute('disk_name'); } set diskName(value) { this._diskName = value; } resetDiskName() { this._diskName = undefined; } // Temporarily expose input value. Use with caution. get diskNameInput() { return this._diskName; } get diskSizeGb() { return this.getNumberAttribute('disk_size_gb'); } set diskSizeGb(value) { this._diskSizeGb = value; } resetDiskSizeGb() { this._diskSizeGb = undefined; } // Temporarily expose input value. Use with caution. get diskSizeGbInput() { return this._diskSizeGb; } get diskType() { return this.getStringAttribute('disk_type'); } set diskType(value) { this._diskType = value; } resetDiskType() { this._diskType = undefined; } // Temporarily expose input value. Use with caution. get diskTypeInput() { return this._diskType; } get interface() { return this.getStringAttribute('interface'); } set interface(value) { this._interface = value; } resetInterface() { this._interface = undefined; } // Temporarily expose input value. Use with caution. get interfaceInput() { return this._interface; } get labels() { return this.getStringMapAttribute('labels'); } set labels(value) { this._labels = value; } resetLabels() { this._labels = undefined; } // Temporarily expose input value. Use with caution. get labelsInput() { return this._labels; } 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; } get provisionedIops() { return this.getNumberAttribute('provisioned_iops'); } set provisionedIops(value) { this._provisionedIops = value; } resetProvisionedIops() { this._provisionedIops = undefined; } // Temporarily expose input value. Use with caution. get provisionedIopsInput() { return this._provisionedIops; } get provisionedThroughput() { return this.getNumberAttribute('provisioned_throughput'); } set provisionedThroughput(value) { this._provisionedThroughput = value; } resetProvisionedThroughput() { this._provisionedThroughput = undefined; } // Temporarily expose input value. Use with caution. get provisionedThroughputInput() { return this._provisionedThroughput; } get resourceManagerTags() { return this.getStringMapAttribute('resource_manager_tags'); } set resourceManagerTags(value) { this._resourceManagerTags = value; } resetResourceManagerTags() { this._resourceManagerTags = undefined; } // Temporarily expose input value. Use with caution. get resourceManagerTagsInput() {