UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

264 lines (263 loc) 11.5 kB
import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "../types"; /** * Manages an ELB member resource within HuaweiCloud. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const elbPoolId = config.requireObject("elbPoolId"); * const ipv4SubnetId = config.requireObject("ipv4SubnetId"); * const member1 = new huaweicloud.dedicatedelb.Member("member1", { * address: "192.168.199.23", * protocolPort: 8080, * poolId: elbPoolId, * subnetId: ipv4SubnetId, * }); * ``` * * ## Import * * ELB member can be imported using the `pool_id` and `id` separated by a slash, e.g. bash * * ```sh * $ pulumi import huaweicloud:DedicatedElb/member:Member member_1 <pool_id>/<id> * ``` */ export declare class Member extends pulumi.CustomResource { /** * Get an existing Member 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?: MemberState, opts?: pulumi.CustomResourceOptions): Member; /** * Returns true if the given object is an instance of Member. 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 Member; /** * The IP address of the member to receive traffic from the load balancer. * Changing this creates a new member. */ readonly address: pulumi.Output<string>; /** * The time when the backend server was added. The format is **yyyy-MM-dd'T'HH:mm:ss'Z' (UTC time)**. */ readonly createdAt: pulumi.Output<string>; /** * The ID of the instance associated with the backend server. If this parameter is left blank, the backend * server is not a real device. It may be an IP address. */ readonly instanceId: pulumi.Output<string>; /** * The IP version supported by the backend server. The value can be **v4 (IPv4)** or **v6 (IPv6)**, depending * on the value of address returned by the system. */ readonly ipVersion: pulumi.Output<string>; /** * The type of the backend server. The value can be: * + **ip**: IP as backend servers * + **instance**: ECSs used as backend servers */ readonly memberType: pulumi.Output<string>; /** * Human-readable name for the member. */ readonly name: pulumi.Output<string>; /** * The health status of the backend server. */ readonly operatingStatus: pulumi.Output<string>; /** * The id of the pool that this member will be assigned to. */ readonly poolId: pulumi.Output<string>; /** * The port on which to listen for client traffic. It must be set to `0` for gateway * load balancers with IP backend server groups associated. It can be left blank because it does not take effect if * `anyPortEnable` is set to **true** for a backend server group. */ readonly protocolPort: pulumi.Output<number>; /** * Why health check fails. * The reason structure is documented below. */ readonly reasons: pulumi.Output<outputs.DedicatedElb.MemberReason[]>; /** * The region in which to create the ELB member resource. If omitted, the the * provider-level region will be used. Changing this creates a new member. */ readonly region: pulumi.Output<string>; /** * The health status of the backend server if `listenerId` under status is specified. If `listenerId` under * `status` is not specified, `operatingStatus` of member takes precedence. * The status structure is documented below. */ readonly statuses: pulumi.Output<outputs.DedicatedElb.MemberStatus[]>; /** * The **IPv4 or IPv6 subnet ID** of the subnet in which to access the member. * + The IPv4 or IPv6 subnet must be in the same VPC as the subnet of the load balancer. * + This parameter must be specified for gateway load balancers. The subnet of the backend server must be in the same * VPC as that of the load balancer, and it must be different from the subnet of the load balancer. * + If this parameter is not specified, **cross-VPC backend** has been enabled for the load balancer. * In this case, cross-VPC backend servers must use private IPv4 addresses, * and the protocol of the backend server group must be TCP, HTTP, or HTTPS. */ readonly subnetId: pulumi.Output<string | undefined>; /** * The time when the backend server was updated. The format is **yyyy-MM-dd'T'HH:mm:ss'Z' (UTC time)**. */ readonly updatedAt: pulumi.Output<string>; /** * A positive integer value that indicates the relative portion of traffic that this member * should receive from the pool. For example, a member with a weight of 10 receives five times as much traffic as a * member with a weight of 2. */ readonly weight: pulumi.Output<number>; /** * Create a Member 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: MemberArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Member resources. */ export interface MemberState { /** * The IP address of the member to receive traffic from the load balancer. * Changing this creates a new member. */ address?: pulumi.Input<string>; /** * The time when the backend server was added. The format is **yyyy-MM-dd'T'HH:mm:ss'Z' (UTC time)**. */ createdAt?: pulumi.Input<string>; /** * The ID of the instance associated with the backend server. If this parameter is left blank, the backend * server is not a real device. It may be an IP address. */ instanceId?: pulumi.Input<string>; /** * The IP version supported by the backend server. The value can be **v4 (IPv4)** or **v6 (IPv6)**, depending * on the value of address returned by the system. */ ipVersion?: pulumi.Input<string>; /** * The type of the backend server. The value can be: * + **ip**: IP as backend servers * + **instance**: ECSs used as backend servers */ memberType?: pulumi.Input<string>; /** * Human-readable name for the member. */ name?: pulumi.Input<string>; /** * The health status of the backend server. */ operatingStatus?: pulumi.Input<string>; /** * The id of the pool that this member will be assigned to. */ poolId?: pulumi.Input<string>; /** * The port on which to listen for client traffic. It must be set to `0` for gateway * load balancers with IP backend server groups associated. It can be left blank because it does not take effect if * `anyPortEnable` is set to **true** for a backend server group. */ protocolPort?: pulumi.Input<number>; /** * Why health check fails. * The reason structure is documented below. */ reasons?: pulumi.Input<pulumi.Input<inputs.DedicatedElb.MemberReason>[]>; /** * The region in which to create the ELB member resource. If omitted, the the * provider-level region will be used. Changing this creates a new member. */ region?: pulumi.Input<string>; /** * The health status of the backend server if `listenerId` under status is specified. If `listenerId` under * `status` is not specified, `operatingStatus` of member takes precedence. * The status structure is documented below. */ statuses?: pulumi.Input<pulumi.Input<inputs.DedicatedElb.MemberStatus>[]>; /** * The **IPv4 or IPv6 subnet ID** of the subnet in which to access the member. * + The IPv4 or IPv6 subnet must be in the same VPC as the subnet of the load balancer. * + This parameter must be specified for gateway load balancers. The subnet of the backend server must be in the same * VPC as that of the load balancer, and it must be different from the subnet of the load balancer. * + If this parameter is not specified, **cross-VPC backend** has been enabled for the load balancer. * In this case, cross-VPC backend servers must use private IPv4 addresses, * and the protocol of the backend server group must be TCP, HTTP, or HTTPS. */ subnetId?: pulumi.Input<string>; /** * The time when the backend server was updated. The format is **yyyy-MM-dd'T'HH:mm:ss'Z' (UTC time)**. */ updatedAt?: pulumi.Input<string>; /** * A positive integer value that indicates the relative portion of traffic that this member * should receive from the pool. For example, a member with a weight of 10 receives five times as much traffic as a * member with a weight of 2. */ weight?: pulumi.Input<number>; } /** * The set of arguments for constructing a Member resource. */ export interface MemberArgs { /** * The IP address of the member to receive traffic from the load balancer. * Changing this creates a new member. */ address: pulumi.Input<string>; /** * Human-readable name for the member. */ name?: pulumi.Input<string>; /** * The id of the pool that this member will be assigned to. */ poolId: pulumi.Input<string>; /** * The port on which to listen for client traffic. It must be set to `0` for gateway * load balancers with IP backend server groups associated. It can be left blank because it does not take effect if * `anyPortEnable` is set to **true** for a backend server group. */ protocolPort?: pulumi.Input<number>; /** * The region in which to create the ELB member resource. If omitted, the the * provider-level region will be used. Changing this creates a new member. */ region?: pulumi.Input<string>; /** * The **IPv4 or IPv6 subnet ID** of the subnet in which to access the member. * + The IPv4 or IPv6 subnet must be in the same VPC as the subnet of the load balancer. * + This parameter must be specified for gateway load balancers. The subnet of the backend server must be in the same * VPC as that of the load balancer, and it must be different from the subnet of the load balancer. * + If this parameter is not specified, **cross-VPC backend** has been enabled for the load balancer. * In this case, cross-VPC backend servers must use private IPv4 addresses, * and the protocol of the backend server group must be TCP, HTTP, or HTTPS. */ subnetId?: pulumi.Input<string>; /** * A positive integer value that indicates the relative portion of traffic that this member * should receive from the pool. For example, a member with a weight of 10 receives five times as much traffic as a * member with a weight of 2. */ weight?: pulumi.Input<number>; }