UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

920 lines 102 kB
/** * 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.13.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.13.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.13.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.13.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.13.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.13.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.13.0/docs/resources/compute_instance#hostname ComputeInstance#hostname} */ readonly hostname?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.0/docs/resources/compute_instance#guest_accelerator ComputeInstance#guest_accelerator} */ readonly guestAccelerator?: ComputeInstanceGuestAccelerator[] | cdktf.IResolvable; /** * network_interface block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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 and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#disk_encryption_key_raw ComputeInstance#disk_encryption_key_raw} */ readonly diskEncryptionKeyRaw?: 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 and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.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.13.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.13.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; get diskEncryptionKeySha256(): string; 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 ComputeInstanceBootDiskInitializeParams { /** * A flag to enable confidential compute mode on boot disk * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.0/docs/resources/compute_instance#size ComputeInstance#size} */ readonly size?: number; /** * 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.13.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.13.0/docs/resources/compute_instance#type ComputeInstance#type} */ readonly type?: string; } 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 _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 _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; } 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.13.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.13.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 and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#disk_encryption_key_raw ComputeInstance#disk_encryption_key_raw} */ readonly diskEncryptionKeyRaw?: 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.13.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 and disk_encryption_key_raw may be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.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.13.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.13.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.13.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; get diskEncryptionKeySha256(): string; 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.13.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.13.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(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): ComputeInstanceConfidentialInstanceConfig | undefined; set internalValue(value: ComputeInstanceConfidentialInstanceConfig | undefined); private _confidentialInstanceType?; get confidentialInstanceType(): string; set confidentialInstanceType(value: string); resetConfidentialInstanceType(): void; get confidentialInstanceTypeInput(): string | undefined; private _enableConfidentialCompute?; get enableConfidentialCompute(): boolean | cdktf.IResolvable; set enableConfidentialCompute(value: boolean | cdktf.IResolvable); resetEnableConfidentialCompute(): void; get enableConfidentialComputeInput(): boolean | cdktf.IResolvable | undefined; } export interface ComputeInstanceGuestAccelerator { /** * The number of the guest accelerator cards exposed to this instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#count ComputeInstance#count} */ readonly count: number; /** * The accelerator type resource exposed to this instance. E.g. nvidia-tesla-k80. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#type ComputeInstance#type} */ readonly type: string; } export declare function computeInstanceGuestAcceleratorToTerraform(struct?: ComputeInstanceGuestAccelerator | cdktf.IResolvable): any; export declare function computeInstanceGuestAcceleratorToHclTerraform(struct?: ComputeInstanceGuestAccelerator | cdktf.IResolvable): any; export declare class ComputeInstanceGuestAcceleratorOutputReference 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(): ComputeInstanceGuestAccelerator | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceGuestAccelerator | cdktf.IResolvable | undefined); private _count?; get count(): number; set count(value: number); get countInput(): number | undefined; private _type?; get type(): string; set type(value: string); get typeInput(): string | undefined; } export declare class ComputeInstanceGuestAcceleratorList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceGuestAccelerator[] | 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): ComputeInstanceGuestAcceleratorOutputReference; } export interface ComputeInstanceNetworkInterfaceAccessConfig { /** * The IP address that is be 1:1 mapped to the instance's network ip. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#nat_ip ComputeInstance#nat_ip} */ readonly natIp?: string; /** * The networking tier used for configuring this instance. One of PREMIUM or STANDARD. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#network_tier ComputeInstance#network_tier} */ readonly networkTier?: string; /** * The DNS domain name for the public PTR record. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#public_ptr_domain_name ComputeInstance#public_ptr_domain_name} */ readonly publicPtrDomainName?: string; } export declare function computeInstanceNetworkInterfaceAccessConfigToTerraform(struct?: ComputeInstanceNetworkInterfaceAccessConfig | cdktf.IResolvable): any; export declare function computeInstanceNetworkInterfaceAccessConfigToHclTerraform(struct?: ComputeInstanceNetworkInterfaceAccessConfig | cdktf.IResolvable): any; export declare class ComputeInstanceNetworkInterfaceAccessConfigOutputReference 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(): ComputeInstanceNetworkInterfaceAccessConfig | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceNetworkInterfaceAccessConfig | cdktf.IResolvable | undefined); private _natIp?; get natIp(): string; set natIp(value: string); resetNatIp(): void; get natIpInput(): string | undefined; private _networkTier?; get networkTier(): string; set networkTier(value: string); resetNetworkTier(): void; get networkTierInput(): string | undefined; private _publicPtrDomainName?; get publicPtrDomainName(): string; set publicPtrDomainName(value: string); resetPublicPtrDomainName(): void; get publicPtrDomainNameInput(): string | undefined; } export declare class ComputeInstanceNetworkInterfaceAccessConfigList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceNetworkInterfaceAccessConfig[] | 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): ComputeInstanceNetworkInterfaceAccessConfigOutputReference; } export interface ComputeInstanceNetworkInterfaceAliasIpRange { /** * The IP CIDR range represented by this alias IP range. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#ip_cidr_range ComputeInstance#ip_cidr_range} */ readonly ipCidrRange: string; /** * The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#subnetwork_range_name ComputeInstance#subnetwork_range_name} */ readonly subnetworkRangeName?: string; } export declare function computeInstanceNetworkInterfaceAliasIpRangeToTerraform(struct?: ComputeInstanceNetworkInterfaceAliasIpRange | cdktf.IResolvable): any; export declare function computeInstanceNetworkInterfaceAliasIpRangeToHclTerraform(struct?: ComputeInstanceNetworkInterfaceAliasIpRange | cdktf.IResolvable): any; export declare class ComputeInstanceNetworkInterfaceAliasIpRangeOutputReference 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(): ComputeInstanceNetworkInterfaceAliasIpRange | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceNetworkInterfaceAliasIpRange | cdktf.IResolvable | undefined); private _ipCidrRange?; get ipCidrRange(): string; set ipCidrRange(value: string); get ipCidrRangeInput(): string | undefined; private _subnetworkRangeName?; get subnetworkRangeName(): string; set subnetworkRangeName(value: string); resetSubnetworkRangeName(): void; get subnetworkRangeNameInput(): string | undefined; } export declare class ComputeInstanceNetworkInterfaceAliasIpRangeList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceNetworkInterfaceAliasIpRange[] | 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): ComputeInstanceNetworkInterfaceAliasIpRangeOutputReference; } export interface ComputeInstanceNetworkInterfaceIpv6AccessConfig { /** * The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#external_ipv6 ComputeInstance#external_ipv6} */ readonly externalIpv6?: string; /** * The prefix length of the external IPv6 range. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#external_ipv6_prefix_length ComputeInstance#external_ipv6_prefix_length} */ readonly externalIpv6PrefixLength?: string; /** * The name of this access configuration. In ipv6AccessConfigs, the recommended name is External IPv6. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#name ComputeInstance#name} */ readonly name?: string; /** * The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6 * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#network_tier ComputeInstance#network_tier} */ readonly networkTier: string; /** * The domain name to be used when creating DNSv6 records for the external IPv6 ranges. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance#public_ptr_domain_name ComputeInstance#public_ptr_domain_name} */ readonly publicPtrDomainName?: string; } export declare function computeInstanceNetworkInterfaceIpv6AccessConfigToTerraform(struct?: ComputeInstanceNetworkInterfaceIpv6AccessConfig | cdktf.IResolvable): any; export declare function computeInstanceNetworkInterfaceIpv6AccessConfigToHclTerraform(struct?: ComputeInstanceNetworkInterfaceIpv6AccessConfig | cdktf.IResolvable): any; export declare class ComputeInstanceNetworkInterfaceIpv6AccessConfigOutputReference 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(): ComputeInstanceNetworkInterfaceIpv6AccessConfig | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceNetworkInterfaceIpv6AccessConfig | cdktf.IResolvable | undefined); private _externalIpv6?; get externalIpv6(): string; set externalIpv6(value: string); resetExternalIpv6(): void; get externalIpv6Input(): string | undefined; private _externalIpv6PrefixLength?; get externalIpv6PrefixLength(): string; set externalIpv6PrefixLength(value: string); resetExternalIpv6PrefixLength(): void; get externalIpv6PrefixLengthInput(): string | undefined; private _name?; get name(): string; set name(value: string); resetName(): void; get nameInput(): string | undefined; private _networkTier?; get networkTier(): string; set networkTier(value: string); get networkTierInput(): string | undefined; private _publicPtrDomainName?; get publicPtrDomainName(): string; set publicPtrDomainName(value: string); resetPublicPtrDomainName(): void; get publicPtrDomainNameInput(): string | undefined; } export declare class ComputeInstanceNetworkInterfaceIpv6AccessConfigList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceNetworkInterfaceIpv6AccessConfig[] | 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.IInterpolati