@pulumi/openstack
Version:
A Pulumi package for creating and managing OpenStack cloud resources.
318 lines (317 loc) • 12.4 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* Manages a V2 loadbalancer 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 lb1 = new openstack.loadbalancer.LoadBalancer("lb_1", {vipSubnetId: "d9415786-5f1a-428b-b35f-2f1523e146d2"});
* ```
*
* ## Import
*
* Load Balancer can be imported using the Load Balancer ID, e.g.:
*
* ```sh
* $ pulumi import openstack:loadbalancer/loadBalancer:LoadBalancer loadbalancer_1 19bcfdc7-c521-4a7e-9459-6750bd16df76
* ```
*/
export declare class LoadBalancer extends pulumi.CustomResource {
/**
* Get an existing LoadBalancer 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?: LoadBalancerState, opts?: pulumi.CustomResourceOptions): LoadBalancer;
/**
* Returns true if the given object is an instance of LoadBalancer. 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 LoadBalancer;
/**
* The administrative state of the Loadbalancer.
* A valid value is true (UP) or false (DOWN).
*/
readonly adminStateUp: pulumi.Output<boolean | undefined>;
/**
* The availability zone of the Loadbalancer.
* Changing this creates a new loadbalancer. Available only for Octavia
* **minor version 2.14 or later**.
*/
readonly availabilityZone: pulumi.Output<string | undefined>;
/**
* Human-readable description for the Loadbalancer.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* The UUID of a flavor. Changing this creates a new
* loadbalancer.
*/
readonly flavorId: pulumi.Output<string>;
/**
* The name of the provider. Changing this
* creates a new loadbalancer.
*/
readonly loadbalancerProvider: pulumi.Output<string>;
/**
* Human-readable name for the Loadbalancer. Does not have
* to be unique.
*/
readonly name: pulumi.Output<string>;
/**
* The region in which to obtain the V2 Networking client.
* A Networking client is needed to create an LB member. If omitted, the
* `region` argument of the provider is used. Changing this creates a new
* LB member.
*/
readonly region: pulumi.Output<string>;
/**
* A list of security group IDs to apply to the
* loadbalancer. The security groups must be specified by ID and not name (as
* opposed to how they are configured with the Compute Instance).
*/
readonly securityGroupIds: pulumi.Output<string[]>;
/**
* A list of simple strings assigned to the loadbalancer.
* Available only for Octavia **minor version 2.5 or later**.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* Required for admins. The UUID of the tenant who owns
* the Loadbalancer. Only administrative users can specify a tenant UUID
* other than their own. Changing this creates a new loadbalancer.
*/
readonly tenantId: pulumi.Output<string>;
/**
* The ip address of the load balancer.
* Changing this creates a new loadbalancer.
*/
readonly vipAddress: pulumi.Output<string>;
/**
* The network on which to allocate the
* Loadbalancer's address. A tenant can only create Loadbalancers on networks
* authorized by policy (e.g. networks that belong to them or networks that
* are shared). Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
readonly vipNetworkId: pulumi.Output<string>;
/**
* The port UUID that the loadbalancer will use.
* Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
readonly vipPortId: pulumi.Output<string>;
/**
* The ID of the QoS Policy which will
* be applied to the Virtual IP (VIP).
*/
readonly vipQosPolicyId: pulumi.Output<string | undefined>;
/**
* The subnet on which to allocate the
* Loadbalancer's address. A tenant can only create Loadbalancers on networks
* authorized by policy (e.g. networks that belong to them or networks that
* are shared). Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
readonly vipSubnetId: pulumi.Output<string>;
/**
* Create a LoadBalancer 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?: LoadBalancerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering LoadBalancer resources.
*/
export interface LoadBalancerState {
/**
* The administrative state of the Loadbalancer.
* A valid value is true (UP) or false (DOWN).
*/
adminStateUp?: pulumi.Input<boolean>;
/**
* The availability zone of the Loadbalancer.
* Changing this creates a new loadbalancer. Available only for Octavia
* **minor version 2.14 or later**.
*/
availabilityZone?: pulumi.Input<string>;
/**
* Human-readable description for the Loadbalancer.
*/
description?: pulumi.Input<string>;
/**
* The UUID of a flavor. Changing this creates a new
* loadbalancer.
*/
flavorId?: pulumi.Input<string>;
/**
* The name of the provider. Changing this
* creates a new loadbalancer.
*/
loadbalancerProvider?: pulumi.Input<string>;
/**
* Human-readable name for the Loadbalancer. Does not have
* to be unique.
*/
name?: pulumi.Input<string>;
/**
* The region in which to obtain the V2 Networking client.
* A Networking client is needed to create an LB member. If omitted, the
* `region` argument of the provider is used. Changing this creates a new
* LB member.
*/
region?: pulumi.Input<string>;
/**
* A list of security group IDs to apply to the
* loadbalancer. The security groups must be specified by ID and not name (as
* opposed to how they are configured with the Compute Instance).
*/
securityGroupIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* A list of simple strings assigned to the loadbalancer.
* Available only for Octavia **minor version 2.5 or later**.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Required for admins. The UUID of the tenant who owns
* the Loadbalancer. Only administrative users can specify a tenant UUID
* other than their own. Changing this creates a new loadbalancer.
*/
tenantId?: pulumi.Input<string>;
/**
* The ip address of the load balancer.
* Changing this creates a new loadbalancer.
*/
vipAddress?: pulumi.Input<string>;
/**
* The network on which to allocate the
* Loadbalancer's address. A tenant can only create Loadbalancers on networks
* authorized by policy (e.g. networks that belong to them or networks that
* are shared). Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
vipNetworkId?: pulumi.Input<string>;
/**
* The port UUID that the loadbalancer will use.
* Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
vipPortId?: pulumi.Input<string>;
/**
* The ID of the QoS Policy which will
* be applied to the Virtual IP (VIP).
*/
vipQosPolicyId?: pulumi.Input<string>;
/**
* The subnet on which to allocate the
* Loadbalancer's address. A tenant can only create Loadbalancers on networks
* authorized by policy (e.g. networks that belong to them or networks that
* are shared). Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
vipSubnetId?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a LoadBalancer resource.
*/
export interface LoadBalancerArgs {
/**
* The administrative state of the Loadbalancer.
* A valid value is true (UP) or false (DOWN).
*/
adminStateUp?: pulumi.Input<boolean>;
/**
* The availability zone of the Loadbalancer.
* Changing this creates a new loadbalancer. Available only for Octavia
* **minor version 2.14 or later**.
*/
availabilityZone?: pulumi.Input<string>;
/**
* Human-readable description for the Loadbalancer.
*/
description?: pulumi.Input<string>;
/**
* The UUID of a flavor. Changing this creates a new
* loadbalancer.
*/
flavorId?: pulumi.Input<string>;
/**
* The name of the provider. Changing this
* creates a new loadbalancer.
*/
loadbalancerProvider?: pulumi.Input<string>;
/**
* Human-readable name for the Loadbalancer. Does not have
* to be unique.
*/
name?: pulumi.Input<string>;
/**
* The region in which to obtain the V2 Networking client.
* A Networking client is needed to create an LB member. If omitted, the
* `region` argument of the provider is used. Changing this creates a new
* LB member.
*/
region?: pulumi.Input<string>;
/**
* A list of security group IDs to apply to the
* loadbalancer. The security groups must be specified by ID and not name (as
* opposed to how they are configured with the Compute Instance).
*/
securityGroupIds?: pulumi.Input<pulumi.Input<string>[]>;
/**
* A list of simple strings assigned to the loadbalancer.
* Available only for Octavia **minor version 2.5 or later**.
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Required for admins. The UUID of the tenant who owns
* the Loadbalancer. Only administrative users can specify a tenant UUID
* other than their own. Changing this creates a new loadbalancer.
*/
tenantId?: pulumi.Input<string>;
/**
* The ip address of the load balancer.
* Changing this creates a new loadbalancer.
*/
vipAddress?: pulumi.Input<string>;
/**
* The network on which to allocate the
* Loadbalancer's address. A tenant can only create Loadbalancers on networks
* authorized by policy (e.g. networks that belong to them or networks that
* are shared). Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
vipNetworkId?: pulumi.Input<string>;
/**
* The port UUID that the loadbalancer will use.
* Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
vipPortId?: pulumi.Input<string>;
/**
* The ID of the QoS Policy which will
* be applied to the Virtual IP (VIP).
*/
vipQosPolicyId?: pulumi.Input<string>;
/**
* The subnet on which to allocate the
* Loadbalancer's address. A tenant can only create Loadbalancers on networks
* authorized by policy (e.g. networks that belong to them or networks that
* are shared). Changing this creates a new loadbalancer. Exactly one of
* `vipSubnetId`, `vipNetworkId` or `vipPortId` has to be defined.
*/
vipSubnetId?: pulumi.Input<string>;
}