import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ClbInstanceConfig extends cdktf.TerraformMetaArguments { /** * It's only applicable to public network CLB instances. IP version. Values: `IPV4`, `IPV6` and `IPv6FullChain` (case-insensitive). Default: `IPV4`. Note: IPV6 indicates IPv6 NAT64, while IPv6FullChain indicates IPv6. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#address_ip_version ClbInstance#address_ip_version} */ readonly addressIpVersion?: string; /** * The associated terminal node ID; passing an empty string indicates unassociating the node. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#associate_endpoint ClbInstance#associate_endpoint} */ readonly associateEndpoint?: string; /** * Bandwidth package id. If set, the `internet_charge_type` must be `BANDWIDTH_PACKAGE`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#bandwidth_package_id ClbInstance#bandwidth_package_id} */ readonly bandwidthPackageId?: string; /** * Name of the CLB. The name can only contain Chinese characters, English letters, numbers, underscore and hyphen '-'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#clb_name ClbInstance#clb_name} */ readonly clbName: string; /** * Cluster ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#cluster_id ClbInstance#cluster_id} */ readonly clusterId?: string; /** * Whether to enable delete protection. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#delete_protect ClbInstance#delete_protect} */ readonly deleteProtect?: boolean | cdktf.IResolvable; /** * If create dynamic vip CLB instance, `true` or `false`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#dynamic_vip ClbInstance#dynamic_vip} */ readonly dynamicVip?: boolean | cdktf.IResolvable; /** * The unique ID of the EIP, such as eip-1v2rmbwk, is only applicable to the intranet load balancing binding EIP. During the EIP change, there may be a brief network interruption. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#eip_address_id ClbInstance#eip_address_id} */ readonly eipAddressId?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#id ClbInstance#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; /** * Max bandwidth out, only applicable to open CLB. Valid value ranges is [1, 2048]. Unit is Mbps. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#internet_bandwidth_max_out ClbInstance#internet_bandwidth_max_out} */ readonly internetBandwidthMaxOut?: number; /** * Internet charge type, only applicable to open CLB. Valid values are `TRAFFIC_POSTPAID_BY_HOUR`, `BANDWIDTH_POSTPAID_BY_HOUR` and `BANDWIDTH_PACKAGE`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#internet_charge_type ClbInstance#internet_charge_type} */ readonly internetChargeType?: string; /** * Whether the target allow flow come from clb. If value is true, only check security group of clb, or check both clb and backend instance security group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#load_balancer_pass_to_target ClbInstance#load_balancer_pass_to_target} */ readonly loadBalancerPassToTarget?: boolean | cdktf.IResolvable; /** * The id of log set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#log_set_id ClbInstance#log_set_id} */ readonly logSetId?: string; /** * The id of log topic. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#log_topic_id ClbInstance#log_topic_id} */ readonly logTopicId?: string; /** * Setting master zone id of cross available zone disaster recovery, only applicable to open CLB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#master_zone_id ClbInstance#master_zone_id} */ readonly masterZoneId?: string; /** * Type of CLB instance. Valid values: `OPEN` and `INTERNAL`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#network_type ClbInstance#network_type} */ readonly networkType: string; /** * ID of the project within the CLB instance, `0` - Default Project. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#project_id ClbInstance#project_id} */ readonly projectId?: number; /** * Security groups of the CLB instance. Supports both `OPEN` and `INTERNAL` CLBs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#security_groups ClbInstance#security_groups} */ readonly securityGroups?: string[]; /** * This parameter is required to create LCU-supported instances. Values:`SLA`: Super Large 4. When you have activated Super Large models, `SLA` refers to Super Large 4; `clb.c2.medium`: Standard; `clb.c3.small`: Advanced 1; `clb.c3.medium`: Advanced 1; `clb.c4.small`: Super Large 1; `clb.c4.medium`: Super Large 2; `clb.c4.large`: Super Large 3; `clb.c4.xlarge`: Super Large 4. For more details, see [Instance Specifications](https://intl.cloud.tencent.com/document/product/214/84689?from_cn_redirect=1). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#sla_type ClbInstance#sla_type} */ readonly slaType?: string; /** * Setting slave zone id of cross available zone disaster recovery, only applicable to open CLB. this zone will undertake traffic when the master is down. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#slave_zone_id ClbInstance#slave_zone_id} */ readonly slaveZoneId?: string; /** * Indicates whether Binding IPs of other VPCs feature switch. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#snat_pro ClbInstance#snat_pro} */ readonly snatPro?: boolean | cdktf.IResolvable; /** * In the case of purchasing a `INTERNAL` clb instance, the subnet id must be specified. The VIP of the `INTERNAL` clb instance will be generated from this subnet. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#subnet_id ClbInstance#subnet_id} */ readonly subnetId?: string; /** * The available tags within this CLB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#tags ClbInstance#tags} */ readonly tags?: { [key: string]: string; }; /** * Region information of backend services are attached the CLB instance. Only supports `OPEN` CLBs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#target_region_info_region ClbInstance#target_region_info_region} */ readonly targetRegionInfoRegion?: string; /** * Vpc information of backend services are attached the CLB instance. Only supports `OPEN` CLBs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#target_region_info_vpc_id ClbInstance#target_region_info_vpc_id} */ readonly targetRegionInfoVpcId?: string; /** * Specifies the VIP for the application of a CLB instance. This parameter is optional. If you do not specify this parameter, the system automatically assigns a value for the parameter. IPv4 and IPv6 CLB instances support this parameter, but IPv6 NAT64 CLB instances do not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#vip ClbInstance#vip} */ readonly vip?: string; /** * Network operator, only applicable to open CLB. Valid values are `CMCC`(China Mobile), `CTCC`(Telecom), `CUCC`(China Unicom) and `BGP`. If this ISP is specified, network billing method can only use the bandwidth package billing (BANDWIDTH_PACKAGE). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#vip_isp ClbInstance#vip_isp} */ readonly vipIsp?: string; /** * VPC ID of the CLB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#vpc_id ClbInstance#vpc_id} */ readonly vpcId?: string; /** * Available zone id, only applicable to open CLB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#zone_id ClbInstance#zone_id} */ readonly zoneId?: string; /** * snat_ips block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#snat_ips ClbInstance#snat_ips} */ readonly snatIps?: ClbInstanceSnatIps[] | cdktf.IResolvable; } export interface ClbInstanceSnatIps { /** * Snat IP address, If set to empty will auto allocated. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#ip ClbInstance#ip} */ readonly ip?: string; /** * Snat subnet ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#subnet_id ClbInstance#subnet_id} */ readonly subnetId: string; } export declare function clbInstanceSnatIpsToTerraform(struct?: ClbInstanceSnatIps | cdktf.IResolvable): any; export declare function clbInstanceSnatIpsToHclTerraform(struct?: ClbInstanceSnatIps | cdktf.IResolvable): any; export declare class ClbInstanceSnatIpsOutputReference 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(): ClbInstanceSnatIps | cdktf.IResolvable | undefined; set internalValue(value: ClbInstanceSnatIps | cdktf.IResolvable | undefined); private _ip?; get ip(): string; set ip(value: string); resetIp(): void; get ipInput(): string; private _subnetId?; get subnetId(): string; set subnetId(value: string); get subnetIdInput(): string; } export declare class ClbInstanceSnatIpsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ClbInstanceSnatIps[] | 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): ClbInstanceSnatIpsOutputReference; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance tencentcloud_clb_instance} */ export declare class ClbInstance extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_clb_instance"; /** * Generates CDKTF code for importing a ClbInstance 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 ClbInstance to import * @param importFromId The id of the existing ClbInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_instance#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ClbInstance 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/clb_instance tencentcloud_clb_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 ClbInstanceConfig */ constructor(scope: Construct, id: string, config: ClbInstanceConfig); private _addressIpVersion?; get addressIpVersion(): string; set addressIpVersion(value: string); resetAddressIpVersion(): void; get addressIpVersionInput(): string; get addressIpv6(): any; private _associateEndpoint?; get associateEndpoint(): string; set associateEndpoint(value: string); resetAssociateEndpoint(): void; get associateEndpointInput(): string; private _bandwidthPackageId?; get bandwidthPackageId(): string; set bandwidthPackageId(value: string); resetBandwidthPackageId(): void; get bandwidthPackageIdInput(): string; private _clbName?; get clbName(): string; set clbName(value: string); get clbNameInput(): string; get clbVips(): any; private _clusterId?; get clusterId(): string; set clusterId(value: string); resetClusterId(): void; get clusterIdInput(): string; private _deleteProtect?; get deleteProtect(): boolean | cdktf.IResolvable; set deleteProtect(value: boolean | cdktf.IResolvable); resetDeleteProtect(): void; get deleteProtectInput(): any; get domain(): any; private _dynamicVip?; get dynamicVip(): boolean | cdktf.IResolvable; set dynamicVip(value: boolean | cdktf.IResolvable); resetDynamicVip(): void; get dynamicVipInput(): any; private _eipAddressId?; get eipAddressId(): string; set eipAddressId(value: string); resetEipAddressId(): void; get eipAddressIdInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _internetBandwidthMaxOut?; get internetBandwidthMaxOut(): number; set internetBandwidthMaxOut(value: number); resetInternetBandwidthMaxOut(): void; get internetBandwidthMaxOutInput(): number; private _internetChargeType?; get internetChargeType(): string; set internetChargeType(value: string); resetInternetChargeType(): void; get internetChargeTypeInput(): string; get ipv6Mode(): any; private _loadBalancerPassToTarget?; get loadBalancerPassToTarget(): boolean | cdktf.IResolvable; set loadBalancerPassToTarget(value: boolean | cdktf.IResolvable); resetLoadBalancerPassToTarget(): void; get loadBalancerPassToTargetInput(): any; private _logSetId?; get logSetId(): string; set logSetId(value: string); resetLogSetId(): void; get logSetIdInput(): string; private _logTopicId?; get logTopicId(): string; set logTopicId(value: string); resetLogTopicId(): void; get logTopicIdInput(): string; private _masterZoneId?; get masterZoneId(): string; set masterZoneId(value: string); resetMasterZoneId(): void; get masterZoneIdInput(): string; private _networkType?; get networkType(): string; set networkType(value: string); get networkTypeInput(): string; private _projectId?; get projectId(): number; set projectId(value: number); resetProjectId(): void; get projectIdInput(): number; private _securityGroups?; get securityGroups(): string[]; set securityGroups(value: string[]); resetSecurityGroups(): void; get securityGroupsInput(): string[]; private _slaType?; get slaType(): string; set slaType(value: string); resetSlaType(): void; get slaTypeInput(): string; private _slaveZoneId?; get slaveZoneId(): string; set slaveZoneId(value: string); resetSlaveZoneId(): void; get slaveZoneIdInput(): string; private _snatPro?; get snatPro(): boolean | cdktf.IResolvable; set snatPro(value: boolean | cdktf.IResolvable); resetSnatPro(): void; get snatProInput(): any; private _subnetId?; get subnetId(): string; set subnetId(value: string); resetSubnetId(): void; get subnetIdInput(): string; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; }; private _targetRegionInfoRegion?; get targetRegionInfoRegion(): string; set targetRegionInfoRegion(value: string); resetTargetRegionInfoRegion(): void; get targetRegionInfoRegionInput(): string; private _targetRegionInfoVpcId?; get targetRegionInfoVpcId(): string; set targetRegionInfoVpcId(value: string); resetTargetRegionInfoVpcId(): void; get targetRegionInfoVpcIdInput(): string; private _vip?; get vip(): string; set vip(value: string); resetVip(): void; get vipInput(): string; private _vipIsp?; get vipIsp(): string; set vipIsp(value: string); resetVipIsp(): void; get vipIspInput(): string; private _vpcId?; get vpcId(): string; set vpcId(value: string); resetVpcId(): void; get vpcIdInput(): string; private _zoneId?; get zoneId(): string; set zoneId(value: string); resetZoneId(): void; get zoneIdInput(): string; private _snatIps; get snatIps(): ClbInstanceSnatIpsList; putSnatIps(value: ClbInstanceSnatIps[] | cdktf.IResolvable): void; resetSnatIps(): void; get snatIpsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }