@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
897 lines • 121 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ComputeInstanceConfig 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#allow_stopping_for_update ComputeInstance#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#can_ip_forward ComputeInstance#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#deletion_protection ComputeInstance#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#description ComputeInstance#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#desired_status ComputeInstance#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#enable_display ComputeInstance#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#hostname ComputeInstance#hostname}
*/
readonly hostname?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#id ComputeInstance#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#key_revocation_action_type ComputeInstance#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#labels ComputeInstance#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#machine_type ComputeInstance#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#metadata ComputeInstance#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#metadata_startup_script ComputeInstance#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#min_cpu_platform ComputeInstance#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#name ComputeInstance#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#project ComputeInstance#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#resource_policies ComputeInstance#resource_policies}
*/
readonly resourcePolicies?: 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#tags ComputeInstance#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#zone ComputeInstance#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#advanced_machine_features ComputeInstance#advanced_machine_features}
*/
readonly advancedMachineFeatures?: ComputeInstanceAdvancedMachineFeatures;
/**
* attached_disk block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#attached_disk ComputeInstance#attached_disk}
*/
readonly attachedDisk?: ComputeInstanceAttachedDisk[] | cdktf.IResolvable;
/**
* boot_disk block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#boot_disk ComputeInstance#boot_disk}
*/
readonly bootDisk: ComputeInstanceBootDisk;
/**
* confidential_instance_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#confidential_instance_config ComputeInstance#confidential_instance_config}
*/
readonly confidentialInstanceConfig?: ComputeInstanceConfidentialInstanceConfig;
/**
* guest_accelerator block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#guest_accelerator ComputeInstance#guest_accelerator}
*/
readonly guestAccelerator?: ComputeInstanceGuestAccelerator[] | 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#instance_encryption_key ComputeInstance#instance_encryption_key}
*/
readonly instanceEncryptionKey?: ComputeInstanceInstanceEncryptionKey;
/**
* network_interface block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#network_interface ComputeInstance#network_interface}
*/
readonly networkInterface: ComputeInstanceNetworkInterface[] | 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#network_performance_config ComputeInstance#network_performance_config}
*/
readonly networkPerformanceConfig?: ComputeInstanceNetworkPerformanceConfig;
/**
* params block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#params ComputeInstance#params}
*/
readonly params?: ComputeInstanceParams;
/**
* reservation_affinity block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#reservation_affinity ComputeInstance#reservation_affinity}
*/
readonly reservationAffinity?: ComputeInstanceReservationAffinity;
/**
* scheduling block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#scheduling ComputeInstance#scheduling}
*/
readonly scheduling?: ComputeInstanceScheduling;
/**
* scratch_disk block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#scratch_disk ComputeInstance#scratch_disk}
*/
readonly scratchDisk?: ComputeInstanceScratchDisk[] | cdktf.IResolvable;
/**
* service_account block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#service_account ComputeInstance#service_account}
*/
readonly serviceAccount?: ComputeInstanceServiceAccount;
/**
* shielded_instance_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#shielded_instance_config ComputeInstance#shielded_instance_config}
*/
readonly shieldedInstanceConfig?: ComputeInstanceShieldedInstanceConfig;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#timeouts ComputeInstance#timeouts}
*/
readonly timeouts?: ComputeInstanceTimeouts;
}
export interface ComputeInstanceAdvancedMachineFeatures {
/**
* 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#enable_nested_virtualization ComputeInstance#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#enable_uefi_networking ComputeInstance#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#performance_monitoring_unit ComputeInstance#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#threads_per_core ComputeInstance#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#turbo_mode ComputeInstance#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#visible_core_count ComputeInstance#visible_core_count}
*/
readonly visibleCoreCount?: number;
}
export declare function computeInstanceAdvancedMachineFeaturesToTerraform(struct?: ComputeInstanceAdvancedMachineFeaturesOutputReference | ComputeInstanceAdvancedMachineFeatures): any;
export declare function computeInstanceAdvancedMachineFeaturesToHclTerraform(struct?: ComputeInstanceAdvancedMachineFeaturesOutputReference | ComputeInstanceAdvancedMachineFeatures): any;
export declare class ComputeInstanceAdvancedMachineFeaturesOutputReference 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(): ComputeInstanceAdvancedMachineFeatures | undefined;
set internalValue(value: ComputeInstanceAdvancedMachineFeatures | 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 ComputeInstanceAttachedDisk {
/**
* 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#device_name ComputeInstance#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#disk_encryption_key_raw ComputeInstance#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#disk_encryption_key_rsa ComputeInstance#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#disk_encryption_service_account ComputeInstance#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#force_attach ComputeInstance#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#kms_key_self_link ComputeInstance#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#mode ComputeInstance#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#source ComputeInstance#source}
*/
readonly source: string;
}
export declare function computeInstanceAttachedDiskToTerraform(struct?: ComputeInstanceAttachedDisk | cdktf.IResolvable): any;
export declare function computeInstanceAttachedDiskToHclTerraform(struct?: ComputeInstanceAttachedDisk | cdktf.IResolvable): any;
export declare class ComputeInstanceAttachedDiskOutputReference 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(): ComputeInstanceAttachedDisk | cdktf.IResolvable | undefined;
set internalValue(value: ComputeInstanceAttachedDisk | 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 ComputeInstanceAttachedDiskList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComputeInstanceAttachedDisk[] | 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): ComputeInstanceAttachedDiskOutputReference;
}
export interface ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey {
/**
* 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#kms_key_self_link ComputeInstance#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#kms_key_service_account ComputeInstance#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#raw_key ComputeInstance#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#rsa_encrypted_key ComputeInstance#rsa_encrypted_key}
*/
readonly rsaEncryptedKey?: string;
}
export declare function computeInstanceBootDiskInitializeParamsSourceImageEncryptionKeyToTerraform(struct?: ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference | ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey): any;
export declare function computeInstanceBootDiskInitializeParamsSourceImageEncryptionKeyToHclTerraform(struct?: ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference | ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey): any;
export declare class ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference 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(): ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey | undefined;
set internalValue(value: ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey | 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 ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey {
/**
* 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#kms_key_self_link ComputeInstance#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#kms_key_service_account ComputeInstance#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#raw_key ComputeInstance#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#rsa_encrypted_key ComputeInstance#rsa_encrypted_key}
*/
readonly rsaEncryptedKey?: string;
}
export declare function computeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKeyToTerraform(struct?: ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference | ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey): any;
export declare function computeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKeyToHclTerraform(struct?: ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference | ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey): any;
export declare class ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference 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(): ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey | undefined;
set internalValue(value: ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey | 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 ComputeInstanceBootDiskInitializeParams {
/**
* 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#architecture ComputeInstance#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#enable_confidential_compute ComputeInstance#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#image ComputeInstance#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#labels ComputeInstance#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#provisioned_iops ComputeInstance#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#provisioned_throughput ComputeInstance#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#resource_manager_tags ComputeInstance#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#resource_policies ComputeInstance#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#size ComputeInstance#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#snapshot ComputeInstance#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#storage_pool ComputeInstance#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#type ComputeInstance#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#source_image_encryption_key ComputeInstance#source_image_encryption_key}
*/
readonly sourceImageEncryptionKey?: ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey;
/**
* source_snapshot_encryption_key block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#source_snapshot_encryption_key ComputeInstance#source_snapshot_encryption_key}
*/
readonly sourceSnapshotEncryptionKey?: ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey;
}
export declare function computeInstanceBootDiskInitializeParamsToTerraform(struct?: ComputeInstanceBootDiskInitializeParamsOutputReference | ComputeInstanceBootDiskInitializeParams): any;
export declare function computeInstanceBootDiskInitializeParamsToHclTerraform(struct?: ComputeInstanceBootDiskInitializeParamsOutputReference | ComputeInstanceBootDiskInitializeParams): any;
export declare class ComputeInstanceBootDiskInitializeParamsOutputReference 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(): ComputeInstanceBootDiskInitializeParams | undefined;
set internalValue(value: ComputeInstanceBootDiskInitializeParams | 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(): ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKeyOutputReference;
putSourceImageEncryptionKey(value: ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey): void;
resetSourceImageEncryptionKey(): void;
get sourceImageEncryptionKeyInput(): ComputeInstanceBootDiskInitializeParamsSourceImageEncryptionKey | undefined;
private _sourceSnapshotEncryptionKey;
get sourceSnapshotEncryptionKey(): ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKeyOutputReference;
putSourceSnapshotEncryptionKey(value: ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey): void;
resetSourceSnapshotEncryptionKey(): void;
get sourceSnapshotEncryptionKeyInput(): ComputeInstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey | undefined;
}
export interface ComputeInstanceBootDisk {
/**
* 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#auto_delete ComputeInstance#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#device_name ComputeInstance#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#disk_encryption_key_raw ComputeInstance#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#disk_encryption_key_rsa ComputeInstance#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#disk_encryption_service_account ComputeInstance#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#force_attach ComputeInstance#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#guest_os_features ComputeInstance#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#interface ComputeInstance#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#kms_key_self_link ComputeInstance#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#mode ComputeInstance#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#source ComputeInstance#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#initialize_params ComputeInstance#initialize_params}
*/
readonly initializeParams?: ComputeInstanceBootDiskInitializeParams;
}
export declare function computeInstanceBootDiskToTerraform(struct?: ComputeInstanceBootDiskOutputReference | ComputeInstanceBootDisk): any;
export declare function computeInstanceBootDiskToHclTerraform(struct?: ComputeInstanceBootDiskOutputReference | ComputeInstanceBootDisk): any;
export declare class ComputeInstanceBootDiskOutputReference 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(): ComputeInstanceBootDisk | undefined;
set internalValue(value: ComputeInstanceBootDisk | 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);
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 _guestOsFeatures?;
get guestOsFeatures(): string[];
set guestOsFeatures(value: string[]);
resetGuestOsFeatures(): void;
get guestOsFeaturesInput(): string[] | undefined;
private _interface?;
get interface(): string;
set interface(value: string);
resetInterface(): void;
get interfaceInput(): string | 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);
resetSource(): void;
get sourceInput(): string | undefined;
private _initializeParams;
get initializeParams(): ComputeInstanceBootDiskInitializeParamsOutputReference;
putInitializeParams(value: ComputeInstanceBootDiskInitializeParams): void;
resetInitializeParams(): void;
get initializeParamsInput(): ComputeInstanceBootDiskInitializeParams | undefined;
}
export interface ComputeInstanceConfidentialInstanceConfig {
/**
*
* The confidential computing technology the instance uses.
* SEV is an AMD feature. TDX is an Intel feature. One of the following
* values is required: SEV, SEV_SNP, TDX. If SEV_SNP, min_cpu_platform =
* "AMD Milan" is currently required.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#confidential_instance_type ComputeInstance#confidential_instance_type}
*/
readonly confidentialInstanceType?: string;
/**
* Defines whether the instance should have confidential compute enabled. Field will be deprecated in a future release
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/compute_instance#enable_confidential_compute ComputeInstance#enable_confidential_compute}
*/
readonly enableConfidentialCompute?: boolean | cdktf.IResolvable;
}
export declare function computeInstanceConfidentialInstanceConfigToTerraform(struct?: ComputeInstanceConfidentialInstanceConfigOutputReference | ComputeInstanceConfidentialInstanceConfig): any;
export declare function computeInstanceConfidentialInstanceConfigToHclTerraform(struct?: ComputeInstanceConfidentialInstanceConfigOutputReference | ComputeInstanceConfidentialInstanceConfig): any;
export declare class ComputeInstanceConfidentialInstanceConfigOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terr