@pulumi/openstack
Version:
A Pulumi package for creating and managing OpenStack cloud resources.
370 lines (369 loc) • 14.5 kB
TypeScript
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>[]>;
}