import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface WafClbDomainConfig extends cdktf.TerraformMetaArguments { /** * Load balancer type: clb, apisix or tsegw, default clb. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#alb_type WafClbDomain#alb_type} */ readonly albType?: string; /** * Whether to enable api safe, 1 enable, 0 disable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#api_safe_status WafClbDomain#api_safe_status} */ readonly apiSafeStatus?: number; /** * Whether to enable bot, 1 enable, 0 disable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#bot_status WafClbDomain#bot_status} */ readonly botStatus?: number; /** * Whether to enable access logs, 1 enable, 0 disable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#cls_status WafClbDomain#cls_status} */ readonly clsStatus?: number; /** * Domain name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#domain WafClbDomain#domain} */ readonly domain: string; /** * Protection Status: 10: Rule Observation&&AI Off Mode, 11: Rule Observation&&AI Observation Mode, 12: Rule Observation&&AI Interception Mode, 20: Rule Interception&&AI Off Mode, 21: Rule Interception&&AI Observation Mode, 22: Rule Interception&&AI Interception Mode, Default 20. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#engine WafClbDomain#engine} */ readonly engine?: number; /** * WAF traffic mode, 1 cleaning mode, 0 mirroring mode. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#flow_mode WafClbDomain#flow_mode} */ readonly flowMode?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#id WafClbDomain#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; /** * Instance unique ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#instance_id WafClbDomain#instance_id} */ readonly instanceId: string; /** * When is_cdn=3, this parameter needs to be filled in to indicate a custom header. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#ip_headers WafClbDomain#ip_headers} */ readonly ipHeaders?: string[]; /** * Whether a proxy has been enabled before WAF, 0 no deployment, 1 deployment and use first IP in X-Forwarded-For as client IP, 2 deployment and use remote_addr as client IP, 3 deployment and use values of custom headers as client IP. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#is_cdn WafClbDomain#is_cdn} */ readonly isCdn?: number; /** * Regions of LB bound by domain. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#region WafClbDomain#region} */ readonly region: string; /** * Binding status between waf and LB, 0:not bind, 1:binding. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#status WafClbDomain#status} */ readonly status?: number; /** * load_balancer_set block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#load_balancer_set WafClbDomain#load_balancer_set} */ readonly loadBalancerSet?: WafClbDomainLoadBalancerSet[] | cdktf.IResolvable; } export interface WafClbDomainLoadBalancerSet { /** * Unique ID of listener in LB. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#listener_id WafClbDomain#listener_id} */ readonly listenerId: string; /** * Listener name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#listener_name WafClbDomain#listener_name} */ readonly listenerName: string; /** * LoadBalancer unique ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#load_balancer_id WafClbDomain#load_balancer_id} */ readonly loadBalancerId: string; /** * LoadBalancer name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#load_balancer_name WafClbDomain#load_balancer_name} */ readonly loadBalancerName: string; /** * Network type for load balancer. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#load_balancer_type WafClbDomain#load_balancer_type} */ readonly loadBalancerType?: string; /** * VPCID for load balancer, public network is -1, and internal network is filled in according to actual conditions. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#numerical_vpc_id WafClbDomain#numerical_vpc_id} */ readonly numericalVpcId?: number; /** * Protocol of listener, http or https. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#protocol WafClbDomain#protocol} */ readonly protocol: string; /** * LoadBalancer region. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#region WafClbDomain#region} */ readonly region: string; /** * LoadBalancer IP. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#vip WafClbDomain#vip} */ readonly vip: string; /** * LoadBalancer port. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#vport WafClbDomain#vport} */ readonly vport: number; /** * LoadBalancer zone. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#zone WafClbDomain#zone} */ readonly zone: string; } export declare function wafClbDomainLoadBalancerSetToTerraform(struct?: WafClbDomainLoadBalancerSet | cdktf.IResolvable): any; export declare function wafClbDomainLoadBalancerSetToHclTerraform(struct?: WafClbDomainLoadBalancerSet | cdktf.IResolvable): any; export declare class WafClbDomainLoadBalancerSetOutputReference 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(): WafClbDomainLoadBalancerSet | cdktf.IResolvable | undefined; set internalValue(value: WafClbDomainLoadBalancerSet | cdktf.IResolvable | undefined); private _listenerId?; get listenerId(): string; set listenerId(value: string); get listenerIdInput(): string; private _listenerName?; get listenerName(): string; set listenerName(value: string); get listenerNameInput(): string; private _loadBalancerId?; get loadBalancerId(): string; set loadBalancerId(value: string); get loadBalancerIdInput(): string; private _loadBalancerName?; get loadBalancerName(): string; set loadBalancerName(value: string); get loadBalancerNameInput(): string; private _loadBalancerType?; get loadBalancerType(): string; set loadBalancerType(value: string); resetLoadBalancerType(): void; get loadBalancerTypeInput(): string; private _numericalVpcId?; get numericalVpcId(): number; set numericalVpcId(value: number); resetNumericalVpcId(): void; get numericalVpcIdInput(): number; private _protocol?; get protocol(): string; set protocol(value: string); get protocolInput(): string; private _region?; get region(): string; set region(value: string); get regionInput(): string; private _vip?; get vip(): string; set vip(value: string); get vipInput(): string; private _vport?; get vport(): number; set vport(value: number); get vportInput(): number; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; } export declare class WafClbDomainLoadBalancerSetList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: WafClbDomainLoadBalancerSet[] | 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): WafClbDomainLoadBalancerSetOutputReference; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain tencentcloud_waf_clb_domain} */ export declare class WafClbDomain extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_waf_clb_domain"; /** * Generates CDKTF code for importing a WafClbDomain 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 WafClbDomain to import * @param importFromId The id of the existing WafClbDomain that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_clb_domain#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the WafClbDomain 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/waf_clb_domain tencentcloud_waf_clb_domain} 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 WafClbDomainConfig */ constructor(scope: Construct, id: string, config: WafClbDomainConfig); private _albType?; get albType(): string; set albType(value: string); resetAlbType(): void; get albTypeInput(): string; private _apiSafeStatus?; get apiSafeStatus(): number; set apiSafeStatus(value: number); resetApiSafeStatus(): void; get apiSafeStatusInput(): number; private _botStatus?; get botStatus(): number; set botStatus(value: number); resetBotStatus(): void; get botStatusInput(): number; private _clsStatus?; get clsStatus(): number; set clsStatus(value: number); resetClsStatus(): void; get clsStatusInput(): number; private _domain?; get domain(): string; set domain(value: string); get domainInput(): string; get domainId(): any; private _engine?; get engine(): number; set engine(value: number); resetEngine(): void; get engineInput(): number; private _flowMode?; get flowMode(): number; set flowMode(value: number); resetFlowMode(): void; get flowModeInput(): number; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _instanceId?; get instanceId(): string; set instanceId(value: string); get instanceIdInput(): string; private _ipHeaders?; get ipHeaders(): string[]; set ipHeaders(value: string[]); resetIpHeaders(): void; get ipHeadersInput(): string[]; private _isCdn?; get isCdn(): number; set isCdn(value: number); resetIsCdn(): void; get isCdnInput(): number; private _region?; get region(): string; set region(value: string); get regionInput(): string; private _status?; get status(): number; set status(value: number); resetStatus(): void; get statusInput(): number; private _loadBalancerSet; get loadBalancerSet(): WafClbDomainLoadBalancerSetList; putLoadBalancerSet(value: WafClbDomainLoadBalancerSet[] | cdktf.IResolvable): void; resetLoadBalancerSet(): void; get loadBalancerSetInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }