UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

821 lines (820 loc) 31.3 kB
import * as pulumi from "@pulumi/pulumi"; /** * Manages a Dedicated load balancer resource within HuaweiCloud. * * ## Example Usage * ### Basic Loadbalancer * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const vpcId = config.requireObject("vpcId"); * const ipv4SubnetId = config.requireObject("ipv4SubnetId"); * const l4FlavorId = config.requireObject("l4FlavorId"); * const l7FlavorId = config.requireObject("l7FlavorId"); * const epsId = config.requireObject("epsId"); * const basic = new huaweicloud.dedicatedelb.Loadbalancer("basic", { * description: "basic example", * crossVpcBackend: true, * vpcId: vpcId, * ipv4SubnetId: ipv4SubnetId, * l4FlavorId: l4FlavorId, * l7FlavorId: l7FlavorId, * availabilityZones: [ * "cn-north-4a", * "cn-north-4b", * ], * enterpriseProjectId: epsId, * }); * ``` * ### Loadbalancer With Existing EIP * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const vpcId = config.requireObject("vpcId"); * const ipv4SubnetId = config.requireObject("ipv4SubnetId"); * const ipv6NetworkId = config.requireObject("ipv6NetworkId"); * const ipv6BandwidthId = config.requireObject("ipv6BandwidthId"); * const l4FlavorId = config.requireObject("l4FlavorId"); * const l7FlavorId = config.requireObject("l7FlavorId"); * const epsId = config.requireObject("epsId"); * const eipId = config.requireObject("eipId"); * const basic = new huaweicloud.dedicatedelb.Loadbalancer("basic", { * description: "basic example", * crossVpcBackend: true, * vpcId: vpcId, * ipv6NetworkId: ipv6NetworkId, * ipv6BandwidthId: ipv6BandwidthId, * ipv4SubnetId: ipv4SubnetId, * l4FlavorId: l4FlavorId, * l7FlavorId: l7FlavorId, * availabilityZones: [ * "cn-north-4a", * "cn-north-4b", * ], * enterpriseProjectId: epsId, * ipv4EipId: eipId, * }); * ``` * ### Loadbalancer With EIP * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const vpcId = config.requireObject("vpcId"); * const ipv4SubnetId = config.requireObject("ipv4SubnetId"); * const ipv6NetworkId = config.requireObject("ipv6NetworkId"); * const ipv6BandwidthId = config.requireObject("ipv6BandwidthId"); * const l4FlavorId = config.requireObject("l4FlavorId"); * const l7FlavorId = config.requireObject("l7FlavorId"); * const basic = new huaweicloud.dedicatedelb.Loadbalancer("basic", { * description: "basic example", * crossVpcBackend: true, * vpcId: vpcId, * ipv6NetworkId: ipv6NetworkId, * ipv6BandwidthId: ipv6BandwidthId, * ipv4SubnetId: ipv4SubnetId, * l4FlavorId: l4FlavorId, * l7FlavorId: l7FlavorId, * availabilityZones: [ * "cn-north-4a", * "cn-north-4b", * ], * }); * ``` * ### Loadbalancer With gateway * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as pulumi from "@huaweicloudos/pulumi"; * * const config = new pulumi.Config(); * const vpcId = config.requireObject("vpcId"); * const ipv4SubnetId = config.requireObject("ipv4SubnetId"); * const ipv6NetworkId = config.requireObject("ipv6NetworkId"); * const basic = new huaweicloud.dedicatedelb.Loadbalancer("basic", { * description: "basic example", * loadbalancerType: "gateway", * vpcId: vpcId, * ipv4SubnetId: ipv4SubnetId, * ipv6NetworkId: ipv6NetworkId, * availabilityZones: ["cn-north-4a"], * }); * ``` * * ## Import * * ELB load balancer can be imported using the ID, e.g. bash * * ```sh * $ pulumi import huaweicloud:DedicatedElb/loadbalancer:Loadbalancer loadbalancer_1 <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`ipv6_bandwidth_id`, `iptype`, `bandwidth_charge_mode`, `sharetype`, * * `bandwidth_size`, `bandwidth_id`, `force_delete` and `deletion_protection_enable`. It is generally recommended running `terraform plan` after importing a load balancer. You can then decide if changes should be applied to the load balancer, or the resource definition should be updated to align with the load balancer. Also you can ignore changes as below. hcl resource "huaweicloud_elb_loadbalancer" "loadbalancer_1" { * * ... * * lifecycle { * * ignore_changes = [ * * ipv6_bandwidth_id, iptype, bandwidth_charge_mode, sharetype, bandwidth_size, bandwidth_id, force_delete, * * deletion_protection_enable, * * ] * * } } */ 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; /** * @deprecated Deprecated */ readonly autoPay: pulumi.Output<string | undefined>; /** * Specifies whether auto-renew is enabled. Valid values are **true** and **false**. */ readonly autoRenew: pulumi.Output<string | undefined>; readonly autoscalingEnabled: pulumi.Output<boolean>; /** * Specifies the list of AZ names. */ readonly availabilityZones: pulumi.Output<string[]>; /** * The IDs of subnets on the downstream plane. * + If this parameter is not specified, select subnets as follows: * - If IPv6 is enabled for a load balancer, the ID of subnet specified in `ipv6NetworkId` will be used. * - If IPv4 is enabled for a load balancer, the ID of subnet specified in `ipv4SubnetId` will be used. * - If only public network is available for a load balancer, the ID of any subnet in the VPC where the load balancer * resides will be used. Subnets with more IP addresses are preferred. * + If there is more than one subnet, the first subnet in the list will be used, and the subnets must be in the VPC * where the load balancer resides. */ readonly backendSubnets: pulumi.Output<string[]>; /** * Bandwidth billing type. Value options: * + **bandwidth**: Billed by bandwidth. * + **traffic**: Billed by traffic. */ readonly bandwidthChargeMode: pulumi.Output<string>; /** * Bandwidth ID of the shared bandwidth. It is mandatory when `sharetype` * is **WHOLE**. Changing this parameter will create a new resource. */ readonly bandwidthId: pulumi.Output<string>; /** * Bandwidth size. It is mandatory when `iptype` is set and `bandwidthId` * is empty. Changing this parameter will create a new resource. */ readonly bandwidthSize: pulumi.Output<number>; /** * Indicates the billing mode. The value can be one of the following: * + **flavor**: Billed by the specifications you will select. * + **lcu**: Billed by LCU usage. */ readonly chargeMode: pulumi.Output<string>; /** * Specifies the charging mode of the ELB load balancer. * Valid values are **prePaid** and **postPaid**, defaults to **postPaid**. */ readonly chargingMode: pulumi.Output<string>; /** * Indicates the time when the load balancer was created, in RFC3339 format. */ readonly createdAt: pulumi.Output<string>; /** * Enable this if you want to associate the IP addresses of backend servers with * your load balancer. Can only be true when updating. */ readonly crossVpcBackend: pulumi.Output<boolean>; /** * Specifies whether to enable deletion protection * for the load balancer. Value options: * + **true**: Enable deletion protection. * + **false**: Disable deletion protection. */ readonly deletionProtectionEnable: pulumi.Output<boolean | undefined>; /** * Human-readable description for the load balancer. */ readonly description: pulumi.Output<string | undefined>; /** * The type of the subnet on the downstream plane. The value can be: * + **ipv4**: IPv4 subnet * + **dualstack**: subnet that supports IPv4/IPv6 dual stack */ readonly elbVirsubnetType: pulumi.Output<string>; /** * The enterprise project id of the load balancer. */ readonly enterpriseProjectId: pulumi.Output<string>; /** * Specifies whether to forcibly delete the load balancer, remove the load balancer, * listeners, unbind associated pools. Defaults to **false**. */ readonly forceDelete: pulumi.Output<boolean | undefined>; /** * The scenario where the load balancer is frozen. Multiple values are separated using commas (,). * The value can be: * + **POLICE**: The load balancer is frozen due to security reasons. * + **ILLEGAL**: The load balancer is frozen due to violation of laws and regulations. * + **VERIFY**: Your account has not completed real-name authentication. * + **PARTNER**: The load balancer is frozen by the partner. * + **ARREAR**: Your account is in arrears. */ readonly frozenScene: pulumi.Output<string>; /** * Indicates whether the load balancer is a dedicated load balancer. * The value can be one of the following: * + **false**: The load balancer is a shared load balancer. * + **true**: The load balancer is a dedicated load balancer. */ readonly guaranteed: pulumi.Output<boolean>; /** * The flavor ID of the gateway load balancer. */ readonly gwFlavorId: pulumi.Output<string>; /** * Elastic IP type. Changing this parameter will create a new resource. */ readonly iptype: pulumi.Output<string>; /** * The ipv4 address of the load balancer. */ readonly ipv4Address: pulumi.Output<string>; /** * The ipv4 eip address of the load balancer. */ readonly ipv4Eip: pulumi.Output<string>; /** * The ID of the EIP. Changing this parameter will create a new resource. */ readonly ipv4EipId: pulumi.Output<string>; /** * The ID of the port bound to the private IPv4 address of the load balancer. */ readonly ipv4PortId: pulumi.Output<string>; /** * The **IPv4 subnet ID** of the subnet on which to allocate the load balancer * ipv4 address. */ readonly ipv4SubnetId: pulumi.Output<string | undefined>; /** * The ipv6 address of the Load Balancer. */ readonly ipv6Address: pulumi.Output<string>; /** * The ipv6 bandwidth id. Only support shared bandwidth. */ readonly ipv6BandwidthId: pulumi.Output<string | undefined>; /** * The ipv6 eip address of the load balancer. */ readonly ipv6Eip: pulumi.Output<string>; /** * The type of the subnet on the downstream plane. The value can be: * + **ipv4**: IPv4 subnet * + **dualstack**: subnet that supports IPv4/IPv6 dual stack */ readonly ipv6EipId: pulumi.Output<string>; /** * The **ID** of the subnet on which to allocate the load balancer ipv6 address. */ readonly ipv6NetworkId: pulumi.Output<string | undefined>; /** * The L4 flavor id of the load balancer. */ readonly l4FlavorId: pulumi.Output<string>; /** * The L7 flavor id of the load balancer. */ readonly l7FlavorId: pulumi.Output<string>; /** * Specifies the type of the load balancer. Value options: * + **gateway**: indicates a gateway load balancer. * + Keep empty(default) indicates other types of load balancers. */ readonly loadbalancerType: pulumi.Output<string>; readonly minL7FlavorId: pulumi.Output<string>; /** * Human-readable name for the load balancer. */ readonly name: pulumi.Output<string>; /** * The operating status of the load balancer. The value can be: * + **ONLINE**: indicates that the load balancer is running normally. * + **FROZEN**: indicates that the load balancer is frozen. */ readonly operatingStatus: pulumi.Output<string>; /** * Specifies the charging period of the ELB load balancer. * If `periodUnit` is set to **month**, the value ranges from `1` to `9`. * If `periodUnit` is set to **year**, the value ranges from `1` to `3`. * This parameter is mandatory if `chargingMode` is set to **prePaid**. */ readonly period: pulumi.Output<number | undefined>; /** * Specifies the charging period unit of the ELB load balancer. * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. */ readonly periodUnit: pulumi.Output<string | 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 AZ group to which the load balancer belongs. */ readonly publicBorderGroup: pulumi.Output<string>; /** * The region in which to create the load balancer resource. If omitted, the * provider-level region will be used. Changing this creates a new load balancer. */ readonly region: pulumi.Output<string>; /** * Bandwidth sharing type. Value options: * + **PER**: Dedicated bandwidth. * + **WHOLE**: Shared bandwidth. */ readonly sharetype: pulumi.Output<string>; /** * The key/value pairs to associate with the load balancer. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Indicates the time when the load balancer was updated, in RFC3339 format. */ readonly updatedAt: pulumi.Output<string>; /** * The vpc on which to create the load balancer. Changing this creates a new * load balancer. */ readonly vpcId: pulumi.Output<string>; /** * Specifies traffic distributing policies when the WAF is faulty. * Value options: * + **discard**: Traffic will not be distributed. * + **forward**: Traffic will be distributed to the default backend servers. */ readonly wafFailureAction: 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 { /** * @deprecated Deprecated */ autoPay?: pulumi.Input<string>; /** * Specifies whether auto-renew is enabled. Valid values are **true** and **false**. */ autoRenew?: pulumi.Input<string>; autoscalingEnabled?: pulumi.Input<boolean>; /** * Specifies the list of AZ names. */ availabilityZones?: pulumi.Input<pulumi.Input<string>[]>; /** * The IDs of subnets on the downstream plane. * + If this parameter is not specified, select subnets as follows: * - If IPv6 is enabled for a load balancer, the ID of subnet specified in `ipv6NetworkId` will be used. * - If IPv4 is enabled for a load balancer, the ID of subnet specified in `ipv4SubnetId` will be used. * - If only public network is available for a load balancer, the ID of any subnet in the VPC where the load balancer * resides will be used. Subnets with more IP addresses are preferred. * + If there is more than one subnet, the first subnet in the list will be used, and the subnets must be in the VPC * where the load balancer resides. */ backendSubnets?: pulumi.Input<pulumi.Input<string>[]>; /** * Bandwidth billing type. Value options: * + **bandwidth**: Billed by bandwidth. * + **traffic**: Billed by traffic. */ bandwidthChargeMode?: pulumi.Input<string>; /** * Bandwidth ID of the shared bandwidth. It is mandatory when `sharetype` * is **WHOLE**. Changing this parameter will create a new resource. */ bandwidthId?: pulumi.Input<string>; /** * Bandwidth size. It is mandatory when `iptype` is set and `bandwidthId` * is empty. Changing this parameter will create a new resource. */ bandwidthSize?: pulumi.Input<number>; /** * Indicates the billing mode. The value can be one of the following: * + **flavor**: Billed by the specifications you will select. * + **lcu**: Billed by LCU usage. */ chargeMode?: pulumi.Input<string>; /** * Specifies the charging mode of the ELB load balancer. * Valid values are **prePaid** and **postPaid**, defaults to **postPaid**. */ chargingMode?: pulumi.Input<string>; /** * Indicates the time when the load balancer was created, in RFC3339 format. */ createdAt?: pulumi.Input<string>; /** * Enable this if you want to associate the IP addresses of backend servers with * your load balancer. Can only be true when updating. */ crossVpcBackend?: pulumi.Input<boolean>; /** * Specifies whether to enable deletion protection * for the load balancer. Value options: * + **true**: Enable deletion protection. * + **false**: Disable deletion protection. */ deletionProtectionEnable?: pulumi.Input<boolean>; /** * Human-readable description for the load balancer. */ description?: pulumi.Input<string>; /** * The type of the subnet on the downstream plane. The value can be: * + **ipv4**: IPv4 subnet * + **dualstack**: subnet that supports IPv4/IPv6 dual stack */ elbVirsubnetType?: pulumi.Input<string>; /** * The enterprise project id of the load balancer. */ enterpriseProjectId?: pulumi.Input<string>; /** * Specifies whether to forcibly delete the load balancer, remove the load balancer, * listeners, unbind associated pools. Defaults to **false**. */ forceDelete?: pulumi.Input<boolean>; /** * The scenario where the load balancer is frozen. Multiple values are separated using commas (,). * The value can be: * + **POLICE**: The load balancer is frozen due to security reasons. * + **ILLEGAL**: The load balancer is frozen due to violation of laws and regulations. * + **VERIFY**: Your account has not completed real-name authentication. * + **PARTNER**: The load balancer is frozen by the partner. * + **ARREAR**: Your account is in arrears. */ frozenScene?: pulumi.Input<string>; /** * Indicates whether the load balancer is a dedicated load balancer. * The value can be one of the following: * + **false**: The load balancer is a shared load balancer. * + **true**: The load balancer is a dedicated load balancer. */ guaranteed?: pulumi.Input<boolean>; /** * The flavor ID of the gateway load balancer. */ gwFlavorId?: pulumi.Input<string>; /** * Elastic IP type. Changing this parameter will create a new resource. */ iptype?: pulumi.Input<string>; /** * The ipv4 address of the load balancer. */ ipv4Address?: pulumi.Input<string>; /** * The ipv4 eip address of the load balancer. */ ipv4Eip?: pulumi.Input<string>; /** * The ID of the EIP. Changing this parameter will create a new resource. */ ipv4EipId?: pulumi.Input<string>; /** * The ID of the port bound to the private IPv4 address of the load balancer. */ ipv4PortId?: pulumi.Input<string>; /** * The **IPv4 subnet ID** of the subnet on which to allocate the load balancer * ipv4 address. */ ipv4SubnetId?: pulumi.Input<string>; /** * The ipv6 address of the Load Balancer. */ ipv6Address?: pulumi.Input<string>; /** * The ipv6 bandwidth id. Only support shared bandwidth. */ ipv6BandwidthId?: pulumi.Input<string>; /** * The ipv6 eip address of the load balancer. */ ipv6Eip?: pulumi.Input<string>; /** * The type of the subnet on the downstream plane. The value can be: * + **ipv4**: IPv4 subnet * + **dualstack**: subnet that supports IPv4/IPv6 dual stack */ ipv6EipId?: pulumi.Input<string>; /** * The **ID** of the subnet on which to allocate the load balancer ipv6 address. */ ipv6NetworkId?: pulumi.Input<string>; /** * The L4 flavor id of the load balancer. */ l4FlavorId?: pulumi.Input<string>; /** * The L7 flavor id of the load balancer. */ l7FlavorId?: pulumi.Input<string>; /** * Specifies the type of the load balancer. Value options: * + **gateway**: indicates a gateway load balancer. * + Keep empty(default) indicates other types of load balancers. */ loadbalancerType?: pulumi.Input<string>; minL7FlavorId?: pulumi.Input<string>; /** * Human-readable name for the load balancer. */ name?: pulumi.Input<string>; /** * The operating status of the load balancer. The value can be: * + **ONLINE**: indicates that the load balancer is running normally. * + **FROZEN**: indicates that the load balancer is frozen. */ operatingStatus?: pulumi.Input<string>; /** * Specifies the charging period of the ELB load balancer. * If `periodUnit` is set to **month**, the value ranges from `1` to `9`. * If `periodUnit` is set to **year**, the value ranges from `1` to `3`. * This parameter is mandatory if `chargingMode` is set to **prePaid**. */ period?: pulumi.Input<number>; /** * Specifies the charging period unit of the ELB load balancer. * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. */ periodUnit?: pulumi.Input<string>; /** * 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 AZ group to which the load balancer belongs. */ publicBorderGroup?: pulumi.Input<string>; /** * The region in which to create the load balancer resource. If omitted, the * provider-level region will be used. Changing this creates a new load balancer. */ region?: pulumi.Input<string>; /** * Bandwidth sharing type. Value options: * + **PER**: Dedicated bandwidth. * + **WHOLE**: Shared bandwidth. */ sharetype?: pulumi.Input<string>; /** * The key/value pairs to associate with the load balancer. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * Indicates the time when the load balancer was updated, in RFC3339 format. */ updatedAt?: pulumi.Input<string>; /** * The vpc on which to create the load balancer. Changing this creates a new * load balancer. */ vpcId?: pulumi.Input<string>; /** * Specifies traffic distributing policies when the WAF is faulty. * Value options: * + **discard**: Traffic will not be distributed. * + **forward**: Traffic will be distributed to the default backend servers. */ wafFailureAction?: pulumi.Input<string>; } /** * The set of arguments for constructing a Loadbalancer resource. */ export interface LoadbalancerArgs { /** * @deprecated Deprecated */ autoPay?: pulumi.Input<string>; /** * Specifies whether auto-renew is enabled. Valid values are **true** and **false**. */ autoRenew?: pulumi.Input<string>; autoscalingEnabled?: pulumi.Input<boolean>; /** * Specifies the list of AZ names. */ availabilityZones: pulumi.Input<pulumi.Input<string>[]>; /** * The IDs of subnets on the downstream plane. * + If this parameter is not specified, select subnets as follows: * - If IPv6 is enabled for a load balancer, the ID of subnet specified in `ipv6NetworkId` will be used. * - If IPv4 is enabled for a load balancer, the ID of subnet specified in `ipv4SubnetId` will be used. * - If only public network is available for a load balancer, the ID of any subnet in the VPC where the load balancer * resides will be used. Subnets with more IP addresses are preferred. * + If there is more than one subnet, the first subnet in the list will be used, and the subnets must be in the VPC * where the load balancer resides. */ backendSubnets?: pulumi.Input<pulumi.Input<string>[]>; /** * Bandwidth billing type. Value options: * + **bandwidth**: Billed by bandwidth. * + **traffic**: Billed by traffic. */ bandwidthChargeMode?: pulumi.Input<string>; /** * Bandwidth ID of the shared bandwidth. It is mandatory when `sharetype` * is **WHOLE**. Changing this parameter will create a new resource. */ bandwidthId?: pulumi.Input<string>; /** * Bandwidth size. It is mandatory when `iptype` is set and `bandwidthId` * is empty. Changing this parameter will create a new resource. */ bandwidthSize?: pulumi.Input<number>; /** * Specifies the charging mode of the ELB load balancer. * Valid values are **prePaid** and **postPaid**, defaults to **postPaid**. */ chargingMode?: pulumi.Input<string>; /** * Enable this if you want to associate the IP addresses of backend servers with * your load balancer. Can only be true when updating. */ crossVpcBackend?: pulumi.Input<boolean>; /** * Specifies whether to enable deletion protection * for the load balancer. Value options: * + **true**: Enable deletion protection. * + **false**: Disable deletion protection. */ deletionProtectionEnable?: pulumi.Input<boolean>; /** * Human-readable description for the load balancer. */ description?: pulumi.Input<string>; /** * The enterprise project id of the load balancer. */ enterpriseProjectId?: pulumi.Input<string>; /** * Specifies whether to forcibly delete the load balancer, remove the load balancer, * listeners, unbind associated pools. Defaults to **false**. */ forceDelete?: pulumi.Input<boolean>; /** * Elastic IP type. Changing this parameter will create a new resource. */ iptype?: pulumi.Input<string>; /** * The ipv4 address of the load balancer. */ ipv4Address?: pulumi.Input<string>; /** * The ID of the EIP. Changing this parameter will create a new resource. */ ipv4EipId?: pulumi.Input<string>; /** * The **IPv4 subnet ID** of the subnet on which to allocate the load balancer * ipv4 address. */ ipv4SubnetId?: pulumi.Input<string>; /** * The ipv6 address of the Load Balancer. */ ipv6Address?: pulumi.Input<string>; /** * The ipv6 bandwidth id. Only support shared bandwidth. */ ipv6BandwidthId?: pulumi.Input<string>; /** * The **ID** of the subnet on which to allocate the load balancer ipv6 address. */ ipv6NetworkId?: pulumi.Input<string>; /** * The L4 flavor id of the load balancer. */ l4FlavorId?: pulumi.Input<string>; /** * The L7 flavor id of the load balancer. */ l7FlavorId?: pulumi.Input<string>; /** * Specifies the type of the load balancer. Value options: * + **gateway**: indicates a gateway load balancer. * + Keep empty(default) indicates other types of load balancers. */ loadbalancerType?: pulumi.Input<string>; minL7FlavorId?: pulumi.Input<string>; /** * Human-readable name for the load balancer. */ name?: pulumi.Input<string>; /** * Specifies the charging period of the ELB load balancer. * If `periodUnit` is set to **month**, the value ranges from `1` to `9`. * If `periodUnit` is set to **year**, the value ranges from `1` to `3`. * This parameter is mandatory if `chargingMode` is set to **prePaid**. */ period?: pulumi.Input<number>; /** * Specifies the charging period unit of the ELB load balancer. * Valid values are **month** and **year**. This parameter is mandatory if `chargingMode` is set to **prePaid**. */ periodUnit?: pulumi.Input<string>; /** * 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 region in which to create the load balancer resource. If omitted, the * provider-level region will be used. Changing this creates a new load balancer. */ region?: pulumi.Input<string>; /** * Bandwidth sharing type. Value options: * + **PER**: Dedicated bandwidth. * + **WHOLE**: Shared bandwidth. */ sharetype?: pulumi.Input<string>; /** * The key/value pairs to associate with the load balancer. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The vpc on which to create the load balancer. Changing this creates a new * load balancer. */ vpcId?: pulumi.Input<string>; /** * Specifies traffic distributing policies when the WAF is faulty. * Value options: * + **discard**: Traffic will not be distributed. * + **forward**: Traffic will be distributed to the default backend servers. */ wafFailureAction?: pulumi.Input<string>; }