import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface InstanceConfig extends cdktf.TerraformMetaArguments { /** * Associate a public IP address with an instance in a VPC or Classic. Boolean value, Default is false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#allocate_public_ip Instance#allocate_public_ip} */ readonly allocatePublicIp?: boolean | cdktf.IResolvable; /** * Anti-DDoS service package ID. This is required when you want to request an AntiDDoS IP. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#anti_ddos_package_id Instance#anti_ddos_package_id} */ readonly antiDdosPackageId?: string; /** * The available zone for the CVM instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#availability_zone Instance#availability_zone} */ readonly availabilityZone?: string; /** * bandwidth package id. if user is standard user, then the bandwidth_package_id is needed, or default has bandwidth_package_id. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#bandwidth_package_id Instance#bandwidth_package_id} */ readonly bandwidthPackageId?: string; /** * CAM role name authorized to access. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#cam_role_name Instance#cam_role_name} */ readonly camRoleName?: string; /** * Id of cdh instance. Note: it only works when instance_charge_type is set to `CDHPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#cdh_host_id Instance#cdh_host_id} */ readonly cdhHostId?: string; /** * Type of instance created on cdh, the value of this parameter is in the format of CDH_XCXG based on the number of CPU cores and memory capacity. Note: it only works when instance_charge_type is set to `CDHPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#cdh_instance_type Instance#cdh_instance_type} */ readonly cdhInstanceType?: string; /** * Exclusive cluster id. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#dedicated_cluster_id Instance#dedicated_cluster_id} */ readonly dedicatedClusterId?: string; /** * Whether the termination protection is enabled. Default is `false`. If set true, which means that this instance can not be deleted by an API action. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#disable_api_termination Instance#disable_api_termination} */ readonly disableApiTermination?: boolean | cdktf.IResolvable; /** * Disable enhance service for automation, it is enabled by default. When this options is set, monitor agent won't be installed. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#disable_automation_service Instance#disable_automation_service} */ readonly disableAutomationService?: boolean | cdktf.IResolvable; /** * Disable enhance service for monitor, it is enabled by default. When this options is set, monitor agent won't be installed. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#disable_monitor_service Instance#disable_monitor_service} */ readonly disableMonitorService?: boolean | cdktf.IResolvable; /** * Disable enhance service for security, it is enabled by default. When this options is set, security agent won't be installed. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#disable_security_service Instance#disable_security_service} */ readonly disableSecurityService?: boolean | cdktf.IResolvable; /** * Indicate whether to force delete the instance. Default is `false`. If set true, the instance will be permanently deleted instead of being moved into the recycle bin. Note: only works for `PREPAID` instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#force_delete Instance#force_delete} */ readonly forceDelete?: boolean | cdktf.IResolvable; /** * Whether to force the instance host to be replaced. Value range: true: Allows the instance to change the host and restart the instance. Local disk machines do not support specifying this parameter; false: Does not allow the instance to change the host and only join the placement group on the current host. This may cause the placement group to fail to change. Only useful for change `placement_group_id`, Default is false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#force_replace_placement_group_id Instance#force_replace_placement_group_id} */ readonly forceReplacePlacementGroupId?: boolean | cdktf.IResolvable; /** * The hostname of the instance. Windows instance: The name should be a combination of 2 to 15 characters comprised of letters (case insensitive), numbers, and hyphens (-). Period (.) is not supported, and the name cannot be a string of pure numbers. Other types (such as Linux) of instances: The name should be a combination of 2 to 60 characters, supporting multiple periods (.). The piece between two periods is composed of letters (case insensitive), numbers, and hyphens (-). Changing the `hostname` will cause the instance system to restart. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#hostname Instance#hostname} */ readonly hostname?: string; /** * High-performance computing cluster ID. If the instance created is a high-performance computing instance, you need to specify the cluster in which the instance is placed, otherwise it cannot be specified. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#hpc_cluster_id Instance#hpc_cluster_id} */ readonly hpcClusterId?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#id Instance#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; /** * The image to use for the instance. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#image_id Instance#image_id} */ readonly imageId?: string; /** * The charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDHPAID` and `CDCPAID`. The default is `POSTPAID_BY_HOUR`. Note: TencentCloud International only supports `POSTPAID_BY_HOUR` and `CDHPAID`. `PREPAID` instance may not allow to delete before expired. `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. `CDHPAID` instance must set `cdh_instance_type` and `cdh_host_id`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#instance_charge_type Instance#instance_charge_type} */ readonly instanceChargeType?: string; /** * The tenancy (time unit is month) of the prepaid instance, NOTE: it only works when instance_charge_type is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`, `48`, `60`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#instance_charge_type_prepaid_period Instance#instance_charge_type_prepaid_period} */ readonly instanceChargeTypePrepaidPeriod?: number; /** * Auto renewal flag. Valid values: `NOTIFY_AND_AUTO_RENEW`: notify upon expiration and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: notify upon expiration but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: neither notify upon expiration nor renew automatically. Default value: `NOTIFY_AND_MANUAL_RENEW`. If this parameter is specified as `NOTIFY_AND_AUTO_RENEW`, the instance will be automatically renewed on a monthly basis if the account balance is sufficient. NOTE: it only works when instance_charge_type is set to `PREPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#instance_charge_type_prepaid_renew_flag Instance#instance_charge_type_prepaid_renew_flag} */ readonly instanceChargeTypePrepaidRenewFlag?: string; /** * The name of the instance. The max length of instance_name is 128, and default value is `Terraform-CVM-Instance`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#instance_name Instance#instance_name} */ readonly instanceName?: string; /** * The type of the instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#instance_type Instance#instance_type} */ readonly instanceType?: string; /** * Internet charge type of the instance, Valid values are `BANDWIDTH_PREPAID`, `TRAFFIC_POSTPAID_BY_HOUR`, `BANDWIDTH_POSTPAID_BY_HOUR` and `BANDWIDTH_PACKAGE`. If not set, internet charge type are consistent with the cvm charge type by default. This value takes NO Effect when changing and does not need to be set when `allocate_public_ip` is false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#internet_charge_type Instance#internet_charge_type} */ readonly internetChargeType?: string; /** * Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bits per second). This value does not need to be set when `allocate_public_ip` is false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#internet_max_bandwidth_out Instance#internet_max_bandwidth_out} */ readonly internetMaxBandwidthOut?: number; /** * AddressType. Default value: WanIP. For beta users of dedicated IP. the value can be: HighQualityEIP: Dedicated IP. Note that dedicated IPs are only available in partial regions. For beta users of Anti-DDoS IP, the value can be: AntiDDoSEIP: Anti-DDoS EIP. Note that Anti-DDoS IPs are only available in partial regions. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#ipv4_address_type Instance#ipv4_address_type} */ readonly ipv4AddressType?: string; /** * Specify the number of randomly generated IPv6 addresses for the Elastic Network Interface. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#ipv6_address_count Instance#ipv6_address_count} */ readonly ipv6AddressCount?: number; /** * IPv6 AddressType. Default value: WanIP. EIPv6: Elastic IPv6; HighQualityEIPv6: Premium IPv6, only China Hong Kong supports premium IPv6. To allocate IPv6 addresses to resources, please specify the Elastic IPv6 type. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#ipv6_address_type Instance#ipv6_address_type} */ readonly ipv6AddressType?: string; /** * Whether to keep image login or not, default is `false`. When the image type is private or shared or imported, this parameter can be set `true`. Modifications may lead to the reinstallation of the instance's operating system.. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#keep_image_login Instance#keep_image_login} */ readonly keepImageLogin?: boolean | cdktf.IResolvable; /** * The key pair to use for the instance, it looks like `skey-16jig7tx`. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#key_ids Instance#key_ids} */ readonly keyIds?: string[]; /** * The key pair to use for the instance, it looks like `skey-16jig7tx`. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#key_name Instance#key_name} */ readonly keyName?: string; /** * Instance launch template ID. This parameter allows you to create an instance using the preset parameters in the instance template. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#launch_template_id Instance#launch_template_id} */ readonly launchTemplateId?: string; /** * The instance launch template version number. If given, a new instance launch template will be created based on the given version number. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#launch_template_version Instance#launch_template_version} */ readonly launchTemplateVersion?: number; /** * A list of orderly security group IDs to associate with. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#orderly_security_groups Instance#orderly_security_groups} */ readonly orderlySecurityGroups?: string[]; /** * Password for the instance. In order for the new password to take effect, the instance will be restarted after the password change. Modifications may lead to the reinstallation of the instance's operating system. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#password Instance#password} */ readonly password?: string; /** * The ID of a placement group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#placement_group_id Instance#placement_group_id} */ readonly placementGroupId?: string; /** * The private IP to be assigned to this instance, must be in the provided subnet and available. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#private_ip Instance#private_ip} */ readonly privateIp?: string; /** * The project the instance belongs to, default to 0. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#project_id Instance#project_id} */ readonly projectId?: number; /** * Release elastic IP. Under EIP 2.0, only the first EIP under the primary network card is provided, and the EIP types are limited to HighQualityEIP, AntiDDoSEIP, EIPv6, and HighQualityEIPv6. Default behavior is not released. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#release_address Instance#release_address} */ readonly releaseAddress?: boolean | cdktf.IResolvable; /** * Set instance to running or stop. Default value is true, the instance will shutdown when this flag is false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#running_flag Instance#running_flag} */ readonly runningFlag?: boolean | cdktf.IResolvable; /** * A list of security group IDs to associate with. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#security_groups Instance#security_groups} */ readonly securityGroups?: string[]; /** * Type of spot instance, only support `ONE-TIME` now. Note: it only works when instance_charge_type is set to `SPOTPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#spot_instance_type Instance#spot_instance_type} */ readonly spotInstanceType?: string; /** * Max price of a spot instance, is the format of decimal string, for example "0.50". Note: it only works when instance_charge_type is set to `SPOTPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#spot_max_price Instance#spot_max_price} */ readonly spotMaxPrice?: string; /** * Instance shutdown mode. Valid values: SOFT_FIRST: perform a soft shutdown first, and force shut down the instance if the soft shutdown fails; HARD: force shut down the instance directly; SOFT: soft shutdown only. Default value: SOFT. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#stop_type Instance#stop_type} */ readonly stopType?: string; /** * Billing method of a pay-as-you-go instance after shutdown. Available values: `KEEP_CHARGING`,`STOP_CHARGING`. Default `KEEP_CHARGING`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#stopped_mode Instance#stopped_mode} */ readonly stoppedMode?: string; /** * The ID of a VPC subnet. If you want to create instances in a VPC network, this parameter must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#subnet_id Instance#subnet_id} */ readonly subnetId?: string; /** * System disk snapshot ID used to initialize the system disk. When system disk type is `LOCAL_BASIC` and `LOCAL_SSD`, disk id is not supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#system_disk_id Instance#system_disk_id} */ readonly systemDiskId?: string; /** * Name of the system disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#system_disk_name Instance#system_disk_name} */ readonly systemDiskName?: string; /** * Resize online. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#system_disk_resize_online Instance#system_disk_resize_online} */ readonly systemDiskResizeOnline?: boolean | cdktf.IResolvable; /** * Size of the system disk. unit is GB, Default is 50GB. If modified, the instance may force stop. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#system_disk_size Instance#system_disk_size} */ readonly systemDiskSize?: number; /** * System disk type. For more information on limits of system disk types, see [Storage Overview](https://intl.cloud.tencent.com/document/product/213/4952). Valid values: `LOCAL_BASIC`: local disk, `LOCAL_SSD`: local SSD disk, `CLOUD_BASIC`: cloud disk, `CLOUD_SSD`: cloud SSD disk, `CLOUD_PREMIUM`: Premium Cloud Storage, `CLOUD_BSSD`: Basic SSD, `CLOUD_HSSD`: Enhanced SSD, `CLOUD_TSSD`: Tremendous SSD. NOTE: If modified, the instance may force stop. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#system_disk_type Instance#system_disk_type} */ readonly systemDiskType?: string; /** * A mapping of tags to assign to the resource. For tag limits, please refer to [Use Limits](https://intl.cloud.tencent.com/document/product/651/13354). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#tags Instance#tags} */ readonly tags?: { [key: string]: string; }; /** * The user data to be injected into this instance. Must be base64 encoded and up to 16 KB. If `user_data_replace_on_change` is set to `true`, updates to this field will trigger the destruction and recreation of the CVM instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#user_data Instance#user_data} */ readonly userData?: string; /** * The user data to be injected into this instance, in plain text. Conflicts with `user_data`. Up to 16 KB after base64 encoded. If `user_data_replace_on_change` is set to `true`, updates to this field will trigger the destruction and recreation of the CVM instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#user_data_raw Instance#user_data_raw} */ readonly userDataRaw?: string; /** * When used in combination with `user_data` or `user_data_raw` will trigger a destroy and recreate of the CVM instance when set to `true`. Default is `false`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#user_data_replace_on_change Instance#user_data_replace_on_change} */ readonly userDataReplaceOnChange?: boolean | cdktf.IResolvable; /** * The ID of a VPC network. If you want to create instances in a VPC network, this parameter must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#vpc_id Instance#vpc_id} */ readonly vpcId?: string; /** * data_disks block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#data_disks Instance#data_disks} */ readonly dataDisks?: InstanceDataDisks[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#timeouts Instance#timeouts} */ readonly timeouts?: InstanceTimeouts; } export interface InstanceDataDisks { /** * Data disk ID used to initialize the data disk. When data disk type is `LOCAL_BASIC` and `LOCAL_SSD`, disk id is not supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#data_disk_id Instance#data_disk_id} */ readonly dataDiskId?: string; /** * Name of data disk. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#data_disk_name Instance#data_disk_name} */ readonly dataDiskName?: string; /** * Size of the data disk, and unit is GB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#data_disk_size Instance#data_disk_size} */ readonly dataDiskSize: number; /** * Snapshot ID of the data disk. The selected data disk snapshot size must be smaller than the data disk size. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#data_disk_snapshot_id Instance#data_disk_snapshot_id} */ readonly dataDiskSnapshotId?: string; /** * Data disk type. For more information about limits on different data disk types, see [Storage Overview](https://intl.cloud.tencent.com/document/product/213/4952). Valid values: LOCAL_BASIC: local disk, LOCAL_SSD: local SSD disk, LOCAL_NVME: local NVME disk, specified in the InstanceType, LOCAL_PRO: local HDD disk, specified in the InstanceType, CLOUD_BASIC: HDD cloud disk, CLOUD_PREMIUM: Premium Cloud Storage, CLOUD_SSD: SSD, CLOUD_HSSD: Enhanced SSD, CLOUD_TSSD: Tremendous SSD, CLOUD_BSSD: Balanced SSD. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#data_disk_type Instance#data_disk_type} */ readonly dataDiskType: string; /** * Decides whether the disk is deleted with instance(only applied to `CLOUD_BASIC`, `CLOUD_SSD` and `CLOUD_PREMIUM` disk with `POSTPAID_BY_HOUR` instance), default is true. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#delete_with_instance Instance#delete_with_instance} */ readonly deleteWithInstance?: boolean | cdktf.IResolvable; /** * Decides whether the disk is deleted with instance(only applied to `CLOUD_BASIC`, `CLOUD_SSD` and `CLOUD_PREMIUM` disk with `PREPAID` instance), default is false. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#delete_with_instance_prepaid Instance#delete_with_instance_prepaid} */ readonly deleteWithInstancePrepaid?: boolean | cdktf.IResolvable; /** * Decides whether the disk is encrypted. Default is `false`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#encrypt Instance#encrypt} */ readonly encrypt?: boolean | cdktf.IResolvable; /** * Optional parameters. When purchasing an encryption disk, customize the key. When this parameter is passed in, the `encrypt` parameter need be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#kms_key_id Instance#kms_key_id} */ readonly kmsKeyId?: string; /** * Add extra performance to the data disk. Only works when disk type is `CLOUD_TSSD` or `CLOUD_HSSD`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#throughput_performance Instance#throughput_performance} */ readonly throughputPerformance?: number; } export declare function instanceDataDisksToTerraform(struct?: InstanceDataDisks | cdktf.IResolvable): any; export declare function instanceDataDisksToHclTerraform(struct?: InstanceDataDisks | cdktf.IResolvable): any; export declare class InstanceDataDisksOutputReference 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(): InstanceDataDisks | cdktf.IResolvable | undefined; set internalValue(value: InstanceDataDisks | cdktf.IResolvable | undefined); private _dataDiskId?; get dataDiskId(): string; set dataDiskId(value: string); resetDataDiskId(): void; get dataDiskIdInput(): string; private _dataDiskName?; get dataDiskName(): string; set dataDiskName(value: string); resetDataDiskName(): void; get dataDiskNameInput(): string; private _dataDiskSize?; get dataDiskSize(): number; set dataDiskSize(value: number); get dataDiskSizeInput(): number; private _dataDiskSnapshotId?; get dataDiskSnapshotId(): string; set dataDiskSnapshotId(value: string); resetDataDiskSnapshotId(): void; get dataDiskSnapshotIdInput(): string; private _dataDiskType?; get dataDiskType(): string; set dataDiskType(value: string); get dataDiskTypeInput(): string; private _deleteWithInstance?; get deleteWithInstance(): boolean | cdktf.IResolvable; set deleteWithInstance(value: boolean | cdktf.IResolvable); resetDeleteWithInstance(): void; get deleteWithInstanceInput(): any; private _deleteWithInstancePrepaid?; get deleteWithInstancePrepaid(): boolean | cdktf.IResolvable; set deleteWithInstancePrepaid(value: boolean | cdktf.IResolvable); resetDeleteWithInstancePrepaid(): void; get deleteWithInstancePrepaidInput(): any; private _encrypt?; get encrypt(): boolean | cdktf.IResolvable; set encrypt(value: boolean | cdktf.IResolvable); resetEncrypt(): void; get encryptInput(): any; private _kmsKeyId?; get kmsKeyId(): string; set kmsKeyId(value: string); resetKmsKeyId(): void; get kmsKeyIdInput(): string; private _throughputPerformance?; get throughputPerformance(): number; set throughputPerformance(value: number); resetThroughputPerformance(): void; get throughputPerformanceInput(): number; } export declare class InstanceDataDisksList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: InstanceDataDisks[] | 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): InstanceDataDisksOutputReference; } export interface InstanceTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#create Instance#create} */ readonly create?: string; } export declare function instanceTimeoutsToTerraform(struct?: InstanceTimeouts | cdktf.IResolvable): any; export declare function instanceTimeoutsToHclTerraform(struct?: InstanceTimeouts | cdktf.IResolvable): any; export declare class InstanceTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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(): InstanceTimeouts | cdktf.IResolvable | undefined; set internalValue(value: InstanceTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance tencentcloud_instance} */ export declare class Instance extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_instance"; /** * Generates CDKTF code for importing a Instance resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the Instance to import * @param importFromId The id of the existing Instance that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Instance to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance tencentcloud_instance} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options InstanceConfig = {} */ constructor(scope: Construct, id: string, config?: InstanceConfig); private _allocatePublicIp?; get allocatePublicIp(): boolean | cdktf.IResolvable; set allocatePublicIp(value: boolean | cdktf.IResolvable); resetAllocatePublicIp(): void; get allocatePublicIpInput(): any; private _antiDdosPackageId?; get antiDdosPackageId(): string; set antiDdosPackageId(value: string); resetAntiDdosPackageId(): void; get antiDdosPackageIdInput(): string; private _availabilityZone?; get availabilityZone(): string; set availabilityZone(value: string); resetAvailabilityZone(): void; get availabilityZoneInput(): string; private _bandwidthPackageId?; get bandwidthPackageId(): string; set bandwidthPackageId(value: string); resetBandwidthPackageId(): void; get bandwidthPackageIdInput(): string; private _camRoleName?; get camRoleName(): string; set camRoleName(value: string); resetCamRoleName(): void; get camRoleNameInput(): string; private _cdhHostId?; get cdhHostId(): string; set cdhHostId(value: string); resetCdhHostId(): void; get cdhHostIdInput(): string; private _cdhInstanceType?; get cdhInstanceType(): string; set cdhInstanceType(value: string); resetCdhInstanceType(): void; get cdhInstanceTypeInput(): string; get cpu(): any; get createTime(): any; private _dedicatedClusterId?; get dedicatedClusterId(): string; set dedicatedClusterId(value: string); resetDedicatedClusterId(): void; get dedicatedClusterIdInput(): string; private _disableApiTermination?; get disableApiTermination(): boolean | cdktf.IResolvable; set disableApiTermination(value: boolean | cdktf.IResolvable); resetDisableApiTermination(): void; get disableApiTerminationInput(): any; private _disableAutomationService?; get disableAutomationService(): boolean | cdktf.IResolvable; set disableAutomationService(value: boolean | cdktf.IResolvable); resetDisableAutomationService(): void; get disableAutomationServiceInput(): any; private _disableMonitorService?; get disableMonitorService(): boolean | cdktf.IResolvable; set disableMonitorService(value: boolean | cdktf.IResolvable); resetDisableMonitorService(): void; get disableMonitorServiceInput(): any; private _disableSecurityService?; get disableSecurityService(): boolean | cdktf.IResolvable; set disableSecurityService(value: boolean | cdktf.IResolvable); resetDisableSecurityService(): void; get disableSecurityServiceInput(): any; get expiredTime(): any; private _forceDelete?; get forceDelete(): boolean | cdktf.IResolvable; set forceDelete(value: boolean | cdktf.IResolvable); resetForceDelete(): void; get forceDeleteInput(): any; private _forceReplacePlacementGroupId?; get forceReplacePlacementGroupId(): boolean | cdktf.IResolvable; set forceReplacePlacementGroupId(value: boolean | cdktf.IResolvable); resetForceReplacePlacementGroupId(): void; get forceReplacePlacementGroupIdInput(): any; private _hostname?; get hostname(): string; set hostname(value: string); resetHostname(): void; get hostnameInput(): string; private _hpcClusterId?; get hpcClusterId(): string; set hpcClusterId(value: string); resetHpcClusterId(): void; get hpcClusterIdInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _imageId?; get imageId(): string; set imageId(value: string); resetImageId(): void; get imageIdInput(): string; private _instanceChargeType?; get instanceChargeType(): string; set instanceChargeType(value: string); resetInstanceChargeType(): void; get instanceChargeTypeInput(): string; private _instanceChargeTypePrepaidPeriod?; get instanceChargeTypePrepaidPeriod(): number; set instanceChargeTypePrepaidPeriod(value: number); resetInstanceChargeTypePrepaidPeriod(): void; get instanceChargeTypePrepaidPeriodInput(): number; private _instanceChargeTypePrepaidRenewFlag?; get instanceChargeTypePrepaidRenewFlag(): string; set instanceChargeTypePrepaidRenewFlag(value: string); resetInstanceChargeTypePrepaidRenewFlag(): void; get instanceChargeTypePrepaidRenewFlagInput(): string; private _instanceName?; get instanceName(): string; set instanceName(value: string); resetInstanceName(): void; get instanceNameInput(): string; get instanceStatus(): any; private _instanceType?; get instanceType(): string; set instanceType(value: string); resetInstanceType(): void; get instanceTypeInput(): string; private _internetChargeType?; get internetChargeType(): string; set internetChargeType(value: string); resetInternetChargeType(): void; get internetChargeTypeInput(): string; private _internetMaxBandwidthOut?; get internetMaxBandwidthOut(): number; set internetMaxBandwidthOut(value: number); resetInternetMaxBandwidthOut(): void; get internetMaxBandwidthOutInput(): number; private _ipv4AddressType?; get ipv4AddressType(): string; set ipv4AddressType(value: string); resetIpv4AddressType(): void; get ipv4AddressTypeInput(): string; private _ipv6AddressCount?; get ipv6AddressCount(): number; set ipv6AddressCount(value: number); resetIpv6AddressCount(): void; get ipv6AddressCountInput(): number; private _ipv6AddressType?; get ipv6AddressType(): string; set ipv6AddressType(value: string); resetIpv6AddressType(): void; get ipv6AddressTypeInput(): string; get ipv6Addresses(): any; private _keepImageLogin?; get keepImageLogin(): boolean | cdktf.IResolvable; set keepImageLogin(value: boolean | cdktf.IResolvable); resetKeepImageLogin(): void; get keepImageLoginInput(): any; private _keyIds?; get keyIds(): string[]; set keyIds(value: string[]); resetKeyIds(): void; get keyIdsInput(): string[]; private _keyName?; get keyName(): string; set keyName(value: string); resetKeyName(): void; get keyNameInput(): string; private _launchTemplateId?; get launchTemplateId(): string; set launchTemplateId(value: string); resetLaunchTemplateId(): void; get launchTemplateIdInput(): string; private _launchTemplateVersion?; get launchTemplateVersion(): number; set launchTemplateVersion(value: number); resetLaunchTemplateVersion(): void; get launchTemplateVersionInput(): number; get memory(): any; private _orderlySecurityGroups?; get orderlySecurityGroups(): string[]; set orderlySecurityGroups(value: string[]); resetOrderlySecurityGroups(): void; get orderlySecurityGroupsInput(): string[]; get osName(): any; private _password?; get password(): string; set password(value: string); resetPassword(): void; get passwordInput(): string; private _placementGroupId?; get placementGroupId(): string; set placementGroupId(value: string); resetPlacementGroupId(): void; get placementGroupIdInput(): string; private _privateIp?; get privateIp(): string; set privateIp(value: string); resetPrivateIp(): void; get privateIpInput(): string; private _projectId?; get projectId(): number; set projectId(value: number); resetProjectId(): void; get projectIdInput(): number; get publicIp(): any; get publicIpv6Addresses(): any; private _releaseAddress?; get releaseAddress(): boolean | cdktf.IResolvable; set releaseAddress(value: boolean | cdktf.IResolvable); resetReleaseAddress(): void; get releaseAddressInput(): any; private _runningFlag?; get runningFlag(): boolean | cdktf.IResolvable; set runningFlag(value: boolean | cdktf.IResolvable); resetRunningFlag(): void; get runningFlagInput(): any; private _securityGroups?; get securityGroups(): string[]; set securityGroups(value: string[]); resetSecurityGroups(): void; get securityGroupsInput(): string[]; private _spotInstanceType?; get spotInstanceType(): string; set spotInstanceType(value: string); resetSpotInstanceType(): void; get spotInstanceTypeInput(): string; private _spotMaxPrice?; get spotMaxPrice(): string; set spotMaxPrice(value: string); resetSpotMaxPrice(): void; get spotMaxPriceInput(): string; private _stopType?; get stopType(): string; set stopType(value: string); resetStopType(): void; get stopTypeInput(): string; private _stoppedMode?; get stoppedMode(): string; set stoppedMode(value: string); resetStoppedMode(): void; get stoppedModeInput(): string; private _subnetId?; get subnetId(): string; set subnetId(value: string); resetSubnetId(): void; get subnetIdInput(): string; private _systemDiskId?; get systemDiskId(): string; set systemDiskId(value: string); resetSystemDiskId(): void; get systemDiskIdInput(): string; private _systemDiskName?; get systemDiskName(): string; set systemDiskName(value: string); resetSystemDiskName(): void; get systemDiskNameInput(): string; private _systemDiskResizeOnline?; get systemDiskResizeOnline(): boolean | cdktf.IResolvable; set systemDiskResizeOnline(value: boolean | cdktf.IResolvable); resetSystemDiskResizeOnline(): void; get systemDiskResizeOnlineInput(): any; private _systemDiskSize?; get systemDiskSize(): number; set systemDiskSize(value: number); resetSystemDiskSize(): void; get systemDiskSizeInput(): number; private _systemDiskType?; get systemDiskType(): string; set systemDiskType(value: string); resetSystemDiskType(): void; get systemDiskTypeInput(): string; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; }; private _userData?; get userData(): string; set userData(value: string); resetUserData(): void; get userDataInput(): string; private _userDataRaw?; get userDataRaw(): string; set userDataRaw(value: string); resetUserDataRaw(): void; get userDataRawInput(): string; private _userDataReplaceOnChange?; get userDataReplaceOnChange(): boolean | cdktf.IResolvable; set userDataReplaceOnChange(value: boolean | cdktf.IResolvable); resetUserDataReplaceOnChange(): void; get userDataReplaceOnChangeInput(): any; get uuid(): any; private _vpcId?; get vpcId(): string; set vpcId(value: string); resetVpcId(): void; get vpcIdInput(): string; private _dataDisks; get dataDisks(): InstanceDataDisksList; putDataDisks(value: InstanceDataDisks[] | cdktf.IResolvable): void; resetDataDisks(): void; get dataDisksInput(): any; private _timeouts; get timeouts(): InstanceTimeoutsOutputReference; putTimeouts(value: InstanceTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }