UNPKG

@pulumi/openstack

Version:

A Pulumi package for creating and managing OpenStack cloud resources.

370 lines (369 loc) • 14.5 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a V2 pool resource within OpenStack. * * > **Note:** This resource has attributes that depend on octavia minor versions. * Please ensure your Openstack cloud supports the required minor version. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as openstack from "@pulumi/openstack"; * * const pool1 = new openstack.loadbalancer.Pool("pool_1", { * protocol: "HTTP", * lbMethod: "ROUND_ROBIN", * listenerId: "d9415786-5f1a-428b-b35f-2f1523e146d2", * persistence: { * type: "APP_COOKIE", * cookieName: "testCookie", * }, * }); * ``` * * ## Import * * Load Balancer Pool can be imported using the Pool ID, e.g.: * * ```sh * $ pulumi import openstack:loadbalancer/pool:Pool pool_1 60ad9ee4-249a-4d60-a45b-aa60e046c513 * ``` */ export declare class Pool extends pulumi.CustomResource { /** * Get an existing Pool 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?: PoolState, opts?: pulumi.CustomResourceOptions): Pool; /** * Returns true if the given object is an instance of Pool. 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 Pool; /** * The administrative state of the pool. A valid * value is true (UP) or false (DOWN). */ readonly adminStateUp: pulumi.Output<boolean | undefined>; /** * A list of ALPN protocols. Available protocols: * `http/1.0`, `http/1.1`, `h2`. Supported only in **Octavia minor version >= * 2.24**. */ readonly alpnProtocols: pulumi.Output<string[]>; /** * The reference of the key manager service * secret containing a PEM format CA certificate bundle for `tlsEnabled` pools. * Supported only in **Octavia minor version >= 2.8**. */ readonly caTlsContainerRef: pulumi.Output<string | undefined>; /** * The reference of the key manager service * secret containing a PEM format CA revocation list file for `tlsEnabled` * pools. Supported only in **Octavia minor version >= 2.8**. */ readonly crlContainerRef: pulumi.Output<string | undefined>; /** * Human-readable description for the pool. */ readonly description: pulumi.Output<string | undefined>; /** * The load balancing algorithm to distribute traffic * to the pool's members. Must be one of ROUND_ROBIN, LEAST_CONNECTIONS, * SOURCE_IP, or SOURCE_IP_PORT. */ readonly lbMethod: pulumi.Output<string>; /** * The Listener on which the members of the pool will * be associated with. Changing this creates a new pool. Note: One of * LoadbalancerID or ListenerID must be provided. */ readonly listenerId: pulumi.Output<string | undefined>; /** * The load balancer on which to provision this * pool. Changing this creates a new pool. Note: One of LoadbalancerID or * ListenerID must be provided. */ readonly loadbalancerId: pulumi.Output<string | undefined>; /** * Human-readable name for the pool. */ readonly name: pulumi.Output<string>; /** * Omit this field to prevent session persistence. * Indicates whether connections in the same session will be processed by the * same Pool member or not. Changing this creates a new pool. */ readonly persistence: pulumi.Output<outputs.loadbalancer.PoolPersistence | undefined>; /** * The protocol - can either be TCP, HTTP, HTTPS, PROXY, * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP (**Octavia minor * version >= 2.23**). Changing this creates a new pool. */ readonly protocol: pulumi.Output<string>; /** * The region in which to obtain the V2 Networking client. * A Networking client is needed to create a pool. If omitted, the `region` * argument of the provider is used. Changing this creates a new pool. */ readonly region: pulumi.Output<string>; readonly tags: pulumi.Output<string[] | undefined>; /** * Required for admins. The UUID of the tenant who owns * the pool. Only administrative users can specify a tenant UUID other than * their own. Changing this creates a new pool. */ readonly tenantId: pulumi.Output<string>; /** * List of ciphers in OpenSSL format * (colon-separated). See * https://www.openssl.org/docs/man1.1.1/man1/ciphers.html for more information. * Supported only in **Octavia minor version >= 2.15**. */ readonly tlsCiphers: pulumi.Output<string>; /** * The reference to the key manager service * secret containing a PKCS12 format certificate/key bundle for `tlsEnabled` * pools for TLS client authentication to the member servers. Supported only in * **Octavia minor version >= 2.8**. */ readonly tlsContainerRef: pulumi.Output<string | undefined>; /** * When true connections to backend member servers * will use TLS encryption. Default is false. Supported only in **Octavia minor * version >= 2.8**. */ readonly tlsEnabled: pulumi.Output<boolean | undefined>; /** * A list of TLS protocol versions. Available * versions: `TLSv1`, `TLSv1.1`, `TLSv1.2`, `TLSv1.3`. Supported only in * **Octavia minor version >= 2.17**. */ readonly tlsVersions: pulumi.Output<string[]>; /** * Create a Pool 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: PoolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Pool resources. */ export interface PoolState { /** * The administrative state of the pool. A valid * value is true (UP) or false (DOWN). */ adminStateUp?: pulumi.Input<boolean>; /** * A list of ALPN protocols. Available protocols: * `http/1.0`, `http/1.1`, `h2`. Supported only in **Octavia minor version >= * 2.24**. */ alpnProtocols?: pulumi.Input<pulumi.Input<string>[]>; /** * The reference of the key manager service * secret containing a PEM format CA certificate bundle for `tlsEnabled` pools. * Supported only in **Octavia minor version >= 2.8**. */ caTlsContainerRef?: pulumi.Input<string>; /** * The reference of the key manager service * secret containing a PEM format CA revocation list file for `tlsEnabled` * pools. Supported only in **Octavia minor version >= 2.8**. */ crlContainerRef?: pulumi.Input<string>; /** * Human-readable description for the pool. */ description?: pulumi.Input<string>; /** * The load balancing algorithm to distribute traffic * to the pool's members. Must be one of ROUND_ROBIN, LEAST_CONNECTIONS, * SOURCE_IP, or SOURCE_IP_PORT. */ lbMethod?: pulumi.Input<string>; /** * The Listener on which the members of the pool will * be associated with. Changing this creates a new pool. Note: One of * LoadbalancerID or ListenerID must be provided. */ listenerId?: pulumi.Input<string>; /** * The load balancer on which to provision this * pool. Changing this creates a new pool. Note: One of LoadbalancerID or * ListenerID must be provided. */ loadbalancerId?: pulumi.Input<string>; /** * Human-readable name for the pool. */ name?: pulumi.Input<string>; /** * Omit this field to prevent session persistence. * Indicates whether connections in the same session will be processed by the * same Pool member or not. Changing this creates a new pool. */ persistence?: pulumi.Input<inputs.loadbalancer.PoolPersistence>; /** * The protocol - can either be TCP, HTTP, HTTPS, PROXY, * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP (**Octavia minor * version >= 2.23**). Changing this creates a new pool. */ protocol?: pulumi.Input<string>; /** * The region in which to obtain the V2 Networking client. * A Networking client is needed to create a pool. If omitted, the `region` * argument of the provider is used. Changing this creates a new pool. */ region?: pulumi.Input<string>; tags?: pulumi.Input<pulumi.Input<string>[]>; /** * Required for admins. The UUID of the tenant who owns * the pool. Only administrative users can specify a tenant UUID other than * their own. Changing this creates a new pool. */ tenantId?: pulumi.Input<string>; /** * List of ciphers in OpenSSL format * (colon-separated). See * https://www.openssl.org/docs/man1.1.1/man1/ciphers.html for more information. * Supported only in **Octavia minor version >= 2.15**. */ tlsCiphers?: pulumi.Input<string>; /** * The reference to the key manager service * secret containing a PKCS12 format certificate/key bundle for `tlsEnabled` * pools for TLS client authentication to the member servers. Supported only in * **Octavia minor version >= 2.8**. */ tlsContainerRef?: pulumi.Input<string>; /** * When true connections to backend member servers * will use TLS encryption. Default is false. Supported only in **Octavia minor * version >= 2.8**. */ tlsEnabled?: pulumi.Input<boolean>; /** * A list of TLS protocol versions. Available * versions: `TLSv1`, `TLSv1.1`, `TLSv1.2`, `TLSv1.3`. Supported only in * **Octavia minor version >= 2.17**. */ tlsVersions?: pulumi.Input<pulumi.Input<string>[]>; } /** * The set of arguments for constructing a Pool resource. */ export interface PoolArgs { /** * The administrative state of the pool. A valid * value is true (UP) or false (DOWN). */ adminStateUp?: pulumi.Input<boolean>; /** * A list of ALPN protocols. Available protocols: * `http/1.0`, `http/1.1`, `h2`. Supported only in **Octavia minor version >= * 2.24**. */ alpnProtocols?: pulumi.Input<pulumi.Input<string>[]>; /** * The reference of the key manager service * secret containing a PEM format CA certificate bundle for `tlsEnabled` pools. * Supported only in **Octavia minor version >= 2.8**. */ caTlsContainerRef?: pulumi.Input<string>; /** * The reference of the key manager service * secret containing a PEM format CA revocation list file for `tlsEnabled` * pools. Supported only in **Octavia minor version >= 2.8**. */ crlContainerRef?: pulumi.Input<string>; /** * Human-readable description for the pool. */ description?: pulumi.Input<string>; /** * The load balancing algorithm to distribute traffic * to the pool's members. Must be one of ROUND_ROBIN, LEAST_CONNECTIONS, * SOURCE_IP, or SOURCE_IP_PORT. */ lbMethod: pulumi.Input<string>; /** * The Listener on which the members of the pool will * be associated with. Changing this creates a new pool. Note: One of * LoadbalancerID or ListenerID must be provided. */ listenerId?: pulumi.Input<string>; /** * The load balancer on which to provision this * pool. Changing this creates a new pool. Note: One of LoadbalancerID or * ListenerID must be provided. */ loadbalancerId?: pulumi.Input<string>; /** * Human-readable name for the pool. */ name?: pulumi.Input<string>; /** * Omit this field to prevent session persistence. * Indicates whether connections in the same session will be processed by the * same Pool member or not. Changing this creates a new pool. */ persistence?: pulumi.Input<inputs.loadbalancer.PoolPersistence>; /** * The protocol - can either be TCP, HTTP, HTTPS, PROXY, * UDP, PROXYV2 (**Octavia minor version >= 2.22**) or SCTP (**Octavia minor * version >= 2.23**). Changing this creates a new pool. */ protocol: pulumi.Input<string>; /** * The region in which to obtain the V2 Networking client. * A Networking client is needed to create a pool. If omitted, the `region` * argument of the provider is used. Changing this creates a new pool. */ region?: pulumi.Input<string>; tags?: pulumi.Input<pulumi.Input<string>[]>; /** * Required for admins. The UUID of the tenant who owns * the pool. Only administrative users can specify a tenant UUID other than * their own. Changing this creates a new pool. */ tenantId?: pulumi.Input<string>; /** * List of ciphers in OpenSSL format * (colon-separated). See * https://www.openssl.org/docs/man1.1.1/man1/ciphers.html for more information. * Supported only in **Octavia minor version >= 2.15**. */ tlsCiphers?: pulumi.Input<string>; /** * The reference to the key manager service * secret containing a PKCS12 format certificate/key bundle for `tlsEnabled` * pools for TLS client authentication to the member servers. Supported only in * **Octavia minor version >= 2.8**. */ tlsContainerRef?: pulumi.Input<string>; /** * When true connections to backend member servers * will use TLS encryption. Default is false. Supported only in **Octavia minor * version >= 2.8**. */ tlsEnabled?: pulumi.Input<boolean>; /** * A list of TLS protocol versions. Available * versions: `TLSv1`, `TLSv1.1`, `TLSv1.2`, `TLSv1.3`. Supported only in * **Octavia minor version >= 2.17**. */ tlsVersions?: pulumi.Input<pulumi.Input<string>[]>; }