UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

823 lines (822 loc) 37.7 kB
import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "../types"; /** * Manages an ELB listener resource within HuaweiCloud. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const loadbalancerId = config.requireObject("loadbalancerId"); * const basic = new huaweicloud.dedicatedelb.Listener("basic", { * description: "basic description", * protocol: "HTTP", * protocolPort: 8080, * loadbalancerId: loadbalancerId, * idleTimeout: 60, * requestTimeout: 60, * responseTimeout: 60, * tags: { * key: "value", * }, * }); * ``` * * ## Import * * ELB listener can be imported using the listener ID, e.g. bash * * ```sh * $ pulumi import huaweicloud:DedicatedElb/listener:Listener test <id> * ``` * * Note that the imported state may not be identical to your resource definition, due to some attributes missing from the API response, security or some other reason. The missing attributes include`force_delete`. It is generally recommended running `terraform plan` after importing a listener. You can then decide if changes should be applied to the listener, or the resource definition should be updated to align with the listener. Also you can ignore changes as below. hcl resource "huaweicloud_elb_listener" "test" { * * ... * * lifecycle { * * ignore_changes = [ * * force_delete, * * ] * * } } */ export declare class Listener extends pulumi.CustomResource { /** * Get an existing Listener resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ListenerState, opts?: pulumi.CustomResourceOptions): Listener; /** * Returns true if the given object is an instance of Listener. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Listener; /** * Specifies the access policy for the listener. Valid options are **white** and * **black**. */ readonly accessPolicy: pulumi.Output<string | undefined>; /** * Specifies whether to enable advanced forwarding. * If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. */ readonly advancedForwardingEnabled: pulumi.Output<boolean>; /** * Specifies the ID of the CA certificate used by the listener. This parameter is * valid when protocol is set to **HTTPS**. */ readonly caCertificate: pulumi.Output<string | undefined>; /** * Specifies the maximum number of new connections that a listener can handle per second. * Value range: **0** to **1000000**. Defaults to **0**, indicating that the number is not limited. If the value is greater * than the number defined in the load balancer specifications, the latter is used as the limit. */ readonly cps: pulumi.Output<number>; /** * The creation time of the listener. */ readonly createdAt: pulumi.Output<string>; /** * The ID of the default pool with which the listener is associated. */ readonly defaultPoolId: pulumi.Output<string>; /** * Human-readable description for the listener. */ readonly description: pulumi.Output<string | undefined>; /** * Specifies whether to enable health check retries for backend servers. * The default value is true. It is available only when protocol is set to **HTTP**, **HTTPS**, or **QUIC**. */ readonly enableMemberRetry: pulumi.Output<boolean>; /** * Specifies whether to enable QUIC upgrade. Value options: **true** and **false**. */ readonly enableQuicUpgrade: pulumi.Output<string | undefined>; /** * The ID of the enterprise project. */ readonly enterpriseProjectId: pulumi.Output<string>; /** * Specifies whether to forcibly delete the listener, remove the listener, l7 policies, * unbind associated pools. Defaults to **false**. */ readonly forceDelete: pulumi.Output<boolean | undefined>; /** * Specifies whether transfer the load balancer EIP in the X-Forward-EIP header to * backend servers. The default value is false. This parameter is valid only when the protocol is set to **HTTP** or * **HTTPS**. */ readonly forwardEip: pulumi.Output<boolean>; /** * Specifies whether to transfer the load balancer ID to backend servers through the HTTP * header of the packet. The default value is false. This parameter is valid only when the protocol is set to **HTTP** or * **HTTPS**. */ readonly forwardElb: pulumi.Output<boolean>; /** * Specifies whether to rewrite the X-Forwarded-Host header. If X-Forwarded-Host is * set to true, X-Forwarded-Host in the request header from the clients can be set to Host in the request header sent * from the load balancer to backend servers. The default value is true. This parameter is valid only when the protocol * is set to **HTTP** or **HTTPS**. */ readonly forwardHost: pulumi.Output<boolean | undefined>; /** * Specifies whether transfer the listening port of the load balancer in the * X-Forwarded-Port header to backend servers. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ readonly forwardPort: pulumi.Output<boolean>; /** * Specifies whether to transfer the listener protocol of the load balancer to backend * servers through the HTTP header of the packet. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ readonly forwardProto: pulumi.Output<boolean>; /** * Specifies whether transfer the source port of the client in the * X-Forwarded-For-Port header to backend servers. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ readonly forwardRequestPort: pulumi.Output<boolean>; /** * Specifies whether to transfer the certificate ID of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ readonly forwardTlsCertificate: pulumi.Output<boolean>; /** * Specifies whether to transfer the algorithm suite of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ readonly forwardTlsCipher: pulumi.Output<boolean>; /** * Specifies whether to transfer the algorithm protocol of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ readonly forwardTlsProtocol: pulumi.Output<boolean>; /** * Specifies whether to enable gzip compression for a load balancer. The default value * is **false**. This parameter can be configured only for **HTTP**, **HTTPS**, and **QUIC** listeners. */ readonly gzipEnable: pulumi.Output<boolean>; /** * Specifies whether to use HTTP/2. The default value is false. This parameter is valid * only when the protocol is set to **HTTPS**. */ readonly http2Enable: pulumi.Output<boolean>; /** * Specifies the idle timeout for the listener. Value range: 0 to 4000. */ readonly idleTimeout: pulumi.Output<number>; /** * Specifies the ip group id for the listener. */ readonly ipGroup: pulumi.Output<string | undefined>; /** * Specifies whether access control is enabled. Value options: **true** and **false**. */ readonly ipGroupEnable: pulumi.Output<string>; /** * The load balancer on which to provision this listener. Changing this * creates a new listener. */ readonly loadbalancerId: pulumi.Output<string>; /** * Specifies the maximum number of concurrent connections that a listener can handle per * second. **0** to **1000000**. Defaults to **0**, indicating that the number is not limited. If the value is greater than * the number defined in the load balancer specifications, the latter is used as the limit. */ readonly maxConnection: pulumi.Output<number>; /** * Human-readable name for the listener. */ readonly name: pulumi.Output<string>; /** * Specifies the port monitoring range (closed range), specify up to 10 port * groups, each group range must not overlap. This field can only be passed in when `protocolPort` is `0` or empty. * Only **TCP**, **UDP**, and **TLS** listener support this field. Changing this creates a new listener. * The portRanges structure is documented below. */ readonly portRanges: pulumi.Output<outputs.DedicatedElb.ListenerPortRange[] | undefined>; /** * The reason for update protection. Only valid when `protectionStatus` is * **consoleProtection**. */ readonly protectionReason: pulumi.Output<string | undefined>; /** * The protection status for update. Value options: * + **nonProtection**: No protection. * + **consoleProtection**: Console modification protection. */ readonly protectionStatus: pulumi.Output<string>; /** * The protocol can either be **TCP**, **UDP**, **HTTP**, **HTTPS**, **QUIC**, * **IP** or **TLS**. **IP** is only available for listeners that will be added to gateway load balancers. Changing this * creates a new listener. */ readonly protocol: pulumi.Output<string>; /** * Specifies the port used by the listener. * + The **QUIC** listener port cannot be `4789` or the same as the **UDP** listener port. * + If `protocol` is set to **IP**, the value can only be `0` or empty. * + If it is set to `0` and `protocol` is not set to **IP**, `portRanges` is required. */ readonly protocolPort: pulumi.Output<number>; /** * Specifies whether to enable the proxy protocol option to pass the source IP * addresses of the clients to backend servers. The default value is false. This parameter is available only for **TLS** * listeners and does not take effect for other types of listeners. */ readonly proxyProtocolEnable: pulumi.Output<boolean>; /** * Specifies the ID of the QUIC listener. If it is set, HTTPS listener will be * upgraded to QUIC listener. This parameter is valid only when protocol is set to **HTTPS**. */ readonly quicListenerId: pulumi.Output<string | undefined>; /** * Specifies whether to transfer the source IP address of the client to backend servers * through the HTTP header of the packet. The default value is false. This parameter is valid only when the protocol is * set to **HTTP** or **HTTPS**. */ readonly realIp: pulumi.Output<boolean>; /** * The region in which to create the listener resource. If omitted, the * provider-level region will be used. Changing this creates a new listener. */ readonly region: pulumi.Output<string>; /** * Specifies the request timeout for the listener. Value range: 1 to 300. This * parameter is valid when protocol is set to **HTTP** or **HTTPS**. */ readonly requestTimeout: pulumi.Output<number>; /** * Specifies the response timeout for the listener. Value range: 1 to 300. This * parameter is valid when protocol is set to **HTTP** or **HTTPS**. */ readonly responseTimeout: pulumi.Output<number>; /** * Specifies the ID of the custom security policy. This parameter is available * only for **HTTPS** listeners added to a dedicated load balancer. If both `securityPolicyId` and `tlsCiphersPolicy` * are specified, only `securityPolicyId` will take effect. This parameter is valid when protocol is set to **HTTPS**. */ readonly securityPolicyId: pulumi.Output<string | undefined>; /** * Specifies the ID of the server certificate used by the listener. This * parameter is mandatory when protocol is set to **HTTPS**. */ readonly serverCertificate: pulumi.Output<string | undefined>; /** * Lists the IDs of SNI certificates (server certificates with a domain name) used * by the listener. This parameter is valid when protocol is set to **HTTPS**. */ readonly sniCertificates: pulumi.Output<string[] | undefined>; /** * Specifies how wildcard domain name matches with the SNI certificates used by the * listener. **longest_suffix** indicates longest suffix match. **wildcard** indicates wildcard match. * The default value is **wildcard**. */ readonly sniMatchAlgo: pulumi.Output<string>; /** * Specifies whether to enable 0-RTT capability, it is available only when * protocol is set to **HTTPS** and relys on the **TLSv1.3** security policy protocol. The default value is false. */ readonly sslEarlyDataEnable: pulumi.Output<boolean | undefined>; /** * The key/value pairs to associate with the listener. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Specifies the TLS cipher policy for the listener. Valid options are: * **tls-1-0-inherit**, **tls-1-0**, **tls-1-1**, **tls-1-2**, **tls-1-2-strict**, **tls-1-2-fs**, **tls-1-0-with-1-3**, * **tls-1-2-fs-with-1-3**, **hybrid-policy-1-0** and **tls-1-2-strict-no-cbc**. Defaults to **tls-1-0**. * This parameter is valid when protocol is set to **HTTPS**. */ readonly tlsCiphersPolicy: pulumi.Output<string>; /** * The update time of the listener. */ readonly updatedAt: pulumi.Output<string>; /** * Create a Listener resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ListenerArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Listener resources. */ export interface ListenerState { /** * Specifies the access policy for the listener. Valid options are **white** and * **black**. */ accessPolicy?: pulumi.Input<string>; /** * Specifies whether to enable advanced forwarding. * If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. */ advancedForwardingEnabled?: pulumi.Input<boolean>; /** * Specifies the ID of the CA certificate used by the listener. This parameter is * valid when protocol is set to **HTTPS**. */ caCertificate?: pulumi.Input<string>; /** * Specifies the maximum number of new connections that a listener can handle per second. * Value range: **0** to **1000000**. Defaults to **0**, indicating that the number is not limited. If the value is greater * than the number defined in the load balancer specifications, the latter is used as the limit. */ cps?: pulumi.Input<number>; /** * The creation time of the listener. */ createdAt?: pulumi.Input<string>; /** * The ID of the default pool with which the listener is associated. */ defaultPoolId?: pulumi.Input<string>; /** * Human-readable description for the listener. */ description?: pulumi.Input<string>; /** * Specifies whether to enable health check retries for backend servers. * The default value is true. It is available only when protocol is set to **HTTP**, **HTTPS**, or **QUIC**. */ enableMemberRetry?: pulumi.Input<boolean>; /** * Specifies whether to enable QUIC upgrade. Value options: **true** and **false**. */ enableQuicUpgrade?: pulumi.Input<string>; /** * The ID of the enterprise project. */ enterpriseProjectId?: pulumi.Input<string>; /** * Specifies whether to forcibly delete the listener, remove the listener, l7 policies, * unbind associated pools. Defaults to **false**. */ forceDelete?: pulumi.Input<boolean>; /** * Specifies whether transfer the load balancer EIP in the X-Forward-EIP header to * backend servers. The default value is false. This parameter is valid only when the protocol is set to **HTTP** or * **HTTPS**. */ forwardEip?: pulumi.Input<boolean>; /** * Specifies whether to transfer the load balancer ID to backend servers through the HTTP * header of the packet. The default value is false. This parameter is valid only when the protocol is set to **HTTP** or * **HTTPS**. */ forwardElb?: pulumi.Input<boolean>; /** * Specifies whether to rewrite the X-Forwarded-Host header. If X-Forwarded-Host is * set to true, X-Forwarded-Host in the request header from the clients can be set to Host in the request header sent * from the load balancer to backend servers. The default value is true. This parameter is valid only when the protocol * is set to **HTTP** or **HTTPS**. */ forwardHost?: pulumi.Input<boolean>; /** * Specifies whether transfer the listening port of the load balancer in the * X-Forwarded-Port header to backend servers. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ forwardPort?: pulumi.Input<boolean>; /** * Specifies whether to transfer the listener protocol of the load balancer to backend * servers through the HTTP header of the packet. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ forwardProto?: pulumi.Input<boolean>; /** * Specifies whether transfer the source port of the client in the * X-Forwarded-For-Port header to backend servers. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ forwardRequestPort?: pulumi.Input<boolean>; /** * Specifies whether to transfer the certificate ID of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ forwardTlsCertificate?: pulumi.Input<boolean>; /** * Specifies whether to transfer the algorithm suite of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ forwardTlsCipher?: pulumi.Input<boolean>; /** * Specifies whether to transfer the algorithm protocol of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ forwardTlsProtocol?: pulumi.Input<boolean>; /** * Specifies whether to enable gzip compression for a load balancer. The default value * is **false**. This parameter can be configured only for **HTTP**, **HTTPS**, and **QUIC** listeners. */ gzipEnable?: pulumi.Input<boolean>; /** * Specifies whether to use HTTP/2. The default value is false. This parameter is valid * only when the protocol is set to **HTTPS**. */ http2Enable?: pulumi.Input<boolean>; /** * Specifies the idle timeout for the listener. Value range: 0 to 4000. */ idleTimeout?: pulumi.Input<number>; /** * Specifies the ip group id for the listener. */ ipGroup?: pulumi.Input<string>; /** * Specifies whether access control is enabled. Value options: **true** and **false**. */ ipGroupEnable?: pulumi.Input<string>; /** * The load balancer on which to provision this listener. Changing this * creates a new listener. */ loadbalancerId?: pulumi.Input<string>; /** * Specifies the maximum number of concurrent connections that a listener can handle per * second. **0** to **1000000**. Defaults to **0**, indicating that the number is not limited. If the value is greater than * the number defined in the load balancer specifications, the latter is used as the limit. */ maxConnection?: pulumi.Input<number>; /** * Human-readable name for the listener. */ name?: pulumi.Input<string>; /** * Specifies the port monitoring range (closed range), specify up to 10 port * groups, each group range must not overlap. This field can only be passed in when `protocolPort` is `0` or empty. * Only **TCP**, **UDP**, and **TLS** listener support this field. Changing this creates a new listener. * The portRanges structure is documented below. */ portRanges?: pulumi.Input<pulumi.Input<inputs.DedicatedElb.ListenerPortRange>[]>; /** * The reason for update protection. Only valid when `protectionStatus` is * **consoleProtection**. */ protectionReason?: pulumi.Input<string>; /** * The protection status for update. Value options: * + **nonProtection**: No protection. * + **consoleProtection**: Console modification protection. */ protectionStatus?: pulumi.Input<string>; /** * The protocol can either be **TCP**, **UDP**, **HTTP**, **HTTPS**, **QUIC**, * **IP** or **TLS**. **IP** is only available for listeners that will be added to gateway load balancers. Changing this * creates a new listener. */ protocol?: pulumi.Input<string>; /** * Specifies the port used by the listener. * + The **QUIC** listener port cannot be `4789` or the same as the **UDP** listener port. * + If `protocol` is set to **IP**, the value can only be `0` or empty. * + If it is set to `0` and `protocol` is not set to **IP**, `portRanges` is required. */ protocolPort?: pulumi.Input<number>; /** * Specifies whether to enable the proxy protocol option to pass the source IP * addresses of the clients to backend servers. The default value is false. This parameter is available only for **TLS** * listeners and does not take effect for other types of listeners. */ proxyProtocolEnable?: pulumi.Input<boolean>; /** * Specifies the ID of the QUIC listener. If it is set, HTTPS listener will be * upgraded to QUIC listener. This parameter is valid only when protocol is set to **HTTPS**. */ quicListenerId?: pulumi.Input<string>; /** * Specifies whether to transfer the source IP address of the client to backend servers * through the HTTP header of the packet. The default value is false. This parameter is valid only when the protocol is * set to **HTTP** or **HTTPS**. */ realIp?: pulumi.Input<boolean>; /** * The region in which to create the listener resource. If omitted, the * provider-level region will be used. Changing this creates a new listener. */ region?: pulumi.Input<string>; /** * Specifies the request timeout for the listener. Value range: 1 to 300. This * parameter is valid when protocol is set to **HTTP** or **HTTPS**. */ requestTimeout?: pulumi.Input<number>; /** * Specifies the response timeout for the listener. Value range: 1 to 300. This * parameter is valid when protocol is set to **HTTP** or **HTTPS**. */ responseTimeout?: pulumi.Input<number>; /** * Specifies the ID of the custom security policy. This parameter is available * only for **HTTPS** listeners added to a dedicated load balancer. If both `securityPolicyId` and `tlsCiphersPolicy` * are specified, only `securityPolicyId` will take effect. This parameter is valid when protocol is set to **HTTPS**. */ securityPolicyId?: pulumi.Input<string>; /** * Specifies the ID of the server certificate used by the listener. This * parameter is mandatory when protocol is set to **HTTPS**. */ serverCertificate?: pulumi.Input<string>; /** * Lists the IDs of SNI certificates (server certificates with a domain name) used * by the listener. This parameter is valid when protocol is set to **HTTPS**. */ sniCertificates?: pulumi.Input<pulumi.Input<string>[]>; /** * Specifies how wildcard domain name matches with the SNI certificates used by the * listener. **longest_suffix** indicates longest suffix match. **wildcard** indicates wildcard match. * The default value is **wildcard**. */ sniMatchAlgo?: pulumi.Input<string>; /** * Specifies whether to enable 0-RTT capability, it is available only when * protocol is set to **HTTPS** and relys on the **TLSv1.3** security policy protocol. The default value is false. */ sslEarlyDataEnable?: pulumi.Input<boolean>; /** * The key/value pairs to associate with the listener. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Specifies the TLS cipher policy for the listener. Valid options are: * **tls-1-0-inherit**, **tls-1-0**, **tls-1-1**, **tls-1-2**, **tls-1-2-strict**, **tls-1-2-fs**, **tls-1-0-with-1-3**, * **tls-1-2-fs-with-1-3**, **hybrid-policy-1-0** and **tls-1-2-strict-no-cbc**. Defaults to **tls-1-0**. * This parameter is valid when protocol is set to **HTTPS**. */ tlsCiphersPolicy?: pulumi.Input<string>; /** * The update time of the listener. */ updatedAt?: pulumi.Input<string>; } /** * The set of arguments for constructing a Listener resource. */ export interface ListenerArgs { /** * Specifies the access policy for the listener. Valid options are **white** and * **black**. */ accessPolicy?: pulumi.Input<string>; /** * Specifies whether to enable advanced forwarding. * If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. */ advancedForwardingEnabled?: pulumi.Input<boolean>; /** * Specifies the ID of the CA certificate used by the listener. This parameter is * valid when protocol is set to **HTTPS**. */ caCertificate?: pulumi.Input<string>; /** * Specifies the maximum number of new connections that a listener can handle per second. * Value range: **0** to **1000000**. Defaults to **0**, indicating that the number is not limited. If the value is greater * than the number defined in the load balancer specifications, the latter is used as the limit. */ cps?: pulumi.Input<number>; /** * The ID of the default pool with which the listener is associated. */ defaultPoolId?: pulumi.Input<string>; /** * Human-readable description for the listener. */ description?: pulumi.Input<string>; /** * Specifies whether to enable health check retries for backend servers. * The default value is true. It is available only when protocol is set to **HTTP**, **HTTPS**, or **QUIC**. */ enableMemberRetry?: pulumi.Input<boolean>; /** * Specifies whether to enable QUIC upgrade. Value options: **true** and **false**. */ enableQuicUpgrade?: pulumi.Input<string>; /** * Specifies whether to forcibly delete the listener, remove the listener, l7 policies, * unbind associated pools. Defaults to **false**. */ forceDelete?: pulumi.Input<boolean>; /** * Specifies whether transfer the load balancer EIP in the X-Forward-EIP header to * backend servers. The default value is false. This parameter is valid only when the protocol is set to **HTTP** or * **HTTPS**. */ forwardEip?: pulumi.Input<boolean>; /** * Specifies whether to transfer the load balancer ID to backend servers through the HTTP * header of the packet. The default value is false. This parameter is valid only when the protocol is set to **HTTP** or * **HTTPS**. */ forwardElb?: pulumi.Input<boolean>; /** * Specifies whether to rewrite the X-Forwarded-Host header. If X-Forwarded-Host is * set to true, X-Forwarded-Host in the request header from the clients can be set to Host in the request header sent * from the load balancer to backend servers. The default value is true. This parameter is valid only when the protocol * is set to **HTTP** or **HTTPS**. */ forwardHost?: pulumi.Input<boolean>; /** * Specifies whether transfer the listening port of the load balancer in the * X-Forwarded-Port header to backend servers. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ forwardPort?: pulumi.Input<boolean>; /** * Specifies whether to transfer the listener protocol of the load balancer to backend * servers through the HTTP header of the packet. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ forwardProto?: pulumi.Input<boolean>; /** * Specifies whether transfer the source port of the client in the * X-Forwarded-For-Port header to backend servers. The default value is false. This parameter is valid only when the * protocol is set to **HTTP** or **HTTPS**. */ forwardRequestPort?: pulumi.Input<boolean>; /** * Specifies whether to transfer the certificate ID of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ forwardTlsCertificate?: pulumi.Input<boolean>; /** * Specifies whether to transfer the algorithm suite of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ forwardTlsCipher?: pulumi.Input<boolean>; /** * Specifies whether to transfer the algorithm protocol of the load balancer to * backend servers through the HTTP header of the packet. The default value is false. This parameter is valid only when * the protocol is set to **HTTPS**. */ forwardTlsProtocol?: pulumi.Input<boolean>; /** * Specifies whether to enable gzip compression for a load balancer. The default value * is **false**. This parameter can be configured only for **HTTP**, **HTTPS**, and **QUIC** listeners. */ gzipEnable?: pulumi.Input<boolean>; /** * Specifies whether to use HTTP/2. The default value is false. This parameter is valid * only when the protocol is set to **HTTPS**. */ http2Enable?: pulumi.Input<boolean>; /** * Specifies the idle timeout for the listener. Value range: 0 to 4000. */ idleTimeout?: pulumi.Input<number>; /** * Specifies the ip group id for the listener. */ ipGroup?: pulumi.Input<string>; /** * Specifies whether access control is enabled. Value options: **true** and **false**. */ ipGroupEnable?: pulumi.Input<string>; /** * The load balancer on which to provision this listener. Changing this * creates a new listener. */ loadbalancerId: pulumi.Input<string>; /** * Specifies the maximum number of concurrent connections that a listener can handle per * second. **0** to **1000000**. Defaults to **0**, indicating that the number is not limited. If the value is greater than * the number defined in the load balancer specifications, the latter is used as the limit. */ maxConnection?: pulumi.Input<number>; /** * Human-readable name for the listener. */ name?: pulumi.Input<string>; /** * Specifies the port monitoring range (closed range), specify up to 10 port * groups, each group range must not overlap. This field can only be passed in when `protocolPort` is `0` or empty. * Only **TCP**, **UDP**, and **TLS** listener support this field. Changing this creates a new listener. * The portRanges structure is documented below. */ portRanges?: pulumi.Input<pulumi.Input<inputs.DedicatedElb.ListenerPortRange>[]>; /** * The reason for update protection. Only valid when `protectionStatus` is * **consoleProtection**. */ protectionReason?: pulumi.Input<string>; /** * The protection status for update. Value options: * + **nonProtection**: No protection. * + **consoleProtection**: Console modification protection. */ protectionStatus?: pulumi.Input<string>; /** * The protocol can either be **TCP**, **UDP**, **HTTP**, **HTTPS**, **QUIC**, * **IP** or **TLS**. **IP** is only available for listeners that will be added to gateway load balancers. Changing this * creates a new listener. */ protocol: pulumi.Input<string>; /** * Specifies the port used by the listener. * + The **QUIC** listener port cannot be `4789` or the same as the **UDP** listener port. * + If `protocol` is set to **IP**, the value can only be `0` or empty. * + If it is set to `0` and `protocol` is not set to **IP**, `portRanges` is required. */ protocolPort?: pulumi.Input<number>; /** * Specifies whether to enable the proxy protocol option to pass the source IP * addresses of the clients to backend servers. The default value is false. This parameter is available only for **TLS** * listeners and does not take effect for other types of listeners. */ proxyProtocolEnable?: pulumi.Input<boolean>; /** * Specifies the ID of the QUIC listener. If it is set, HTTPS listener will be * upgraded to QUIC listener. This parameter is valid only when protocol is set to **HTTPS**. */ quicListenerId?: pulumi.Input<string>; /** * Specifies whether to transfer the source IP address of the client to backend servers * through the HTTP header of the packet. The default value is false. This parameter is valid only when the protocol is * set to **HTTP** or **HTTPS**. */ realIp?: pulumi.Input<boolean>; /** * The region in which to create the listener resource. If omitted, the * provider-level region will be used. Changing this creates a new listener. */ region?: pulumi.Input<string>; /** * Specifies the request timeout for the listener. Value range: 1 to 300. This * parameter is valid when protocol is set to **HTTP** or **HTTPS**. */ requestTimeout?: pulumi.Input<number>; /** * Specifies the response timeout for the listener. Value range: 1 to 300. This * parameter is valid when protocol is set to **HTTP** or **HTTPS**. */ responseTimeout?: pulumi.Input<number>; /** * Specifies the ID of the custom security policy. This parameter is available * only for **HTTPS** listeners added to a dedicated load balancer. If both `securityPolicyId` and `tlsCiphersPolicy` * are specified, only `securityPolicyId` will take effect. This parameter is valid when protocol is set to **HTTPS**. */ securityPolicyId?: pulumi.Input<string>; /** * Specifies the ID of the server certificate used by the listener. This * parameter is mandatory when protocol is set to **HTTPS**. */ serverCertificate?: pulumi.Input<string>; /** * Lists the IDs of SNI certificates (server certificates with a domain name) used * by the listener. This parameter is valid when protocol is set to **HTTPS**. */ sniCertificates?: pulumi.Input<pulumi.Input<string>[]>; /** * Specifies how wildcard domain name matches with the SNI certificates used by the * listener. **longest_suffix** indicates longest suffix match. **wildcard** indicates wildcard match. * The default value is **wildcard**. */ sniMatchAlgo?: pulumi.Input<string>; /** * Specifies whether to enable 0-RTT capability, it is available only when * protocol is set to **HTTPS** and relys on the **TLSv1.3** security policy protocol. The default value is false. */ sslEarlyDataEnable?: pulumi.Input<boolean>; /** * The key/value pairs to associate with the listener. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Specifies the TLS cipher policy for the listener. Valid options are: * **tls-1-0-inherit**, **tls-1-0**, **tls-1-1**, **tls-1-2**, **tls-1-2-strict**, **tls-1-2-fs**, **tls-1-0-with-1-3**, * **tls-1-2-fs-with-1-3**, **hybrid-policy-1-0** and **tls-1-2-strict-no-cbc**. Defaults to **tls-1-0**. * This parameter is valid when protocol is set to **HTTPS**. */ tlsCiphersPolicy?: pulumi.Input<string>; }