UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

832 lines 130 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeInstanceFromTemplateConfig extends cdktf.TerraformMetaArguments { /** * If true, allows Terraform to stop the instance to update its properties. If you try to update a property that requires stopping the instance without setting this field, the update will fail. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#allow_stopping_for_update ComputeInstanceFromTemplate#allow_stopping_for_update} */ readonly allowStoppingForUpdate?: boolean | cdktf.IResolvable; /** * Whether sending and receiving of packets with non-matching source or destination IPs is allowed. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#can_ip_forward ComputeInstanceFromTemplate#can_ip_forward} */ readonly canIpForward?: boolean | cdktf.IResolvable; /** * Whether deletion protection is enabled on this instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#deletion_protection ComputeInstanceFromTemplate#deletion_protection} */ readonly deletionProtection?: boolean | cdktf.IResolvable; /** * A brief description of the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#description ComputeInstanceFromTemplate#description} */ readonly description?: string; /** * Desired status of the instance. Either "RUNNING", "SUSPENDED" or "TERMINATED". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#desired_status ComputeInstanceFromTemplate#desired_status} */ readonly desiredStatus?: string; /** * Whether the instance has virtual displays enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#enable_display ComputeInstanceFromTemplate#enable_display} */ readonly enableDisplay?: boolean | cdktf.IResolvable; /** * A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid. Valid format is a series of labels 1-63 characters long matching the regular expression [a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire hostname must not exceed 253 characters. Changing this forces a new resource to be created. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#hostname ComputeInstanceFromTemplate#hostname} */ readonly hostname?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#id ComputeInstanceFromTemplate#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * Action to be taken when a customer's encryption key is revoked. Supports "STOP" and "NONE", with "NONE" being the default. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#key_revocation_action_type ComputeInstanceFromTemplate#key_revocation_action_type} */ readonly keyRevocationActionType?: string; /** * A set of key/value label pairs assigned to the instance. * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field 'effective_labels' for all of the labels present on the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#labels ComputeInstanceFromTemplate#labels} */ readonly labels?: { [key: string]: string; }; /** * The machine type to create. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#machine_type ComputeInstanceFromTemplate#machine_type} */ readonly machineType?: string; /** * Metadata key/value pairs made available within the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#metadata ComputeInstanceFromTemplate#metadata} */ readonly metadata?: { [key: string]: string; }; /** * Metadata startup scripts made available within the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#metadata_startup_script ComputeInstanceFromTemplate#metadata_startup_script} */ readonly metadataStartupScript?: string; /** * The minimum CPU platform specified for the VM instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#min_cpu_platform ComputeInstanceFromTemplate#min_cpu_platform} */ readonly minCpuPlatform?: string; /** * The name of the instance. One of name or self_link must be provided. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#name ComputeInstanceFromTemplate#name} */ readonly name: string; /** * The ID of the project in which the resource belongs. If self_link is provided, this value is ignored. If neither self_link nor project are provided, the provider project is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#project ComputeInstanceFromTemplate#project} */ readonly project?: string; /** * A list of self_links of resource policies to attach to the instance. Currently a max of 1 resource policy is supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#resource_policies ComputeInstanceFromTemplate#resource_policies} */ readonly resourcePolicies?: string[]; /** * Name or self link of an instance template to create the instance based on. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#source_instance_template ComputeInstanceFromTemplate#source_instance_template} */ readonly sourceInstanceTemplate: string; /** * The list of tags attached to the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#tags ComputeInstanceFromTemplate#tags} */ readonly tags?: string[]; /** * The zone of the instance. If self_link is provided, this value is ignored. If neither self_link nor zone are provided, the provider zone is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#zone ComputeInstanceFromTemplate#zone} */ readonly zone?: string; /** * advanced_machine_features block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#advanced_machine_features ComputeInstanceFromTemplate#advanced_machine_features} */ readonly advancedMachineFeatures?: ComputeInstanceFromTemplateAdvancedMachineFeatures; /** * attached_disk block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#attached_disk ComputeInstanceFromTemplate#attached_disk} */ readonly attachedDisk?: ComputeInstanceFromTemplateAttachedDisk[] | cdktf.IResolvable; /** * boot_disk block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#boot_disk ComputeInstanceFromTemplate#boot_disk} */ readonly bootDisk?: ComputeInstanceFromTemplateBootDisk; /** * confidential_instance_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#confidential_instance_config ComputeInstanceFromTemplate#confidential_instance_config} */ readonly confidentialInstanceConfig?: ComputeInstanceFromTemplateConfidentialInstanceConfig; /** * guest_accelerator block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#guest_accelerator ComputeInstanceFromTemplate#guest_accelerator} */ readonly guestAccelerator?: ComputeInstanceFromTemplateGuestAccelerator[] | cdktf.IResolvable; /** * instance_encryption_key block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#instance_encryption_key ComputeInstanceFromTemplate#instance_encryption_key} */ readonly instanceEncryptionKey?: ComputeInstanceFromTemplateInstanceEncryptionKey; /** * network_interface block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#network_interface ComputeInstanceFromTemplate#network_interface} */ readonly networkInterface?: ComputeInstanceFromTemplateNetworkInterface[] | cdktf.IResolvable; /** * network_performance_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#network_performance_config ComputeInstanceFromTemplate#network_performance_config} */ readonly networkPerformanceConfig?: ComputeInstanceFromTemplateNetworkPerformanceConfig; /** * params block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#params ComputeInstanceFromTemplate#params} */ readonly params?: ComputeInstanceFromTemplateParams; /** * reservation_affinity block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#reservation_affinity ComputeInstanceFromTemplate#reservation_affinity} */ readonly reservationAffinity?: ComputeInstanceFromTemplateReservationAffinity; /** * scheduling block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#scheduling ComputeInstanceFromTemplate#scheduling} */ readonly scheduling?: ComputeInstanceFromTemplateScheduling; /** * scratch_disk block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#scratch_disk ComputeInstanceFromTemplate#scratch_disk} */ readonly scratchDisk?: ComputeInstanceFromTemplateScratchDisk[] | cdktf.IResolvable; /** * service_account block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#service_account ComputeInstanceFromTemplate#service_account} */ readonly serviceAccount?: ComputeInstanceFromTemplateServiceAccount; /** * shielded_instance_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#shielded_instance_config ComputeInstanceFromTemplate#shielded_instance_config} */ readonly shieldedInstanceConfig?: ComputeInstanceFromTemplateShieldedInstanceConfig; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#timeouts ComputeInstanceFromTemplate#timeouts} */ readonly timeouts?: ComputeInstanceFromTemplateTimeouts; } export interface ComputeInstanceFromTemplateAdvancedMachineFeatures { /** * Whether to enable nested virtualization or not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#enable_nested_virtualization ComputeInstanceFromTemplate#enable_nested_virtualization} */ readonly enableNestedVirtualization?: boolean | cdktf.IResolvable; /** * Whether to enable UEFI networking for the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#enable_uefi_networking ComputeInstanceFromTemplate#enable_uefi_networking} */ readonly enableUefiNetworking?: boolean | cdktf.IResolvable; /** * The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are "STANDARD", "ENHANCED", and "ARCHITECTURAL". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#performance_monitoring_unit ComputeInstanceFromTemplate#performance_monitoring_unit} */ readonly performanceMonitoringUnit?: string; /** * The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#threads_per_core ComputeInstanceFromTemplate#threads_per_core} */ readonly threadsPerCore?: number; /** * Turbo frequency mode to use for the instance. Currently supported modes is "ALL_CORE_MAX". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#turbo_mode ComputeInstanceFromTemplate#turbo_mode} */ readonly turboMode?: string; /** * The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance\'s nominal CPU count and the underlying platform\'s SMT width. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#visible_core_count ComputeInstanceFromTemplate#visible_core_count} */ readonly visibleCoreCount?: number; } export declare function computeInstanceFromTemplateAdvancedMachineFeaturesToTerraform(struct?: ComputeInstanceFromTemplateAdvancedMachineFeaturesOutputReference | ComputeInstanceFromTemplateAdvancedMachineFeatures): any; export declare function computeInstanceFromTemplateAdvancedMachineFeaturesToHclTerraform(struct?: ComputeInstanceFromTemplateAdvancedMachineFeaturesOutputReference | ComputeInstanceFromTemplateAdvancedMachineFeatures): any; export declare class ComputeInstanceFromTemplateAdvancedMachineFeaturesOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ComputeInstanceFromTemplateAdvancedMachineFeatures | undefined; set internalValue(value: ComputeInstanceFromTemplateAdvancedMachineFeatures | undefined); private _enableNestedVirtualization?; get enableNestedVirtualization(): boolean | cdktf.IResolvable; set enableNestedVirtualization(value: boolean | cdktf.IResolvable); resetEnableNestedVirtualization(): void; get enableNestedVirtualizationInput(): boolean | cdktf.IResolvable | undefined; private _enableUefiNetworking?; get enableUefiNetworking(): boolean | cdktf.IResolvable; set enableUefiNetworking(value: boolean | cdktf.IResolvable); resetEnableUefiNetworking(): void; get enableUefiNetworkingInput(): boolean | cdktf.IResolvable | undefined; private _performanceMonitoringUnit?; get performanceMonitoringUnit(): string; set performanceMonitoringUnit(value: string); resetPerformanceMonitoringUnit(): void; get performanceMonitoringUnitInput(): string | undefined; private _threadsPerCore?; get threadsPerCore(): number; set threadsPerCore(value: number); resetThreadsPerCore(): void; get threadsPerCoreInput(): number | undefined; private _turboMode?; get turboMode(): string; set turboMode(value: string); resetTurboMode(): void; get turboModeInput(): string | undefined; private _visibleCoreCount?; get visibleCoreCount(): number; set visibleCoreCount(value: number); resetVisibleCoreCount(): void; get visibleCoreCountInput(): number | undefined; } export interface ComputeInstanceFromTemplateAttachedDisk { /** * Name with which the attached disk is accessible under /dev/disk/by-id/ * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#device_name ComputeInstanceFromTemplate#device_name} */ readonly deviceName?: string; /** * A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link, disk_encryption_key_rsa and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#disk_encryption_key_raw ComputeInstanceFromTemplate#disk_encryption_key_raw} */ readonly diskEncryptionKeyRaw?: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link, disk_encryption_key_rsa and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#disk_encryption_key_rsa ComputeInstanceFromTemplate#disk_encryption_key_rsa} */ readonly diskEncryptionKeyRsa?: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#disk_encryption_service_account ComputeInstanceFromTemplate#disk_encryption_service_account} */ readonly diskEncryptionServiceAccount?: string; /** * Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#force_attach ComputeInstanceFromTemplate#force_attach} */ readonly forceAttach?: boolean | cdktf.IResolvable; /** * The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link, disk_encryption_key_rsa and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#kms_key_self_link ComputeInstanceFromTemplate#kms_key_self_link} */ readonly kmsKeySelfLink?: string; /** * Read/write mode for the disk. One of "READ_ONLY" or "READ_WRITE". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#mode ComputeInstanceFromTemplate#mode} */ readonly mode?: string; /** * The name or self_link of the disk attached to this instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#source ComputeInstanceFromTemplate#source} */ readonly source: string; } export declare function computeInstanceFromTemplateAttachedDiskToTerraform(struct?: ComputeInstanceFromTemplateAttachedDisk | cdktf.IResolvable): any; export declare function computeInstanceFromTemplateAttachedDiskToHclTerraform(struct?: ComputeInstanceFromTemplateAttachedDisk | cdktf.IResolvable): any; export declare class ComputeInstanceFromTemplateAttachedDiskOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): ComputeInstanceFromTemplateAttachedDisk | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceFromTemplateAttachedDisk | cdktf.IResolvable | undefined); private _deviceName?; get deviceName(): string; set deviceName(value: string); resetDeviceName(): void; get deviceNameInput(): string | undefined; private _diskEncryptionKeyRaw?; get diskEncryptionKeyRaw(): string; set diskEncryptionKeyRaw(value: string); resetDiskEncryptionKeyRaw(): void; get diskEncryptionKeyRawInput(): string | undefined; private _diskEncryptionKeyRsa?; get diskEncryptionKeyRsa(): string; set diskEncryptionKeyRsa(value: string); resetDiskEncryptionKeyRsa(): void; get diskEncryptionKeyRsaInput(): string | undefined; get diskEncryptionKeySha256(): string; private _diskEncryptionServiceAccount?; get diskEncryptionServiceAccount(): string; set diskEncryptionServiceAccount(value: string); resetDiskEncryptionServiceAccount(): void; get diskEncryptionServiceAccountInput(): string | undefined; private _forceAttach?; get forceAttach(): boolean | cdktf.IResolvable; set forceAttach(value: boolean | cdktf.IResolvable); resetForceAttach(): void; get forceAttachInput(): boolean | cdktf.IResolvable | undefined; private _kmsKeySelfLink?; get kmsKeySelfLink(): string; set kmsKeySelfLink(value: string); resetKmsKeySelfLink(): void; get kmsKeySelfLinkInput(): string | undefined; private _mode?; get mode(): string; set mode(value: string); resetMode(): void; get modeInput(): string | undefined; private _source?; get source(): string; set source(value: string); get sourceInput(): string | undefined; } export declare class ComputeInstanceFromTemplateAttachedDiskList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceFromTemplateAttachedDisk[] | cdktf.IResolvable; /** * @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: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): ComputeInstanceFromTemplateAttachedDiskOutputReference; } export interface ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey { /** * The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link, rsa_encrypted_key and raw_key may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#kms_key_self_link ComputeInstanceFromTemplate#kms_key_self_link} */ readonly kmsKeySelfLink?: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#kms_key_service_account ComputeInstanceFromTemplate#kms_key_service_account} */ readonly kmsKeyServiceAccount?: string; /** * Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link, rsa_encrypted_key and raw_key may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#raw_key ComputeInstanceFromTemplate#raw_key} */ readonly rawKey?: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link, rsa_encrypted_key and raw_key may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#rsa_encrypted_key ComputeInstanceFromTemplate#rsa_encrypted_key} */ readonly rsaEncryptedKey?: string; } export declare function computeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKeyToTerraform(struct?: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference | ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey): any; export declare function computeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKeyToHclTerraform(struct?: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference | ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey): any; export declare class ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey | undefined; set internalValue(value: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey | undefined); private _kmsKeySelfLink?; get kmsKeySelfLink(): string; set kmsKeySelfLink(value: string); resetKmsKeySelfLink(): void; get kmsKeySelfLinkInput(): string | undefined; private _kmsKeyServiceAccount?; get kmsKeyServiceAccount(): string; set kmsKeyServiceAccount(value: string); resetKmsKeyServiceAccount(): void; get kmsKeyServiceAccountInput(): string | undefined; private _rawKey?; get rawKey(): string; set rawKey(value: string); resetRawKey(): void; get rawKeyInput(): string | undefined; private _rsaEncryptedKey?; get rsaEncryptedKey(): string; set rsaEncryptedKey(value: string); resetRsaEncryptedKey(): void; get rsaEncryptedKeyInput(): string | undefined; get sha256(): string; } export interface ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey { /** * The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link, rsa_encrypted_key and raw_key may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#kms_key_self_link ComputeInstanceFromTemplate#kms_key_self_link} */ readonly kmsKeySelfLink?: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#kms_key_service_account ComputeInstanceFromTemplate#kms_key_service_account} */ readonly kmsKeyServiceAccount?: string; /** * Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link, rsa_encrypted_key and raw_key may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#raw_key ComputeInstanceFromTemplate#raw_key} */ readonly rawKey?: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link, rsa_encrypted_key and raw_key may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#rsa_encrypted_key ComputeInstanceFromTemplate#rsa_encrypted_key} */ readonly rsaEncryptedKey?: string; } export declare function computeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKeyToTerraform(struct?: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference | ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey): any; export declare function computeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKeyToHclTerraform(struct?: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference | ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey): any; export declare class ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey | undefined; set internalValue(value: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey | undefined); private _kmsKeySelfLink?; get kmsKeySelfLink(): string; set kmsKeySelfLink(value: string); resetKmsKeySelfLink(): void; get kmsKeySelfLinkInput(): string | undefined; private _kmsKeyServiceAccount?; get kmsKeyServiceAccount(): string; set kmsKeyServiceAccount(value: string); resetKmsKeyServiceAccount(): void; get kmsKeyServiceAccountInput(): string | undefined; private _rawKey?; get rawKey(): string; set rawKey(value: string); resetRawKey(): void; get rawKeyInput(): string | undefined; private _rsaEncryptedKey?; get rsaEncryptedKey(): string; set rsaEncryptedKey(value: string); resetRsaEncryptedKey(): void; get rsaEncryptedKeyInput(): string | undefined; get sha256(): string; } export interface ComputeInstanceFromTemplateBootDiskInitializeParams { /** * The architecture of the disk. One of "X86_64" or "ARM64". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#architecture ComputeInstanceFromTemplate#architecture} */ readonly architecture?: string; /** * A flag to enable confidential compute mode on boot disk * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#enable_confidential_compute ComputeInstanceFromTemplate#enable_confidential_compute} */ readonly enableConfidentialCompute?: boolean | cdktf.IResolvable; /** * The image from which this disk was initialised. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#image ComputeInstanceFromTemplate#image} */ readonly image?: string; /** * A set of key/value label pairs assigned to the disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#labels ComputeInstanceFromTemplate#labels} */ readonly labels?: { [key: string]: string; }; /** * Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#provisioned_iops ComputeInstanceFromTemplate#provisioned_iops} */ readonly provisionedIops?: number; /** * Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#provisioned_throughput ComputeInstanceFromTemplate#provisioned_throughput} */ readonly provisionedThroughput?: number; /** * A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#resource_manager_tags ComputeInstanceFromTemplate#resource_manager_tags} */ readonly resourceManagerTags?: { [key: string]: string; }; /** * A list of self_links of resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#resource_policies ComputeInstanceFromTemplate#resource_policies} */ readonly resourcePolicies?: string[]; /** * The size of the image in gigabytes. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#size ComputeInstanceFromTemplate#size} */ readonly size?: number; /** * The snapshot from which this disk was initialised. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#snapshot ComputeInstanceFromTemplate#snapshot} */ readonly snapshot?: string; /** * The URL of the storage pool in which the new disk is created * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#storage_pool ComputeInstanceFromTemplate#storage_pool} */ readonly storagePool?: string; /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#type ComputeInstanceFromTemplate#type} */ readonly type?: string; /** * source_image_encryption_key block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#source_image_encryption_key ComputeInstanceFromTemplate#source_image_encryption_key} */ readonly sourceImageEncryptionKey?: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey; /** * source_snapshot_encryption_key block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#source_snapshot_encryption_key ComputeInstanceFromTemplate#source_snapshot_encryption_key} */ readonly sourceSnapshotEncryptionKey?: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey; } export declare function computeInstanceFromTemplateBootDiskInitializeParamsToTerraform(struct?: ComputeInstanceFromTemplateBootDiskInitializeParamsOutputReference | ComputeInstanceFromTemplateBootDiskInitializeParams): any; export declare function computeInstanceFromTemplateBootDiskInitializeParamsToHclTerraform(struct?: ComputeInstanceFromTemplateBootDiskInitializeParamsOutputReference | ComputeInstanceFromTemplateBootDiskInitializeParams): any; export declare class ComputeInstanceFromTemplateBootDiskInitializeParamsOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ComputeInstanceFromTemplateBootDiskInitializeParams | undefined; set internalValue(value: ComputeInstanceFromTemplateBootDiskInitializeParams | undefined); private _architecture?; get architecture(): string; set architecture(value: string); resetArchitecture(): void; get architectureInput(): string | undefined; private _enableConfidentialCompute?; get enableConfidentialCompute(): boolean | cdktf.IResolvable; set enableConfidentialCompute(value: boolean | cdktf.IResolvable); resetEnableConfidentialCompute(): void; get enableConfidentialComputeInput(): boolean | cdktf.IResolvable | undefined; private _image?; get image(): string; set image(value: string); resetImage(): void; get imageInput(): string | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _provisionedIops?; get provisionedIops(): number; set provisionedIops(value: number); resetProvisionedIops(): void; get provisionedIopsInput(): number | undefined; private _provisionedThroughput?; get provisionedThroughput(): number; set provisionedThroughput(value: number); resetProvisionedThroughput(): void; get provisionedThroughputInput(): number | undefined; private _resourceManagerTags?; get resourceManagerTags(): { [key: string]: string; }; set resourceManagerTags(value: { [key: string]: string; }); resetResourceManagerTags(): void; get resourceManagerTagsInput(): { [key: string]: string; } | undefined; private _resourcePolicies?; get resourcePolicies(): string[]; set resourcePolicies(value: string[]); resetResourcePolicies(): void; get resourcePoliciesInput(): string[] | undefined; private _size?; get size(): number; set size(value: number); resetSize(): void; get sizeInput(): number | undefined; private _snapshot?; get snapshot(): string; set snapshot(value: string); resetSnapshot(): void; get snapshotInput(): string | undefined; private _storagePool?; get storagePool(): string; set storagePool(value: string); resetStoragePool(): void; get storagePoolInput(): string | undefined; private _type?; get type(): string; set type(value: string); resetType(): void; get typeInput(): string | undefined; private _sourceImageEncryptionKey; get sourceImageEncryptionKey(): ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference; putSourceImageEncryptionKey(value: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey): void; resetSourceImageEncryptionKey(): void; get sourceImageEncryptionKeyInput(): ComputeInstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey | undefined; private _sourceSnapshotEncryptionKey; get sourceSnapshotEncryptionKey(): ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference; putSourceSnapshotEncryptionKey(value: ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey): void; resetSourceSnapshotEncryptionKey(): void; get sourceSnapshotEncryptionKeyInput(): ComputeInstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey | undefined; } export interface ComputeInstanceFromTemplateBootDisk { /** * Whether the disk will be auto-deleted when the instance is deleted. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#auto_delete ComputeInstanceFromTemplate#auto_delete} */ readonly autoDelete?: boolean | cdktf.IResolvable; /** * Name with which attached disk will be accessible under /dev/disk/by-id/ * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#device_name ComputeInstanceFromTemplate#device_name} */ readonly deviceName?: string; /** * A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link, disk_encryption_key_raw and disk_encryption_key_rsa may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#disk_encryption_key_raw ComputeInstanceFromTemplate#disk_encryption_key_raw} */ readonly diskEncryptionKeyRaw?: string; /** * Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link, disk_encryption_key_raw and disk_encryption_key_rsa may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#disk_encryption_key_rsa ComputeInstanceFromTemplate#disk_encryption_key_rsa} */ readonly diskEncryptionKeyRsa?: string; /** * The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#disk_encryption_service_account ComputeInstanceFromTemplate#disk_encryption_service_account} */ readonly diskEncryptionServiceAccount?: string; /** * Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#force_attach ComputeInstanceFromTemplate#force_attach} */ readonly forceAttach?: boolean | cdktf.IResolvable; /** * A list of features to enable on the guest operating system. Applicable only for bootable images. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#guest_os_features ComputeInstanceFromTemplate#guest_os_features} */ readonly guestOsFeatures?: string[]; /** * The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with attached_disk and only used for specific cases, please don't specify this field without advice from Google.) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#interface ComputeInstanceFromTemplate#interface} */ readonly interface?: string; /** * The self_link of the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link, disk_encryption_key_raw and disk_encryption_key_rsa may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#kms_key_self_link ComputeInstanceFromTemplate#kms_key_self_link} */ readonly kmsKeySelfLink?: string; /** * Read/write mode for the disk. One of "READ_ONLY" or "READ_WRITE". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#mode ComputeInstanceFromTemplate#mode} */ readonly mode?: string; /** * The name or self_link of the disk attached to this instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#source ComputeInstanceFromTemplate#source} */ readonly source?: string; /** * initialize_params block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance_from_template#initialize_params ComputeInstanceFromTemplate#initialize_params} */ readonly initializeParams?: ComputeInstanceFromTemplateBootDiskInitializeParams; } export declare function computeInstanceFromTemplateBootDiskToTerraform(struct?: ComputeInstanceFromTemplateBootDiskOutputReference | ComputeInstanceFromTemplateBootDisk): any; export declare function computeInstanceFromTemplateBootDiskToHclTerraform(struct?: ComputeInstanceFromTemplateBootDiskOutputReference | ComputeInstanceFromTemplateBootDisk): any; export declare class ComputeInstanceFromTemplateBootDiskOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ComputeInstanceFromTemplateBootDisk | undefined; set internalValue(value: ComputeInstanceFromTemplateBootDisk | undefined); private _autoDelete?; get autoDelete(): boolean | cdktf.IResolvable; set autoDelete(value: boolean | cdktf.IResolvable); resetAutoDelete(): void; get autoDeleteInput(): boolean | cdktf.IResolvable | undefined; private _deviceName?; get deviceName(): string; set deviceName(value: string); resetDeviceName(): void; get deviceNameInput(): string | undefined; private _diskEncryptionKeyRaw?; get diskEncryptionKeyRaw(): string; set diskEncryptionKeyRaw(value: string); resetDiskEncryptionKeyRaw(): void; get diskEncryptionKeyRawInput(): string | undefined; private _diskEncryptionKeyRsa?; get diskEncryptionKeyRsa(): string; set diskEncryptionKeyRsa(value: string)