import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface InstanceSetConfig 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_set#allocate_public_ip InstanceSet#allocate_public_ip} */ readonly allocatePublicIp?: boolean | cdktf.IResolvable; /** * 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_set#availability_zone InstanceSet#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_set#bandwidth_package_id InstanceSet#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_set#cam_role_name InstanceSet#cam_role_name} */ readonly camRoleName?: string; /** * 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_set#disable_monitor_service InstanceSet#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_set#disable_security_service InstanceSet#disable_security_service} */ readonly disableSecurityService?: boolean | cdktf.IResolvable; /** * instance ids list to exclude. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#exclude_instance_ids InstanceSet#exclude_instance_ids} */ readonly excludeInstanceIds?: string[]; /** * 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 (-). 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_set#hostname InstanceSet#hostname} */ readonly hostname?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#id InstanceSet#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. Changing `image_id` will cause the instance reset. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#image_id InstanceSet#image_id} */ readonly imageId: string; /** * The charge type of instance. Only support `POSTPAID_BY_HOUR`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#instance_charge_type InstanceSet#instance_charge_type} */ readonly instanceChargeType?: string; /** * The number of instances to be purchased. Value range:[1,100]; default value: 1. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#instance_count InstanceSet#instance_count} */ readonly instanceCount?: number; /** * 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_set#instance_name InstanceSet#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_set#instance_type InstanceSet#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`. 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_set#internet_charge_type InstanceSet#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_set#internet_max_bandwidth_out InstanceSet#internet_max_bandwidth_out} */ readonly internetMaxBandwidthOut?: number; /** * 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_set#keep_image_login InstanceSet#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_set#key_name InstanceSet#key_name} */ readonly keyName?: 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_set#password InstanceSet#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_set#placement_group_id InstanceSet#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_set#private_ip InstanceSet#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_set#project_id InstanceSet#project_id} */ readonly projectId?: number; /** * 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_set#security_groups InstanceSet#security_groups} */ readonly securityGroups?: 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_set#subnet_id InstanceSet#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_set#system_disk_id InstanceSet#system_disk_id} */ readonly systemDiskId?: string; /** * Size of the system disk. Valid value ranges: (50~1000). and 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_set#system_disk_size InstanceSet#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_SSD`: SSD, `CLOUD_PREMIUM`: Premium Cloud Storage, `CLOUD_BSSD`: Basic 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_set#system_disk_type InstanceSet#system_disk_type} */ readonly systemDiskType?: string; /** * The user data to be injected into this instance. Must be base64 encoded and up to 16 KB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#user_data InstanceSet#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. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#user_data_raw InstanceSet#user_data_raw} */ readonly userDataRaw?: string; /** * 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_set#vpc_id InstanceSet#vpc_id} */ readonly vpcId?: string; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#timeouts InstanceSet#timeouts} */ readonly timeouts?: InstanceSetTimeouts; } export interface InstanceSetTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#create InstanceSet#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#delete InstanceSet#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#read InstanceSet#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#update InstanceSet#update} */ readonly update?: string; } export declare function instanceSetTimeoutsToTerraform(struct?: InstanceSetTimeouts | cdktf.IResolvable): any; export declare function instanceSetTimeoutsToHclTerraform(struct?: InstanceSetTimeouts | cdktf.IResolvable): any; export declare class InstanceSetTimeoutsOutputReference 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(): InstanceSetTimeouts | cdktf.IResolvable | undefined; set internalValue(value: InstanceSetTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set tencentcloud_instance_set} */ export declare class InstanceSet extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_instance_set"; /** * Generates CDKTF code for importing a InstanceSet 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 InstanceSet to import * @param importFromId The id of the existing InstanceSet that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/instance_set#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the InstanceSet 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_set tencentcloud_instance_set} 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 InstanceSetConfig */ constructor(scope: Construct, id: string, config: InstanceSetConfig); private _allocatePublicIp?; get allocatePublicIp(): boolean | cdktf.IResolvable; set allocatePublicIp(value: boolean | cdktf.IResolvable); resetAllocatePublicIp(): void; get allocatePublicIpInput(): any; private _availabilityZone?; get availabilityZone(): string; set availabilityZone(value: string); 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; get createTime(): 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; private _excludeInstanceIds?; get excludeInstanceIds(): string[]; set excludeInstanceIds(value: string[]); resetExcludeInstanceIds(): void; get excludeInstanceIdsInput(): string[]; get expiredTime(): any; private _hostname?; get hostname(): string; set hostname(value: string); resetHostname(): void; get hostnameInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _imageId?; get imageId(): string; set imageId(value: string); get imageIdInput(): string; private _instanceChargeType?; get instanceChargeType(): string; set instanceChargeType(value: string); resetInstanceChargeType(): void; get instanceChargeTypeInput(): string; private _instanceCount?; get instanceCount(): number; set instanceCount(value: number); resetInstanceCount(): void; get instanceCountInput(): number; get instanceIds(): any; 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 _keepImageLogin?; get keepImageLogin(): boolean | cdktf.IResolvable; set keepImageLogin(value: boolean | cdktf.IResolvable); resetKeepImageLogin(): void; get keepImageLoginInput(): any; private _keyName?; get keyName(): string; set keyName(value: string); resetKeyName(): void; get keyNameInput(): string; 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; private _securityGroups?; get securityGroups(): string[]; set securityGroups(value: string[]); resetSecurityGroups(): void; get securityGroupsInput(): 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 _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 _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 _vpcId?; get vpcId(): string; set vpcId(value: string); resetVpcId(): void; get vpcIdInput(): string; private _timeouts; get timeouts(): InstanceSetTimeoutsOutputReference; putTimeouts(value: InstanceSetTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }