UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

845 lines 102 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeInstanceTemplateConfig extends cdktf.TerraformMetaArguments { /** * Whether to allow sending and receiving of packets with non-matching source or destination IPs. This defaults to false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#can_ip_forward ComputeInstanceTemplate#can_ip_forward} */ readonly canIpForward?: boolean | cdktf.IResolvable; /** * A brief description of this resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#description ComputeInstanceTemplate#description} */ readonly description?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#id ComputeInstanceTemplate#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; /** * A description of the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#instance_description ComputeInstanceTemplate#instance_description} */ readonly instanceDescription?: 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_template#key_revocation_action_type ComputeInstanceTemplate#key_revocation_action_type} */ readonly keyRevocationActionType?: string; /** * A set of key/value label pairs to assign to instances created from this template. * * **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_template#labels ComputeInstanceTemplate#labels} */ readonly labels?: { [key: string]: string; }; /** * The machine type to create. To create a machine with a custom type (such as extended memory), format the value like custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of RAM. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#machine_type ComputeInstanceTemplate#machine_type} */ readonly machineType: string; /** * Metadata key/value pairs to make available from within instances created from this template. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#metadata ComputeInstanceTemplate#metadata} */ readonly metadata?: { [key: string]: string; }; /** * An alternative to using the startup-script metadata key, mostly to match the compute_instance resource. This replaces the startup-script metadata key on the created instance and thus the two mechanisms are not allowed to be used simultaneously. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#metadata_startup_script ComputeInstanceTemplate#metadata_startup_script} */ readonly metadataStartupScript?: string; /** * Specifies a minimum CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell or Intel Skylake. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#min_cpu_platform ComputeInstanceTemplate#min_cpu_platform} */ readonly minCpuPlatform?: string; /** * The name of the instance template. If you leave this blank, Terraform will auto-generate a unique name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#name ComputeInstanceTemplate#name} */ readonly name?: string; /** * Creates a unique name beginning with the specified prefix. Conflicts with name. Max length is 54 characters. Prefixes with lengths longer than 37 characters will use a shortened UUID that will be more prone to collisions. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#name_prefix ComputeInstanceTemplate#name_prefix} */ readonly namePrefix?: string; /** * The ID of the project in which the resource belongs. If it is not 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_template#project ComputeInstanceTemplate#project} */ readonly project?: string; /** * An instance template is a global resource that is not bound to a zone or a region. However, you can still specify some regional resources in an instance template, which restricts the template to the region where that resource resides. For example, a custom subnetwork resource is tied to a specific region. Defaults to the region of the Provider if no value is given. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#region ComputeInstanceTemplate#region} */ readonly region?: string; /** * 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_template#resource_manager_tags ComputeInstanceTemplate#resource_manager_tags} */ readonly resourceManagerTags?: { [key: string]: 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_template#resource_policies ComputeInstanceTemplate#resource_policies} */ readonly resourcePolicies?: string[]; /** * Tags to attach to the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#tags ComputeInstanceTemplate#tags} */ readonly tags?: string[]; /** * advanced_machine_features block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#advanced_machine_features ComputeInstanceTemplate#advanced_machine_features} */ readonly advancedMachineFeatures?: ComputeInstanceTemplateAdvancedMachineFeatures; /** * confidential_instance_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#confidential_instance_config ComputeInstanceTemplate#confidential_instance_config} */ readonly confidentialInstanceConfig?: ComputeInstanceTemplateConfidentialInstanceConfig; /** * disk block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#disk ComputeInstanceTemplate#disk} */ readonly disk: ComputeInstanceTemplateDisk[] | cdktf.IResolvable; /** * guest_accelerator block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#guest_accelerator ComputeInstanceTemplate#guest_accelerator} */ readonly guestAccelerator?: ComputeInstanceTemplateGuestAccelerator[] | cdktf.IResolvable; /** * network_interface block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#network_interface ComputeInstanceTemplate#network_interface} */ readonly networkInterface?: ComputeInstanceTemplateNetworkInterface[] | 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_template#network_performance_config ComputeInstanceTemplate#network_performance_config} */ readonly networkPerformanceConfig?: ComputeInstanceTemplateNetworkPerformanceConfig; /** * reservation_affinity block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#reservation_affinity ComputeInstanceTemplate#reservation_affinity} */ readonly reservationAffinity?: ComputeInstanceTemplateReservationAffinity; /** * scheduling block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#scheduling ComputeInstanceTemplate#scheduling} */ readonly scheduling?: ComputeInstanceTemplateScheduling; /** * service_account block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#service_account ComputeInstanceTemplate#service_account} */ readonly serviceAccount?: ComputeInstanceTemplateServiceAccount; /** * shielded_instance_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#shielded_instance_config ComputeInstanceTemplate#shielded_instance_config} */ readonly shieldedInstanceConfig?: ComputeInstanceTemplateShieldedInstanceConfig; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#timeouts ComputeInstanceTemplate#timeouts} */ readonly timeouts?: ComputeInstanceTemplateTimeouts; } export interface ComputeInstanceTemplateAdvancedMachineFeatures { /** * 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_template#enable_nested_virtualization ComputeInstanceTemplate#enable_nested_virtualization} */ readonly enableNestedVirtualization?: boolean | cdktf.IResolvable; /** * Whether to enable UEFI networking or not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#enable_uefi_networking ComputeInstanceTemplate#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_template#performance_monitoring_unit ComputeInstanceTemplate#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_template#threads_per_core ComputeInstanceTemplate#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_template#turbo_mode ComputeInstanceTemplate#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_template#visible_core_count ComputeInstanceTemplate#visible_core_count} */ readonly visibleCoreCount?: number; } export declare function computeInstanceTemplateAdvancedMachineFeaturesToTerraform(struct?: ComputeInstanceTemplateAdvancedMachineFeaturesOutputReference | ComputeInstanceTemplateAdvancedMachineFeatures): any; export declare function computeInstanceTemplateAdvancedMachineFeaturesToHclTerraform(struct?: ComputeInstanceTemplateAdvancedMachineFeaturesOutputReference | ComputeInstanceTemplateAdvancedMachineFeatures): any; export declare class ComputeInstanceTemplateAdvancedMachineFeaturesOutputReference 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(): ComputeInstanceTemplateAdvancedMachineFeatures | undefined; set internalValue(value: ComputeInstanceTemplateAdvancedMachineFeatures | 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 ComputeInstanceTemplateConfidentialInstanceConfig { /** * * 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_template#confidential_instance_type ComputeInstanceTemplate#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_template#enable_confidential_compute ComputeInstanceTemplate#enable_confidential_compute} */ readonly enableConfidentialCompute?: boolean | cdktf.IResolvable; } export declare function computeInstanceTemplateConfidentialInstanceConfigToTerraform(struct?: ComputeInstanceTemplateConfidentialInstanceConfigOutputReference | ComputeInstanceTemplateConfidentialInstanceConfig): any; export declare function computeInstanceTemplateConfidentialInstanceConfigToHclTerraform(struct?: ComputeInstanceTemplateConfidentialInstanceConfigOutputReference | ComputeInstanceTemplateConfidentialInstanceConfig): any; export declare class ComputeInstanceTemplateConfidentialInstanceConfigOutputReference 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(): ComputeInstanceTemplateConfidentialInstanceConfig | undefined; set internalValue(value: ComputeInstanceTemplateConfidentialInstanceConfig | 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 ComputeInstanceTemplateDiskDiskEncryptionKey { /** * The self link of the encryption key that is stored in Google Cloud KMS. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#kms_key_self_link ComputeInstanceTemplate#kms_key_self_link} */ readonly kmsKeySelfLink: string; } export declare function computeInstanceTemplateDiskDiskEncryptionKeyToTerraform(struct?: ComputeInstanceTemplateDiskDiskEncryptionKeyOutputReference | ComputeInstanceTemplateDiskDiskEncryptionKey): any; export declare function computeInstanceTemplateDiskDiskEncryptionKeyToHclTerraform(struct?: ComputeInstanceTemplateDiskDiskEncryptionKeyOutputReference | ComputeInstanceTemplateDiskDiskEncryptionKey): any; export declare class ComputeInstanceTemplateDiskDiskEncryptionKeyOutputReference 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(): ComputeInstanceTemplateDiskDiskEncryptionKey | undefined; set internalValue(value: ComputeInstanceTemplateDiskDiskEncryptionKey | undefined); private _kmsKeySelfLink?; get kmsKeySelfLink(): string; set kmsKeySelfLink(value: string); get kmsKeySelfLinkInput(): string | undefined; } export interface ComputeInstanceTemplateDiskSourceImageEncryptionKey { /** * The self link of the encryption key that is stored in * Google Cloud KMS. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#kms_key_self_link ComputeInstanceTemplate#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.13.0/docs/resources/compute_instance_template#kms_key_service_account ComputeInstanceTemplate#kms_key_service_account} */ readonly kmsKeyServiceAccount?: string; } export declare function computeInstanceTemplateDiskSourceImageEncryptionKeyToTerraform(struct?: ComputeInstanceTemplateDiskSourceImageEncryptionKeyOutputReference | ComputeInstanceTemplateDiskSourceImageEncryptionKey): any; export declare function computeInstanceTemplateDiskSourceImageEncryptionKeyToHclTerraform(struct?: ComputeInstanceTemplateDiskSourceImageEncryptionKeyOutputReference | ComputeInstanceTemplateDiskSourceImageEncryptionKey): any; export declare class ComputeInstanceTemplateDiskSourceImageEncryptionKeyOutputReference 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(): ComputeInstanceTemplateDiskSourceImageEncryptionKey | undefined; set internalValue(value: ComputeInstanceTemplateDiskSourceImageEncryptionKey | undefined); private _kmsKeySelfLink?; get kmsKeySelfLink(): string; set kmsKeySelfLink(value: string); get kmsKeySelfLinkInput(): string | undefined; private _kmsKeyServiceAccount?; get kmsKeyServiceAccount(): string; set kmsKeyServiceAccount(value: string); resetKmsKeyServiceAccount(): void; get kmsKeyServiceAccountInput(): string | undefined; } export interface ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey { /** * The self link of the encryption key that is stored in * Google Cloud KMS. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#kms_key_self_link ComputeInstanceTemplate#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.13.0/docs/resources/compute_instance_template#kms_key_service_account ComputeInstanceTemplate#kms_key_service_account} */ readonly kmsKeyServiceAccount?: string; } export declare function computeInstanceTemplateDiskSourceSnapshotEncryptionKeyToTerraform(struct?: ComputeInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference | ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey): any; export declare function computeInstanceTemplateDiskSourceSnapshotEncryptionKeyToHclTerraform(struct?: ComputeInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference | ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey): any; export declare class ComputeInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference 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(): ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey | undefined; set internalValue(value: ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey | undefined); private _kmsKeySelfLink?; get kmsKeySelfLink(): string; set kmsKeySelfLink(value: string); get kmsKeySelfLinkInput(): string | undefined; private _kmsKeyServiceAccount?; get kmsKeyServiceAccount(): string; set kmsKeyServiceAccount(value: string); resetKmsKeyServiceAccount(): void; get kmsKeyServiceAccountInput(): string | undefined; } export interface ComputeInstanceTemplateDisk { /** * Whether or not the disk should be auto-deleted. This defaults to true. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#auto_delete ComputeInstanceTemplate#auto_delete} */ readonly autoDelete?: boolean | cdktf.IResolvable; /** * Indicates that this is a boot disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#boot ComputeInstanceTemplate#boot} */ readonly boot?: boolean | cdktf.IResolvable; /** * A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#device_name ComputeInstanceTemplate#device_name} */ readonly deviceName?: string; /** * Name of the disk. When not provided, this defaults to the name of the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#disk_name ComputeInstanceTemplate#disk_name} */ readonly diskName?: string; /** * The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be one of 375 or 3000 GB, with a default of 375 GB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#disk_size_gb ComputeInstanceTemplate#disk_size_gb} */ readonly diskSizeGb?: number; /** * The Google Compute Engine disk type. Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#disk_type ComputeInstanceTemplate#disk_type} */ readonly diskType?: string; /** * Specifies the disk interface to use for attaching this disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#interface ComputeInstanceTemplate#interface} */ readonly interface?: string; /** * A set of key/value label pairs to assign to disks, * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#labels ComputeInstanceTemplate#labels} */ readonly labels?: { [key: string]: string; }; /** * The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#mode ComputeInstanceTemplate#mode} */ readonly mode?: 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. For more details, see the [Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk) or the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks) depending on the selected disk_type. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#provisioned_iops ComputeInstanceTemplate#provisioned_iops} */ readonly provisionedIops?: number; /** * Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#provisioned_throughput ComputeInstanceTemplate#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_template#resource_manager_tags ComputeInstanceTemplate#resource_manager_tags} */ readonly resourceManagerTags?: { [key: string]: string; }; /** * A list (short name or id) of resource policies to attach to this disk. 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_template#resource_policies ComputeInstanceTemplate#resource_policies} */ readonly resourcePolicies?: string[]; /** * The name (not self_link) of the disk (such as those managed by google_compute_disk) to attach. ~> Note: Either source or source_image is required when creating a new instance except for when creating a local SSD. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#source ComputeInstanceTemplate#source} */ readonly source?: string; /** * The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. ~> Note: Either source or source_image is required when creating a new instance except for when creating a local SSD. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#source_image ComputeInstanceTemplate#source_image} */ readonly sourceImage?: string; /** * The source snapshot to create this disk. When creating * a new instance, one of initializeParams.sourceSnapshot, * initializeParams.sourceImage, or disks.source is * required except for local SSD. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#source_snapshot ComputeInstanceTemplate#source_snapshot} */ readonly sourceSnapshot?: string; /** * The type of Google Compute Engine disk, can be either "SCRATCH" or "PERSISTENT". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#type ComputeInstanceTemplate#type} */ readonly type?: string; /** * disk_encryption_key block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#disk_encryption_key ComputeInstanceTemplate#disk_encryption_key} */ readonly diskEncryptionKey?: ComputeInstanceTemplateDiskDiskEncryptionKey; /** * source_image_encryption_key block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#source_image_encryption_key ComputeInstanceTemplate#source_image_encryption_key} */ readonly sourceImageEncryptionKey?: ComputeInstanceTemplateDiskSourceImageEncryptionKey; /** * source_snapshot_encryption_key block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#source_snapshot_encryption_key ComputeInstanceTemplate#source_snapshot_encryption_key} */ readonly sourceSnapshotEncryptionKey?: ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey; } export declare function computeInstanceTemplateDiskToTerraform(struct?: ComputeInstanceTemplateDisk | cdktf.IResolvable): any; export declare function computeInstanceTemplateDiskToHclTerraform(struct?: ComputeInstanceTemplateDisk | cdktf.IResolvable): any; export declare class ComputeInstanceTemplateDiskOutputReference 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(): ComputeInstanceTemplateDisk | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceTemplateDisk | cdktf.IResolvable | undefined); private _autoDelete?; get autoDelete(): boolean | cdktf.IResolvable; set autoDelete(value: boolean | cdktf.IResolvable); resetAutoDelete(): void; get autoDeleteInput(): boolean | cdktf.IResolvable | undefined; private _boot?; get boot(): boolean | cdktf.IResolvable; set boot(value: boolean | cdktf.IResolvable); resetBoot(): void; get bootInput(): boolean | cdktf.IResolvable | undefined; private _deviceName?; get deviceName(): string; set deviceName(value: string); resetDeviceName(): void; get deviceNameInput(): string | undefined; private _diskName?; get diskName(): string; set diskName(value: string); resetDiskName(): void; get diskNameInput(): string | undefined; private _diskSizeGb?; get diskSizeGb(): number; set diskSizeGb(value: number); resetDiskSizeGb(): void; get diskSizeGbInput(): number | undefined; private _diskType?; get diskType(): string; set diskType(value: string); resetDiskType(): void; get diskTypeInput(): string | undefined; private _interface?; get interface(): string; set interface(value: string); resetInterface(): void; get interfaceInput(): string | undefined; private _labels?; get labels(): { [key: string]: string; }; set labels(value: { [key: string]: string; }); resetLabels(): void; get labelsInput(): { [key: string]: string; } | undefined; private _mode?; get mode(): string; set mode(value: string); resetMode(): void; get modeInput(): 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 _source?; get source(): string; set source(value: string); resetSource(): void; get sourceInput(): string | undefined; private _sourceImage?; get sourceImage(): string; set sourceImage(value: string); resetSourceImage(): void; get sourceImageInput(): string | undefined; private _sourceSnapshot?; get sourceSnapshot(): string; set sourceSnapshot(value: string); resetSourceSnapshot(): void; get sourceSnapshotInput(): string | undefined; private _type?; get type(): string; set type(value: string); resetType(): void; get typeInput(): string | undefined; private _diskEncryptionKey; get diskEncryptionKey(): ComputeInstanceTemplateDiskDiskEncryptionKeyOutputReference; putDiskEncryptionKey(value: ComputeInstanceTemplateDiskDiskEncryptionKey): void; resetDiskEncryptionKey(): void; get diskEncryptionKeyInput(): ComputeInstanceTemplateDiskDiskEncryptionKey | undefined; private _sourceImageEncryptionKey; get sourceImageEncryptionKey(): ComputeInstanceTemplateDiskSourceImageEncryptionKeyOutputReference; putSourceImageEncryptionKey(value: ComputeInstanceTemplateDiskSourceImageEncryptionKey): void; resetSourceImageEncryptionKey(): void; get sourceImageEncryptionKeyInput(): ComputeInstanceTemplateDiskSourceImageEncryptionKey | undefined; private _sourceSnapshotEncryptionKey; get sourceSnapshotEncryptionKey(): ComputeInstanceTemplateDiskSourceSnapshotEncryptionKeyOutputReference; putSourceSnapshotEncryptionKey(value: ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey): void; resetSourceSnapshotEncryptionKey(): void; get sourceSnapshotEncryptionKeyInput(): ComputeInstanceTemplateDiskSourceSnapshotEncryptionKey | undefined; } export declare class ComputeInstanceTemplateDiskList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceTemplateDisk[] | 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): ComputeInstanceTemplateDiskOutputReference; } export interface ComputeInstanceTemplateGuestAccelerator { /** * 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_template#count ComputeInstanceTemplate#count} */ readonly count: number; /** * The accelerator type resource to expose 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_template#type ComputeInstanceTemplate#type} */ readonly type: string; } export declare function computeInstanceTemplateGuestAcceleratorToTerraform(struct?: ComputeInstanceTemplateGuestAccelerator | cdktf.IResolvable): any; export declare function computeInstanceTemplateGuestAcceleratorToHclTerraform(struct?: ComputeInstanceTemplateGuestAccelerator | cdktf.IResolvable): any; export declare class ComputeInstanceTemplateGuestAcceleratorOutputReference 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(): ComputeInstanceTemplateGuestAccelerator | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceTemplateGuestAccelerator | 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 ComputeInstanceTemplateGuestAcceleratorList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceTemplateGuestAccelerator[] | 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): ComputeInstanceTemplateGuestAcceleratorOutputReference; } export interface ComputeInstanceTemplateNetworkInterfaceAccessConfig { /** * The IP address that will be 1:1 mapped to the instance's network ip. If not given, one will be generated. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#nat_ip ComputeInstanceTemplate#nat_ip} */ readonly natIp?: string; /** * The networking tier used for configuring this instance template. This field can take the following values: PREMIUM, STANDARD, FIXED_STANDARD. If this field is not specified, it is assumed to be PREMIUM. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#network_tier ComputeInstanceTemplate#network_tier} */ readonly networkTier?: string; } export declare function computeInstanceTemplateNetworkInterfaceAccessConfigToTerraform(struct?: ComputeInstanceTemplateNetworkInterfaceAccessConfig | cdktf.IResolvable): any; export declare function computeInstanceTemplateNetworkInterfaceAccessConfigToHclTerraform(struct?: ComputeInstanceTemplateNetworkInterfaceAccessConfig | cdktf.IResolvable): any; export declare class ComputeInstanceTemplateNetworkInterfaceAccessConfigOutputReference 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(): ComputeInstanceTemplateNetworkInterfaceAccessConfig | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceTemplateNetworkInterfaceAccessConfig | 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; get publicPtrDomainName(): string; } export declare class ComputeInstanceTemplateNetworkInterfaceAccessConfigList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceTemplateNetworkInterfaceAccessConfig[] | 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): ComputeInstanceTemplateNetworkInterfaceAccessConfigOutputReference; } export interface ComputeInstanceTemplateNetworkInterfaceAliasIpRange { /** * The IP CIDR range represented by this alias IP range. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. At the time of writing only a netmask (e.g. /24) may be supplied, with a CIDR format resulting in an API error. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#ip_cidr_range ComputeInstanceTemplate#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. If left unspecified, the primary range of the subnetwork will be used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_instance_template#subnetwork_range_name ComputeInstanceTemplate#subnetwork_range_name} */ readonly subnetworkRangeName?: string; } export declare function computeInstanceTemplateNetworkInterfaceAliasIpRangeToTerraform(struct?: ComputeInstanceTemplateNetworkInterfaceAliasIpRange | cdktf.IResolvable): any; export declare function computeInstanceTemplateNetworkInterfaceAliasIpRangeToHclTerraform(struct?: ComputeInstanceTemplateNetworkInterfaceAliasIpRange | cdktf.IResolvable): any; export declare class ComputeInstanceTemplateNetworkInterfaceAliasIpRangeOutputReference 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(): ComputeInstanceTemplateNetworkInterfaceAliasIpRange | cdktf.IResolvable | undefined; set internalValue(value: ComputeInstanceTemplateNetworkInterfaceAliasIpRange | 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 ComputeInstanceTemplateNetworkInterfaceAliasIpRangeList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeInstanceTemplateNetworkInterfaceAliasIpRange[] | 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): ComputeInstanceTemplateNetworkInterfaceAliasIpRangeOutputReference; } export interface ComputeInstanceTemplateNetworkInterfaceIpv6