import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface WafSaasDomainConfig extends cdktf.TerraformMetaArguments { /** * Whether to enable active health detection, 0 represents disable and 1 represents enable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#active_check WafSaasDomain#active_check} */ readonly activeCheck?: number; /** * 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_saas_domain#api_safe_status WafSaasDomain#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_saas_domain#bot_status WafSaasDomain#bot_status} */ readonly botStatus?: number; /** * Certificate content, When CertType=1, this parameter needs to be filled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#cert WafSaasDomain#cert} */ readonly cert?: string; /** * Certificate type, 0 represents no certificate, CertType=1 represents self owned certificate, and 2 represents managed certificate. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#cert_type WafSaasDomain#cert_type} */ readonly certType?: number; /** * Encryption Suite Template, 0:default 1:Universal template 2:Security template 3:Custom template. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#cipher_template WafSaasDomain#cipher_template} */ readonly cipherTemplate?: number; /** * Encryption Suite Information. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#ciphers WafSaasDomain#ciphers} */ readonly ciphers?: 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_saas_domain#cls_status WafSaasDomain#cls_status} */ readonly clsStatus?: number; /** * Domain names that require defense. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#domain WafSaasDomain#domain} */ readonly domain: string; /** * Whether redirect to https, 1 will redirect and 0 will not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#https_rewrite WafSaasDomain#https_rewrite} */ readonly httpsRewrite?: number; /** * Upstream port for https, When listen ports has https port and UpstreamScheme is HTTP, the current field needs to be filled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#https_upstream_port WafSaasDomain#https_upstream_port} */ readonly httpsUpstreamPort?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#id WafSaasDomain#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; /** * Unique ID of Instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#instance_id WafSaasDomain#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_saas_domain#ip_headers WafSaasDomain#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_saas_domain#is_cdn WafSaasDomain#is_cdn} */ readonly isCdn?: number; /** * Whether enable HTTP2, Enabling HTTP2 requires HTTPS support, 1 means enabled, 0 does not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#is_http2 WafSaasDomain#is_http2} */ readonly isHttp2?: number; /** * Whether to enable keep-alive, 0 disable, 1 enable. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#is_keep_alive WafSaasDomain#is_keep_alive} */ readonly isKeepAlive?: string; /** * Is WebSocket support enabled. 1 means enabled, 0 does not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#is_websocket WafSaasDomain#is_websocket} */ readonly isWebsocket?: number; /** * Load balancing strategy, where 0 represents polling and 1 represents IP hash and 2 weighted round robin. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#load_balance WafSaasDomain#load_balance} */ readonly loadBalance?: string; /** * Certificate key, When CertType=1, this parameter needs to be filled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#private_key WafSaasDomain#private_key} */ readonly privateKey?: string; /** * 300s. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#proxy_read_timeout WafSaasDomain#proxy_read_timeout} */ readonly proxyReadTimeout?: number; /** * 300s. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#proxy_send_timeout WafSaasDomain#proxy_send_timeout} */ readonly proxySendTimeout?: number; /** * When SniType=3, this parameter needs to be filled in to represent a custom host. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#sni_host WafSaasDomain#sni_host} */ readonly sniHost?: string; /** * Sni type fo upstream, 0:disable SNI; 1:enable SNI and SNI equal original request host; 2:and SNI equal upstream host 3:enable SNI and equal customize host. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#sni_type WafSaasDomain#sni_type} */ readonly sniType?: number; /** * Upstream IP List, When UpstreamType=0, this parameter needs to be filled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#src_list WafSaasDomain#src_list} */ readonly srcList?: string[]; /** * Certificate ID, When CertType=2, this parameter needs to be filled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#ssl_id WafSaasDomain#ssl_id} */ readonly sslId?: string; /** * WAF switch status, 1: turn on WAF switch; 0: turn off WAF switch. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#status WafSaasDomain#status} */ readonly status?: number; /** * Version of TLS Protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#tls_version WafSaasDomain#tls_version} */ readonly tlsVersion?: number; /** * Upstream domain, When UpstreamType=1, this parameter needs to be filled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#upstream_domain WafSaasDomain#upstream_domain} */ readonly upstreamDomain?: string; /** * Upstream scheme for https, http or https. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#upstream_scheme WafSaasDomain#upstream_scheme} */ readonly upstreamScheme?: string; /** * Upstream type, 0 represents IP, 1 represents domain name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#upstream_type WafSaasDomain#upstream_type} */ readonly upstreamType?: number; /** * Weight of each upstream. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#weights WafSaasDomain#weights} */ readonly weights?: number[]; /** * 0:disable xff reset; 1:enable xff reset. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#xff_reset WafSaasDomain#xff_reset} */ readonly xffReset?: number; /** * ports block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#ports WafSaasDomain#ports} */ readonly ports: WafSaasDomainPorts[] | cdktf.IResolvable; } export interface WafSaasDomainPorts { /** * Listening port. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#port WafSaasDomain#port} */ readonly port: string; /** * The listening protocol of listening port. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#protocol WafSaasDomain#protocol} */ readonly protocol: string; /** * The upstream port for listening port. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#upstream_port WafSaasDomain#upstream_port} */ readonly upstreamPort: string; /** * The upstream protocol for listening port. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#upstream_protocol WafSaasDomain#upstream_protocol} */ readonly upstreamProtocol: string; } export declare function wafSaasDomainPortsToTerraform(struct?: WafSaasDomainPorts | cdktf.IResolvable): any; export declare function wafSaasDomainPortsToHclTerraform(struct?: WafSaasDomainPorts | cdktf.IResolvable): any; export declare class WafSaasDomainPortsOutputReference 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(): WafSaasDomainPorts | cdktf.IResolvable | undefined; set internalValue(value: WafSaasDomainPorts | cdktf.IResolvable | undefined); get nginxServerId(): any; private _port?; get port(): string; set port(value: string); get portInput(): string; private _protocol?; get protocol(): string; set protocol(value: string); get protocolInput(): string; private _upstreamPort?; get upstreamPort(): string; set upstreamPort(value: string); get upstreamPortInput(): string; private _upstreamProtocol?; get upstreamProtocol(): string; set upstreamProtocol(value: string); get upstreamProtocolInput(): string; } export declare class WafSaasDomainPortsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: WafSaasDomainPorts[] | 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): WafSaasDomainPortsOutputReference; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain tencentcloud_waf_saas_domain} */ export declare class WafSaasDomain extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_waf_saas_domain"; /** * Generates CDKTF code for importing a WafSaasDomain 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 WafSaasDomain to import * @param importFromId The id of the existing WafSaasDomain that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/waf_saas_domain#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the WafSaasDomain 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_saas_domain tencentcloud_waf_saas_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 WafSaasDomainConfig */ constructor(scope: Construct, id: string, config: WafSaasDomainConfig); private _activeCheck?; get activeCheck(): number; set activeCheck(value: number); resetActiveCheck(): void; get activeCheckInput(): number; 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 _cert?; get cert(): string; set cert(value: string); resetCert(): void; get certInput(): string; private _certType?; get certType(): number; set certType(value: number); resetCertType(): void; get certTypeInput(): number; private _cipherTemplate?; get cipherTemplate(): number; set cipherTemplate(value: number); resetCipherTemplate(): void; get cipherTemplateInput(): number; private _ciphers?; get ciphers(): number[]; set ciphers(value: number[]); resetCiphers(): void; get ciphersInput(): 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 _httpsRewrite?; get httpsRewrite(): number; set httpsRewrite(value: number); resetHttpsRewrite(): void; get httpsRewriteInput(): number; private _httpsUpstreamPort?; get httpsUpstreamPort(): string; set httpsUpstreamPort(value: string); resetHttpsUpstreamPort(): void; get httpsUpstreamPortInput(): string; 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 _isHttp2?; get isHttp2(): number; set isHttp2(value: number); resetIsHttp2(): void; get isHttp2Input(): number; private _isKeepAlive?; get isKeepAlive(): string; set isKeepAlive(value: string); resetIsKeepAlive(): void; get isKeepAliveInput(): string; private _isWebsocket?; get isWebsocket(): number; set isWebsocket(value: number); resetIsWebsocket(): void; get isWebsocketInput(): number; private _loadBalance?; get loadBalance(): string; set loadBalance(value: string); resetLoadBalance(): void; get loadBalanceInput(): string; private _privateKey?; get privateKey(): string; set privateKey(value: string); resetPrivateKey(): void; get privateKeyInput(): string; private _proxyReadTimeout?; get proxyReadTimeout(): number; set proxyReadTimeout(value: number); resetProxyReadTimeout(): void; get proxyReadTimeoutInput(): number; private _proxySendTimeout?; get proxySendTimeout(): number; set proxySendTimeout(value: number); resetProxySendTimeout(): void; get proxySendTimeoutInput(): number; private _sniHost?; get sniHost(): string; set sniHost(value: string); resetSniHost(): void; get sniHostInput(): string; private _sniType?; get sniType(): number; set sniType(value: number); resetSniType(): void; get sniTypeInput(): number; private _srcList?; get srcList(): string[]; set srcList(value: string[]); resetSrcList(): void; get srcListInput(): string[]; private _sslId?; get sslId(): string; set sslId(value: string); resetSslId(): void; get sslIdInput(): string; private _status?; get status(): number; set status(value: number); resetStatus(): void; get statusInput(): number; private _tlsVersion?; get tlsVersion(): number; set tlsVersion(value: number); resetTlsVersion(): void; get tlsVersionInput(): number; private _upstreamDomain?; get upstreamDomain(): string; set upstreamDomain(value: string); resetUpstreamDomain(): void; get upstreamDomainInput(): string; private _upstreamScheme?; get upstreamScheme(): string; set upstreamScheme(value: string); resetUpstreamScheme(): void; get upstreamSchemeInput(): string; private _upstreamType?; get upstreamType(): number; set upstreamType(value: number); resetUpstreamType(): void; get upstreamTypeInput(): number; private _weights?; get weights(): number[]; set weights(value: number[]); resetWeights(): void; get weightsInput(): number[]; private _xffReset?; get xffReset(): number; set xffReset(value: number); resetXffReset(): void; get xffResetInput(): number; private _ports; get ports(): WafSaasDomainPortsList; putPorts(value: WafSaasDomainPorts[] | cdktf.IResolvable): void; get portsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }