All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.alicloud.slb.LoadBalancerArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.slb;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class LoadBalancerArgs extends com.pulumi.resources.ResourceArgs {

    public static final LoadBalancerArgs Empty = new LoadBalancerArgs();

    /**
     * Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.
     * 
     */
    @Import(name="address")
    private @Nullable Output address;

    /**
     * @return Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.
     * 
     */
    public Optional> address() {
        return Optional.ofNullable(this.address);
    }

    /**
     * The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to "ipv4". Now, only internet instance support ipv6 address.
     * 
     */
    @Import(name="addressIpVersion")
    private @Nullable Output addressIpVersion;

    /**
     * @return The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to "ipv4". Now, only internet instance support ipv6 address.
     * 
     */
    public Optional> addressIpVersion() {
        return Optional.ofNullable(this.addressIpVersion);
    }

    /**
     * The network type of the SLB instance. Valid values: ["internet", "intranet"]. If load balancer launched in VPC, this value must be "intranet".
     * - internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.
     * - intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.
     * 
     */
    @Import(name="addressType")
    private @Nullable Output addressType;

    /**
     * @return The network type of the SLB instance. Valid values: ["internet", "intranet"]. If load balancer launched in VPC, this value must be "intranet".
     * - internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.
     * - intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.
     * 
     */
    public Optional> addressType() {
        return Optional.ofNullable(this.addressType);
    }

    /**
     * Valid
     * value is between 1 and 1000, If argument "internet_charge_type" is "paybytraffic", then this value will be ignore.
     * 
     */
    @Import(name="bandwidth")
    private @Nullable Output bandwidth;

    /**
     * @return Valid
     * value is between 1 and 1000, If argument "internet_charge_type" is "paybytraffic", then this value will be ignore.
     * 
     */
    public Optional> bandwidth() {
        return Optional.ofNullable(this.bandwidth);
    }

    /**
     * Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.
     * 
     */
    @Import(name="deleteProtection")
    private @Nullable Output deleteProtection;

    /**
     * @return Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.
     * 
     */
    public Optional> deleteProtection() {
        return Optional.ofNullable(this.deleteProtection);
    }

    /**
     * The billing method of the load balancer. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
     * 
     */
    @Import(name="instanceChargeType")
    private @Nullable Output instanceChargeType;

    /**
     * @return The billing method of the load balancer. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
     * 
     */
    public Optional> instanceChargeType() {
        return Optional.ofNullable(this.instanceChargeType);
    }

    /**
     * Valid
     * values are `PayByBandwidth`, `PayByTraffic`. If this value is "PayByBandwidth", then argument "internet" must be "true". Default is "PayByTraffic". If load balancer launched in VPC, this value must be "PayByTraffic".
     * Before version 1.10.1, the valid values are "paybybandwidth" and "paybytraffic".
     * 
     */
    @Import(name="internetChargeType")
    private @Nullable Output internetChargeType;

    /**
     * @return Valid
     * values are `PayByBandwidth`, `PayByTraffic`. If this value is "PayByBandwidth", then argument "internet" must be "true". Default is "PayByTraffic". If load balancer launched in VPC, this value must be "PayByTraffic".
     * Before version 1.10.1, the valid values are "paybybandwidth" and "paybytraffic".
     * 
     */
    public Optional> internetChargeType() {
        return Optional.ofNullable(this.internetChargeType);
    }

    @Import(name="loadBalancerName")
    private @Nullable Output loadBalancerName;

    public Optional> loadBalancerName() {
        return Optional.ofNullable(this.loadBalancerName);
    }

    /**
     * The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance. Launching "Performance-guaranteed" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.
     * 
     */
    @Import(name="loadBalancerSpec")
    private @Nullable Output loadBalancerSpec;

    /**
     * @return The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance. Launching "Performance-guaranteed" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.
     * 
     */
    public Optional> loadBalancerSpec() {
        return Optional.ofNullable(this.loadBalancerSpec);
    }

    /**
     * The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
     * 
     */
    @Import(name="masterZoneId")
    private @Nullable Output masterZoneId;

    /**
     * @return The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
     * 
     */
    public Optional> masterZoneId() {
        return Optional.ofNullable(this.masterZoneId);
    }

    /**
     * The reason of modification protection. It's effective when `modification_protection_status` is `ConsoleProtection`.
     * 
     */
    @Import(name="modificationProtectionReason")
    private @Nullable Output modificationProtectionReason;

    /**
     * @return The reason of modification protection. It's effective when `modification_protection_status` is `ConsoleProtection`.
     * 
     */
    public Optional> modificationProtectionReason() {
        return Optional.ofNullable(this.modificationProtectionReason);
    }

    /**
     * The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.
     * 
     */
    @Import(name="modificationProtectionStatus")
    private @Nullable Output modificationProtectionStatus;

    /**
     * @return The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.
     * 
     */
    public Optional> modificationProtectionStatus() {
        return Optional.ofNullable(this.modificationProtectionStatus);
    }

    /**
     * Field `name` has been deprecated from provider version 1.123.1 New field `load_balancer_name` instead.
     * 
     * @deprecated
     * Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead
     * 
     */
    @Deprecated /* Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Field `name` has been deprecated from provider version 1.123.1 New field `load_balancer_name` instead.
     * 
     * @deprecated
     * Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead
     * 
     */
    @Deprecated /* Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
     * 
     */
    @Import(name="paymentType")
    private @Nullable Output paymentType;

    /**
     * @return The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
     * 
     */
    public Optional> paymentType() {
        return Optional.ofNullable(this.paymentType);
    }

    /**
     * The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36].
     * > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36].
     * > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * The Id of resource group which the SLB belongs.
     * 
     */
    @Import(name="resourceGroupId")
    private @Nullable Output resourceGroupId;

    /**
     * @return The Id of resource group which the SLB belongs.
     * 
     */
    public Optional> resourceGroupId() {
        return Optional.ofNullable(this.resourceGroupId);
    }

    /**
     * The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
     * 
     */
    @Import(name="slaveZoneId")
    private @Nullable Output slaveZoneId;

    /**
     * @return The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
     * 
     */
    public Optional> slaveZoneId() {
        return Optional.ofNullable(this.slaveZoneId);
    }

    /**
     * The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance.
     * Launching "[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)" instance, it is must be specified and it valid values are: "slb.s1.small", "slb.s2.small", "slb.s2.medium",
     * "slb.s3.small", "slb.s3.medium", "slb.s3.large" and "slb.s4.large".
     * 
     * @deprecated
     * Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead
     * 
     */
    @Deprecated /* Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead */
    @Import(name="specification")
    private @Nullable Output specification;

    /**
     * @return The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance.
     * Launching "[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)" instance, it is must be specified and it valid values are: "slb.s1.small", "slb.s2.small", "slb.s2.medium",
     * "slb.s3.small", "slb.s3.medium", "slb.s3.large" and "slb.s4.large".
     * 
     * @deprecated
     * Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead
     * 
     */
    @Deprecated /* Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead */
    public Optional> specification() {
        return Optional.ofNullable(this.specification);
    }

    /**
     * The status of slb load balancer. Valid values: `active` and `inactice`. The system default value is `active`.
     * 
     * > **NOTE:** A "Shared-Performance" instance can be changed to "Performance-guaranteed", but the change is irreversible.
     * 
     * > **NOTE:** To change a "Shared-Performance" instance to a "Performance-guaranteed" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.
     * 
     * > **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return The status of slb load balancer. Valid values: `active` and `inactice`. The system default value is `active`.
     * 
     * > **NOTE:** A "Shared-Performance" instance can be changed to "Performance-guaranteed", but the change is irreversible.
     * 
     * > **NOTE:** To change a "Shared-Performance" instance to a "Performance-guaranteed" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.
     * 
     * > **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * A mapping of tags to assign to the resource. The `tags` can have a maximum of 10 tag for every load balancer instance.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags to assign to the resource. The `tags` can have a maximum of 10 tag for every load balancer instance.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The VSwitch ID to launch in. If `address_type` is internet, it will be ignore.
     * 
     */
    @Import(name="vswitchId")
    private @Nullable Output vswitchId;

    /**
     * @return The VSwitch ID to launch in. If `address_type` is internet, it will be ignore.
     * 
     */
    public Optional> vswitchId() {
        return Optional.ofNullable(this.vswitchId);
    }

    private LoadBalancerArgs() {}

    private LoadBalancerArgs(LoadBalancerArgs $) {
        this.address = $.address;
        this.addressIpVersion = $.addressIpVersion;
        this.addressType = $.addressType;
        this.bandwidth = $.bandwidth;
        this.deleteProtection = $.deleteProtection;
        this.instanceChargeType = $.instanceChargeType;
        this.internetChargeType = $.internetChargeType;
        this.loadBalancerName = $.loadBalancerName;
        this.loadBalancerSpec = $.loadBalancerSpec;
        this.masterZoneId = $.masterZoneId;
        this.modificationProtectionReason = $.modificationProtectionReason;
        this.modificationProtectionStatus = $.modificationProtectionStatus;
        this.name = $.name;
        this.paymentType = $.paymentType;
        this.period = $.period;
        this.resourceGroupId = $.resourceGroupId;
        this.slaveZoneId = $.slaveZoneId;
        this.specification = $.specification;
        this.status = $.status;
        this.tags = $.tags;
        this.vswitchId = $.vswitchId;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(LoadBalancerArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private LoadBalancerArgs $;

        public Builder() {
            $ = new LoadBalancerArgs();
        }

        public Builder(LoadBalancerArgs defaults) {
            $ = new LoadBalancerArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param address Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.
         * 
         * @return builder
         * 
         */
        public Builder address(@Nullable Output address) {
            $.address = address;
            return this;
        }

        /**
         * @param address Specify the IP address of the private network for the SLB instance, which must be in the destination CIDR block of the correspond ing switch.
         * 
         * @return builder
         * 
         */
        public Builder address(String address) {
            return address(Output.of(address));
        }

        /**
         * @param addressIpVersion The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to "ipv4". Now, only internet instance support ipv6 address.
         * 
         * @return builder
         * 
         */
        public Builder addressIpVersion(@Nullable Output addressIpVersion) {
            $.addressIpVersion = addressIpVersion;
            return this;
        }

        /**
         * @param addressIpVersion The IP version of the SLB instance to be created, which can be set to ipv4 or ipv6 . Default to "ipv4". Now, only internet instance support ipv6 address.
         * 
         * @return builder
         * 
         */
        public Builder addressIpVersion(String addressIpVersion) {
            return addressIpVersion(Output.of(addressIpVersion));
        }

        /**
         * @param addressType The network type of the SLB instance. Valid values: ["internet", "intranet"]. If load balancer launched in VPC, this value must be "intranet".
         * - internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.
         * - intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.
         * 
         * @return builder
         * 
         */
        public Builder addressType(@Nullable Output addressType) {
            $.addressType = addressType;
            return this;
        }

        /**
         * @param addressType The network type of the SLB instance. Valid values: ["internet", "intranet"]. If load balancer launched in VPC, this value must be "intranet".
         * - internet: After an Internet SLB instance is created, the system allocates a public IP address so that the instance can forward requests from the Internet.
         * - intranet: After an intranet SLB instance is created, the system allocates an intranet IP address so that the instance can only forward intranet requests.
         * 
         * @return builder
         * 
         */
        public Builder addressType(String addressType) {
            return addressType(Output.of(addressType));
        }

        /**
         * @param bandwidth Valid
         * value is between 1 and 1000, If argument "internet_charge_type" is "paybytraffic", then this value will be ignore.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(@Nullable Output bandwidth) {
            $.bandwidth = bandwidth;
            return this;
        }

        /**
         * @param bandwidth Valid
         * value is between 1 and 1000, If argument "internet_charge_type" is "paybytraffic", then this value will be ignore.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(Integer bandwidth) {
            return bandwidth(Output.of(bandwidth));
        }

        /**
         * @param deleteProtection Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.
         * 
         * @return builder
         * 
         */
        public Builder deleteProtection(@Nullable Output deleteProtection) {
            $.deleteProtection = deleteProtection;
            return this;
        }

        /**
         * @param deleteProtection Whether enable the deletion protection or not. on: Enable deletion protection. off: Disable deletion protection. Default to off. Only postpaid instance support this function.
         * 
         * @return builder
         * 
         */
        public Builder deleteProtection(String deleteProtection) {
            return deleteProtection(Output.of(deleteProtection));
        }

        /**
         * @param instanceChargeType The billing method of the load balancer. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
         * 
         * @return builder
         * 
         */
        public Builder instanceChargeType(@Nullable Output instanceChargeType) {
            $.instanceChargeType = instanceChargeType;
            return this;
        }

        /**
         * @param instanceChargeType The billing method of the load balancer. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
         * 
         * @return builder
         * 
         */
        public Builder instanceChargeType(String instanceChargeType) {
            return instanceChargeType(Output.of(instanceChargeType));
        }

        /**
         * @param internetChargeType Valid
         * values are `PayByBandwidth`, `PayByTraffic`. If this value is "PayByBandwidth", then argument "internet" must be "true". Default is "PayByTraffic". If load balancer launched in VPC, this value must be "PayByTraffic".
         * Before version 1.10.1, the valid values are "paybybandwidth" and "paybytraffic".
         * 
         * @return builder
         * 
         */
        public Builder internetChargeType(@Nullable Output internetChargeType) {
            $.internetChargeType = internetChargeType;
            return this;
        }

        /**
         * @param internetChargeType Valid
         * values are `PayByBandwidth`, `PayByTraffic`. If this value is "PayByBandwidth", then argument "internet" must be "true". Default is "PayByTraffic". If load balancer launched in VPC, this value must be "PayByTraffic".
         * Before version 1.10.1, the valid values are "paybybandwidth" and "paybytraffic".
         * 
         * @return builder
         * 
         */
        public Builder internetChargeType(String internetChargeType) {
            return internetChargeType(Output.of(internetChargeType));
        }

        public Builder loadBalancerName(@Nullable Output loadBalancerName) {
            $.loadBalancerName = loadBalancerName;
            return this;
        }

        public Builder loadBalancerName(String loadBalancerName) {
            return loadBalancerName(Output.of(loadBalancerName));
        }

        /**
         * @param loadBalancerSpec The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance. Launching "Performance-guaranteed" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerSpec(@Nullable Output loadBalancerSpec) {
            $.loadBalancerSpec = loadBalancerSpec;
            return this;
        }

        /**
         * @param loadBalancerSpec The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance. Launching "Performance-guaranteed" instance, it must be specified. Valid values: `slb.s1.small`, `slb.s2.small`, `slb.s2.medium`.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerSpec(String loadBalancerSpec) {
            return loadBalancerSpec(Output.of(loadBalancerSpec));
        }

        /**
         * @param masterZoneId The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
         * 
         * @return builder
         * 
         */
        public Builder masterZoneId(@Nullable Output masterZoneId) {
            $.masterZoneId = masterZoneId;
            return this;
        }

        /**
         * @param masterZoneId The primary zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
         * 
         * @return builder
         * 
         */
        public Builder masterZoneId(String masterZoneId) {
            return masterZoneId(Output.of(masterZoneId));
        }

        /**
         * @param modificationProtectionReason The reason of modification protection. It's effective when `modification_protection_status` is `ConsoleProtection`.
         * 
         * @return builder
         * 
         */
        public Builder modificationProtectionReason(@Nullable Output modificationProtectionReason) {
            $.modificationProtectionReason = modificationProtectionReason;
            return this;
        }

        /**
         * @param modificationProtectionReason The reason of modification protection. It's effective when `modification_protection_status` is `ConsoleProtection`.
         * 
         * @return builder
         * 
         */
        public Builder modificationProtectionReason(String modificationProtectionReason) {
            return modificationProtectionReason(Output.of(modificationProtectionReason));
        }

        /**
         * @param modificationProtectionStatus The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.
         * 
         * @return builder
         * 
         */
        public Builder modificationProtectionStatus(@Nullable Output modificationProtectionStatus) {
            $.modificationProtectionStatus = modificationProtectionStatus;
            return this;
        }

        /**
         * @param modificationProtectionStatus The status of modification protection. Valid values: `ConsoleProtection` and `NonProtection`. Default value: `NonProtection`.
         * 
         * @return builder
         * 
         */
        public Builder modificationProtectionStatus(String modificationProtectionStatus) {
            return modificationProtectionStatus(Output.of(modificationProtectionStatus));
        }

        /**
         * @param name Field `name` has been deprecated from provider version 1.123.1 New field `load_balancer_name` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead
         * 
         */
        @Deprecated /* Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Field `name` has been deprecated from provider version 1.123.1 New field `load_balancer_name` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead
         * 
         */
        @Deprecated /* Field 'name' has been deprecated from provider version 1.123.1. New field 'load_balancer_name' instead */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param paymentType The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(@Nullable Output paymentType) {
            $.paymentType = paymentType;
            return this;
        }

        /**
         * @param paymentType The billing method of the load balancer. Valid values are `PayAsYouGo` and `Subscription`. Default to `PayAsYouGo`.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(String paymentType) {
            return paymentType(Output.of(paymentType));
        }

        /**
         * @param period The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36].
         * > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
         * 
         * @return builder
         * 
         */
        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        /**
         * @param period The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36].
         * > **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
         * 
         * @return builder
         * 
         */
        public Builder period(Integer period) {
            return period(Output.of(period));
        }

        /**
         * @param resourceGroupId The Id of resource group which the SLB belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(@Nullable Output resourceGroupId) {
            $.resourceGroupId = resourceGroupId;
            return this;
        }

        /**
         * @param resourceGroupId The Id of resource group which the SLB belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(String resourceGroupId) {
            return resourceGroupId(Output.of(resourceGroupId));
        }

        /**
         * @param slaveZoneId The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
         * 
         * @return builder
         * 
         */
        public Builder slaveZoneId(@Nullable Output slaveZoneId) {
            $.slaveZoneId = slaveZoneId;
            return this;
        }

        /**
         * @param slaveZoneId The standby zone ID of the SLB instance. If not specified, the system will be randomly assigned. You can query the primary and standby zones in a region by calling the DescribeZone API.
         * 
         * @return builder
         * 
         */
        public Builder slaveZoneId(String slaveZoneId) {
            return slaveZoneId(Output.of(slaveZoneId));
        }

        /**
         * @param specification The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance.
         * Launching "[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)" instance, it is must be specified and it valid values are: "slb.s1.small", "slb.s2.small", "slb.s2.medium",
         * "slb.s3.small", "slb.s3.medium", "slb.s3.large" and "slb.s4.large".
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead
         * 
         */
        @Deprecated /* Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead */
        public Builder specification(@Nullable Output specification) {
            $.specification = specification;
            return this;
        }

        /**
         * @param specification The specification of the Server Load Balancer instance. Default to empty string indicating it is "Shared-Performance" instance.
         * Launching "[Performance-guaranteed](https://www.alibabacloud.com/help/en/slb/product-overview/announcements-and-updates)" instance, it is must be specified and it valid values are: "slb.s1.small", "slb.s2.small", "slb.s2.medium",
         * "slb.s3.small", "slb.s3.medium", "slb.s3.large" and "slb.s4.large".
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead
         * 
         */
        @Deprecated /* Field 'specification' has been deprecated from provider version 1.123.1. New field 'load_balancer_spec' instead */
        public Builder specification(String specification) {
            return specification(Output.of(specification));
        }

        /**
         * @param status The status of slb load balancer. Valid values: `active` and `inactice`. The system default value is `active`.
         * 
         * > **NOTE:** A "Shared-Performance" instance can be changed to "Performance-guaranteed", but the change is irreversible.
         * 
         * > **NOTE:** To change a "Shared-Performance" instance to a "Performance-guaranteed" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.
         * 
         * > **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The status of slb load balancer. Valid values: `active` and `inactice`. The system default value is `active`.
         * 
         * > **NOTE:** A "Shared-Performance" instance can be changed to "Performance-guaranteed", but the change is irreversible.
         * 
         * > **NOTE:** To change a "Shared-Performance" instance to a "Performance-guaranteed" instance, the SLB will have a short probability of business interruption (10 seconds-30 seconds). Advise to change it during the business downturn, or migrate business to other SLB Instances by using GSLB before changing.
         * 
         * > **NOTE:** Currently, the alibaba cloud international account does not support creating a PrePaid SLB instance.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param tags A mapping of tags to assign to the resource. The `tags` can have a maximum of 10 tag for every load balancer instance.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags to assign to the resource. The `tags` can have a maximum of 10 tag for every load balancer instance.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param vswitchId The VSwitch ID to launch in. If `address_type` is internet, it will be ignore.
         * 
         * @return builder
         * 
         */
        public Builder vswitchId(@Nullable Output vswitchId) {
            $.vswitchId = vswitchId;
            return this;
        }

        /**
         * @param vswitchId The VSwitch ID to launch in. If `address_type` is internet, it will be ignore.
         * 
         * @return builder
         * 
         */
        public Builder vswitchId(String vswitchId) {
            return vswitchId(Output.of(vswitchId));
        }

        public LoadBalancerArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy