import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ClbListenerRuleConfig extends cdktf.TerraformMetaArguments { /** * ID of the client certificate. NOTES: Only supports listeners of HTTPS protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#certificate_ca_id ClbListenerRule#certificate_ca_id} */ readonly certificateCaId?: string; /** * ID of the server certificate. NOTES: Only supports listeners of HTTPS protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#certificate_id ClbListenerRule#certificate_id} */ readonly certificateId?: string; /** * Type of certificate. Valid values: `UNIDIRECTIONAL`, `MUTUAL`. NOTES: Only supports listeners of HTTPS protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#certificate_ssl_mode ClbListenerRule#certificate_ssl_mode} */ readonly certificateSslMode?: string; /** * ID of CLB instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#clb_id ClbListenerRule#clb_id} */ readonly clbId: string; /** * Domain name of the listener rule. Single domain rules are passed to `domain`, and multi domain rules are passed to `domains`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#domain ClbListenerRule#domain} */ readonly domain?: string; /** * Domain name list of the listener rule. Single domain rules are passed to `domain`, and multi domain rules are passed to `domains`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#domains ClbListenerRule#domains} */ readonly domains?: string[]; /** * Forwarding protocol between the CLB instance and real server. Valid values: `HTTP`, `HTTPS`, `GRPC`, `GRPCS`, `TRPC`. The default is `HTTP`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#forward_type ClbListenerRule#forward_type} */ readonly forwardType?: string; /** * Health threshold of health check, and the default is `3`. If a success result is returned for the health check 3 consecutive times, indicates that the forwarding is normal. The value range is [2-10]. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `tencentcloud_clb_listener_rule`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_health_num ClbListenerRule#health_check_health_num} */ readonly healthCheckHealthNum?: number; /** * HTTP Status Code. The default is 31. Valid value ranges: [1~31]. `1 means the return value '1xx' is health. `2` means the return value '2xx' is health. `4` means the return value '3xx' is health. `8` means the return value '4xx' is health. 16 means the return value '5xx' is health. If you want multiple return codes to indicate health, need to add the corresponding values. NOTES: The 'HTTP' health check of the 'TCP' listener only supports specifying one health check status code. NOTES: Only supports listeners of 'HTTP' and 'HTTPS' protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_http_code ClbListenerRule#health_check_http_code} */ readonly healthCheckHttpCode?: number; /** * Domain name of health check. NOTES: Only supports listeners of `HTTP` and `HTTPS` protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_http_domain ClbListenerRule#health_check_http_domain} */ readonly healthCheckHttpDomain?: string; /** * Methods of health check. NOTES: Only supports listeners of `HTTP` and `HTTPS` protocol. The default is `HEAD`, the available value are `HEAD` and `GET`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_http_method ClbListenerRule#health_check_http_method} */ readonly healthCheckHttpMethod?: string; /** * Path of health check. NOTES: Only supports listeners of `HTTP` and `HTTPS` protocol. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_http_path ClbListenerRule#health_check_http_path} */ readonly healthCheckHttpPath?: string; /** * Interval time of health check. Valid value ranges: (2~300) sec. and the default is `5` sec. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `tencentcloud_clb_listener_rule`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_interval_time ClbListenerRule#health_check_interval_time} */ readonly healthCheckIntervalTime?: number; /** * Customize detection related parameters. Health check port, defaults to the port of the backend service, unless you want to specify a specific port, it is recommended to leave it blank. (Applicable only to TCP/UDP listeners). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_port ClbListenerRule#health_check_port} */ readonly healthCheckPort?: number; /** * Indicates whether health check is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_switch ClbListenerRule#health_check_switch} */ readonly healthCheckSwitch?: boolean | cdktf.IResolvable; /** * Time out of health check. The value range is [2-60](SEC). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_time_out ClbListenerRule#health_check_time_out} */ readonly healthCheckTimeOut?: number; /** * Type of health check. Valid value is `CUSTOM`, `PING`, `TCP`, `HTTP`, `HTTPS`, `GRPC`, `GRPCS`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_type ClbListenerRule#health_check_type} */ readonly healthCheckType?: string; /** * Unhealthy threshold of health check, and the default is `3`. If the unhealthy result is returned 3 consecutive times, indicates that the forwarding is abnormal. The value range is [2-10]. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `tencentcloud_clb_listener_rule`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_check_unhealth_num ClbListenerRule#health_check_unhealth_num} */ readonly healthCheckUnhealthNum?: number; /** * Specifies the type of health check source IP. `0` (default): CLB VIP. `1`: 100.64 IP range. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#health_source_ip_type ClbListenerRule#health_source_ip_type} */ readonly healthSourceIpType?: number; /** * Indicate to apply HTTP2.0 protocol or not. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#http2_switch ClbListenerRule#http2_switch} */ readonly http2Switch?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#id ClbListenerRule#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; /** * ID of CLB listener. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#listener_id ClbListenerRule#listener_id} */ readonly listenerId: string; /** * Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#quic ClbListenerRule#quic} */ readonly quic?: boolean | cdktf.IResolvable; /** * Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `tencentcloud_clb_listener_rule`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#scheduler ClbListenerRule#scheduler} */ readonly scheduler?: string; /** * Time of session persistence within the CLB listener. NOTES: Available when scheduler is specified as `WRR`, and not available when listener protocol is `TCP_SSL`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `tencentcloud_clb_listener_rule`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#session_expire_time ClbListenerRule#session_expire_time} */ readonly sessionExpireTime?: number; /** * Backend target type. Valid values: `NODE`, `TARGETGROUP`. `NODE` means to bind ordinary nodes, `TARGETGROUP` means to bind target group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#target_type ClbListenerRule#target_type} */ readonly targetType?: string; /** * Url of the listener rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#url ClbListenerRule#url} */ readonly url: string; /** * multi_cert_info block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#multi_cert_info ClbListenerRule#multi_cert_info} */ readonly multiCertInfo?: ClbListenerRuleMultiCertInfo; /** * oauth block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#oauth ClbListenerRule#oauth} */ readonly oauth?: ClbListenerRuleOauth; } export interface ClbListenerRuleMultiCertInfo { /** * List of server certificate ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#cert_id_list ClbListenerRule#cert_id_list} */ readonly certIdList: string[]; /** * Authentication type. Values: UNIDIRECTIONAL (one-way authentication), MUTUAL (two-way authentication). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#ssl_mode ClbListenerRule#ssl_mode} */ readonly sslMode: string; } export declare function clbListenerRuleMultiCertInfoToTerraform(struct?: ClbListenerRuleMultiCertInfoOutputReference | ClbListenerRuleMultiCertInfo): any; export declare function clbListenerRuleMultiCertInfoToHclTerraform(struct?: ClbListenerRuleMultiCertInfoOutputReference | ClbListenerRuleMultiCertInfo): any; export declare class ClbListenerRuleMultiCertInfoOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @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(): ClbListenerRuleMultiCertInfo | undefined; set internalValue(value: ClbListenerRuleMultiCertInfo | undefined); private _certIdList?; get certIdList(): string[]; set certIdList(value: string[]); get certIdListInput(): string[]; private _sslMode?; get sslMode(): string; set sslMode(value: string); get sslModeInput(): string; } export interface ClbListenerRuleOauth { /** * Enable or disable authentication. True: Enabled; False: Disabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#oauth_enable ClbListenerRule#oauth_enable} */ readonly oauthEnable?: boolean | cdktf.IResolvable; /** * After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#oauth_failure_status ClbListenerRule#oauth_failure_status} */ readonly oauthFailureStatus?: string; } export declare function clbListenerRuleOauthToTerraform(struct?: ClbListenerRuleOauthOutputReference | ClbListenerRuleOauth): any; export declare function clbListenerRuleOauthToHclTerraform(struct?: ClbListenerRuleOauthOutputReference | ClbListenerRuleOauth): any; export declare class ClbListenerRuleOauthOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @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(): ClbListenerRuleOauth | undefined; set internalValue(value: ClbListenerRuleOauth | undefined); private _oauthEnable?; get oauthEnable(): boolean | cdktf.IResolvable; set oauthEnable(value: boolean | cdktf.IResolvable); resetOauthEnable(): void; get oauthEnableInput(): any; private _oauthFailureStatus?; get oauthFailureStatus(): string; set oauthFailureStatus(value: string); resetOauthFailureStatus(): void; get oauthFailureStatusInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule tencentcloud_clb_listener_rule} */ export declare class ClbListenerRule extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_clb_listener_rule"; /** * Generates CDKTF code for importing a ClbListenerRule 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 ClbListenerRule to import * @param importFromId The id of the existing ClbListenerRule that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/clb_listener_rule#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ClbListenerRule 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_listener_rule tencentcloud_clb_listener_rule} 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 ClbListenerRuleConfig */ constructor(scope: Construct, id: string, config: ClbListenerRuleConfig); private _certificateCaId?; get certificateCaId(): string; set certificateCaId(value: string); resetCertificateCaId(): void; get certificateCaIdInput(): string; private _certificateId?; get certificateId(): string; set certificateId(value: string); resetCertificateId(): void; get certificateIdInput(): string; private _certificateSslMode?; get certificateSslMode(): string; set certificateSslMode(value: string); resetCertificateSslMode(): void; get certificateSslModeInput(): string; private _clbId?; get clbId(): string; set clbId(value: string); get clbIdInput(): string; private _domain?; get domain(): string; set domain(value: string); resetDomain(): void; get domainInput(): string; private _domains?; get domains(): string[]; set domains(value: string[]); resetDomains(): void; get domainsInput(): string[]; private _forwardType?; get forwardType(): string; set forwardType(value: string); resetForwardType(): void; get forwardTypeInput(): string; private _healthCheckHealthNum?; get healthCheckHealthNum(): number; set healthCheckHealthNum(value: number); resetHealthCheckHealthNum(): void; get healthCheckHealthNumInput(): number; private _healthCheckHttpCode?; get healthCheckHttpCode(): number; set healthCheckHttpCode(value: number); resetHealthCheckHttpCode(): void; get healthCheckHttpCodeInput(): number; private _healthCheckHttpDomain?; get healthCheckHttpDomain(): string; set healthCheckHttpDomain(value: string); resetHealthCheckHttpDomain(): void; get healthCheckHttpDomainInput(): string; private _healthCheckHttpMethod?; get healthCheckHttpMethod(): string; set healthCheckHttpMethod(value: string); resetHealthCheckHttpMethod(): void; get healthCheckHttpMethodInput(): string; private _healthCheckHttpPath?; get healthCheckHttpPath(): string; set healthCheckHttpPath(value: string); resetHealthCheckHttpPath(): void; get healthCheckHttpPathInput(): string; private _healthCheckIntervalTime?; get healthCheckIntervalTime(): number; set healthCheckIntervalTime(value: number); resetHealthCheckIntervalTime(): void; get healthCheckIntervalTimeInput(): number; private _healthCheckPort?; get healthCheckPort(): number; set healthCheckPort(value: number); resetHealthCheckPort(): void; get healthCheckPortInput(): number; private _healthCheckSwitch?; get healthCheckSwitch(): boolean | cdktf.IResolvable; set healthCheckSwitch(value: boolean | cdktf.IResolvable); resetHealthCheckSwitch(): void; get healthCheckSwitchInput(): any; private _healthCheckTimeOut?; get healthCheckTimeOut(): number; set healthCheckTimeOut(value: number); resetHealthCheckTimeOut(): void; get healthCheckTimeOutInput(): number; private _healthCheckType?; get healthCheckType(): string; set healthCheckType(value: string); resetHealthCheckType(): void; get healthCheckTypeInput(): string; private _healthCheckUnhealthNum?; get healthCheckUnhealthNum(): number; set healthCheckUnhealthNum(value: number); resetHealthCheckUnhealthNum(): void; get healthCheckUnhealthNumInput(): number; private _healthSourceIpType?; get healthSourceIpType(): number; set healthSourceIpType(value: number); resetHealthSourceIpType(): void; get healthSourceIpTypeInput(): number; private _http2Switch?; get http2Switch(): boolean | cdktf.IResolvable; set http2Switch(value: boolean | cdktf.IResolvable); resetHttp2Switch(): void; get http2SwitchInput(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _listenerId?; get listenerId(): string; set listenerId(value: string); get listenerIdInput(): string; private _quic?; get quic(): boolean | cdktf.IResolvable; set quic(value: boolean | cdktf.IResolvable); resetQuic(): void; get quicInput(): any; get ruleId(): any; private _scheduler?; get scheduler(): string; set scheduler(value: string); resetScheduler(): void; get schedulerInput(): string; private _sessionExpireTime?; get sessionExpireTime(): number; set sessionExpireTime(value: number); resetSessionExpireTime(): void; get sessionExpireTimeInput(): number; private _targetType?; get targetType(): string; set targetType(value: string); resetTargetType(): void; get targetTypeInput(): string; private _url?; get url(): string; set url(value: string); get urlInput(): string; private _multiCertInfo; get multiCertInfo(): ClbListenerRuleMultiCertInfoOutputReference; putMultiCertInfo(value: ClbListenerRuleMultiCertInfo): void; resetMultiCertInfo(): void; get multiCertInfoInput(): ClbListenerRuleMultiCertInfo; private _oauth; get oauth(): ClbListenerRuleOauthOutputReference; putOauth(value: ClbListenerRuleOauth): void; resetOauth(): void; get oauthInput(): ClbListenerRuleOauth; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }