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

com.pulumi.alicloud.ecs.EipAddressArgs 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.ecs;

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


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

    public static final EipAddressArgs Empty = new EipAddressArgs();

    /**
     * The promotion code. This parameter is not required.
     * 
     */
    @Import(name="activityId")
    private @Nullable Output activityId;

    /**
     * @return The promotion code. This parameter is not required.
     * 
     */
    public Optional> activityId() {
        return Optional.ofNullable(this.activityId);
    }

    /**
     * The EIP name.
     * 
     * The name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-).
     * 
     * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
     * 
     */
    @Import(name="addressName")
    private @Nullable Output addressName;

    /**
     * @return The EIP name.
     * 
     * The name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-).
     * 
     * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
     * 
     */
    public Optional> addressName() {
        return Optional.ofNullable(this.addressName);
    }

    /**
     * The ID of the EIP instance.
     * 
     */
    @Import(name="allocationId")
    private @Nullable Output allocationId;

    /**
     * @return The ID of the EIP instance.
     * 
     */
    public Optional> allocationId() {
        return Optional.ofNullable(this.allocationId);
    }

    /**
     * Specifies whether to enable automatic payment. Valid values:
     * 
     */
    @Import(name="autoPay")
    private @Nullable Output autoPay;

    /**
     * @return Specifies whether to enable automatic payment. Valid values:
     * 
     */
    public Optional> autoPay() {
        return Optional.ofNullable(this.autoPay);
    }

    /**
     * The maximum bandwidth of the specified EIP. Unit: Mbit/s.
     * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByBandwidth`, valid values for `bandwidth` are `1` to `500`.
     * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByTraffic`, valid values for `bandwidth` are `1` to `200`.
     * - When `payment_type` is set to `Subscription`, valid values for `bandwidth` are `1` to `1000`.
     * 
     * Default value: `5` Mbit /s.
     * 
     */
    @Import(name="bandwidth")
    private @Nullable Output bandwidth;

    /**
     * @return The maximum bandwidth of the specified EIP. Unit: Mbit/s.
     * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByBandwidth`, valid values for `bandwidth` are `1` to `500`.
     * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByTraffic`, valid values for `bandwidth` are `1` to `200`.
     * - When `payment_type` is set to `Subscription`, valid values for `bandwidth` are `1` to `1000`.
     * 
     * Default value: `5` Mbit /s.
     * 
     */
    public Optional> bandwidth() {
        return Optional.ofNullable(this.bandwidth);
    }

    /**
     * Specifies whether to enable deletion protection. Valid values:
     * 
     */
    @Import(name="deletionProtection")
    private @Nullable Output deletionProtection;

    /**
     * @return Specifies whether to enable deletion protection. Valid values:
     * 
     */
    public Optional> deletionProtection() {
        return Optional.ofNullable(this.deletionProtection);
    }

    /**
     * The description of the EIP.
     * 
     * The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.
     * 
     * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the EIP.
     * 
     * The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.
     * 
     * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The status of fine-grained monitoring. Valid values:
     * - `ON`
     * - `OFF`
     * 
     */
    @Import(name="highDefinitionMonitorLogStatus")
    private @Nullable Output highDefinitionMonitorLogStatus;

    /**
     * @return The status of fine-grained monitoring. Valid values:
     * - `ON`
     * - `OFF`
     * 
     */
    public Optional> highDefinitionMonitorLogStatus() {
        return Optional.ofNullable(this.highDefinitionMonitorLogStatus);
    }

    /**
     * . Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.
     * 
     * @deprecated
     * Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.
     * 
     */
    @Deprecated /* Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead. */
    @Import(name="instanceChargeType")
    private @Nullable Output instanceChargeType;

    /**
     * @return . Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.
     * 
     * @deprecated
     * Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.
     * 
     */
    @Deprecated /* Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead. */
    public Optional> instanceChargeType() {
        return Optional.ofNullable(this.instanceChargeType);
    }

    /**
     * The metering method of the EIP. Valid values:
     * - `PayByBandwidth` (default): pay-by-bandwidth.
     * - `PayByTraffic`: pay-by-data-transfer.
     * 
     * When `payment_type` is set to `Subscription`, you must set `internet_charge_type` to `PayByBandwidth`.
     * 
     * When `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
     * 
     */
    @Import(name="internetChargeType")
    private @Nullable Output internetChargeType;

    /**
     * @return The metering method of the EIP. Valid values:
     * - `PayByBandwidth` (default): pay-by-bandwidth.
     * - `PayByTraffic`: pay-by-data-transfer.
     * 
     * When `payment_type` is set to `Subscription`, you must set `internet_charge_type` to `PayByBandwidth`.
     * 
     * When `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
     * 
     */
    public Optional> internetChargeType() {
        return Optional.ofNullable(this.internetChargeType);
    }

    /**
     * The IP address of the EIP. Supports a maximum of 50 EIPs.
     * 
     */
    @Import(name="ipAddress")
    private @Nullable Output ipAddress;

    /**
     * @return The IP address of the EIP. Supports a maximum of 50 EIPs.
     * 
     */
    public Optional> ipAddress() {
        return Optional.ofNullable(this.ipAddress);
    }

    /**
     * The line type. Valid values:
     * - `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.
     * - `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.
     * 
     * For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)
     * 
     * If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:
     * - `ChinaTelecom`
     * - `ChinaUnicom`
     * - `ChinaMobile`
     * - `ChinaTelecom_L2`
     * - `ChinaUnicom_L2`
     * - `ChinaMobile_L2`
     * 
     * If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.
     * 
     */
    @Import(name="isp")
    private @Nullable Output isp;

    /**
     * @return The line type. Valid values:
     * - `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.
     * - `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.
     * 
     * For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)
     * 
     * If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:
     * - `ChinaTelecom`
     * - `ChinaUnicom`
     * - `ChinaMobile`
     * - `ChinaTelecom_L2`
     * - `ChinaUnicom_L2`
     * - `ChinaMobile_L2`
     * 
     * If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.
     * 
     */
    public Optional> isp() {
        return Optional.ofNullable(this.isp);
    }

    /**
     * The name of the Simple Log Service (SLS) project.
     * 
     */
    @Import(name="logProject")
    private @Nullable Output logProject;

    /**
     * @return The name of the Simple Log Service (SLS) project.
     * 
     */
    public Optional> logProject() {
        return Optional.ofNullable(this.logProject);
    }

    /**
     * The name of the Logstore.
     * 
     */
    @Import(name="logStore")
    private @Nullable Output logStore;

    /**
     * @return The name of the Logstore.
     * 
     */
    public Optional> logStore() {
        return Optional.ofNullable(this.logStore);
    }

    /**
     * The association mode. Valid values:
     * - `NAT` (default): NAT mode
     * - `MULTI_BINDED`: multi-EIP-to-ENI mode
     * - `BINDED`: cut-network interface controller mode
     * 
     */
    @Import(name="mode")
    private @Nullable Output mode;

    /**
     * @return The association mode. Valid values:
     * - `NAT` (default): NAT mode
     * - `MULTI_BINDED`: multi-EIP-to-ENI mode
     * - `BINDED`: cut-network interface controller mode
     * 
     */
    public Optional> mode() {
        return Optional.ofNullable(this.mode);
    }

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

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

    /**
     * The network type. By default, this value is set to `public`, which specifies the public network type.
     * 
     */
    @Import(name="netmode")
    private @Nullable Output netmode;

    /**
     * @return The network type. By default, this value is set to `public`, which specifies the public network type.
     * 
     */
    public Optional> netmode() {
        return Optional.ofNullable(this.netmode);
    }

    /**
     * The billing method of the EIP. Valid values:
     * - `Subscription`: subscription
     * - `PayAsYouGo` (default): pay-as-you-go
     * 
     * If `payment_type` is set to `Subscription`, set `internet_charge_type` to `PayByBandwidth`. If `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
     * 
     */
    @Import(name="paymentType")
    private @Nullable Output paymentType;

    /**
     * @return The billing method of the EIP. Valid values:
     * - `Subscription`: subscription
     * - `PayAsYouGo` (default): pay-as-you-go
     * 
     * If `payment_type` is set to `Subscription`, set `internet_charge_type` to `PayByBandwidth`. If `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
     * 
     */
    public Optional> paymentType() {
        return Optional.ofNullable(this.paymentType);
    }

    /**
     * Duration of purchase. When the value of `pricing_cycle` is `Month`, the value range of `period` is `1` to `9`. When the value of `pricing_cycle` is `Year`, the value range of `period` is `1` to `5`. If the value of the `payment_type` parameter is `Subscription`, this parameter is required. If the value of the `payment_type` parameter is `PayAsYouGo`, this parameter is left blank.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return Duration of purchase. When the value of `pricing_cycle` is `Month`, the value range of `period` is `1` to `9`. When the value of `pricing_cycle` is `Year`, the value range of `period` is `1` to `5`. If the value of the `payment_type` parameter is `Subscription`, this parameter is required. If the value of the `payment_type` parameter is `PayAsYouGo`, this parameter is left blank.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * The billing cycle of the subscription EIP. Valid values:
     * - `Month` (default)
     * - `Year`
     * 
     * If `payment_type` is set to `Subscription`, this parameter is required. If `payment_type` is set to `PayAsYouGo`, this parameter is not required.
     * 
     */
    @Import(name="pricingCycle")
    private @Nullable Output pricingCycle;

    /**
     * @return The billing cycle of the subscription EIP. Valid values:
     * - `Month` (default)
     * - `Year`
     * 
     * If `payment_type` is set to `Subscription`, this parameter is required. If `payment_type` is set to `PayAsYouGo`, this parameter is not required.
     * 
     */
    public Optional> pricingCycle() {
        return Optional.ofNullable(this.pricingCycle);
    }

    /**
     * The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the "Request a quota increase in the Quota Center console" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).
     * 
     */
    @Import(name="publicIpAddressPoolId")
    private @Nullable Output publicIpAddressPoolId;

    /**
     * @return The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the "Request a quota increase in the Quota Center console" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).
     * 
     */
    public Optional> publicIpAddressPoolId() {
        return Optional.ofNullable(this.publicIpAddressPoolId);
    }

    /**
     * The ID of the resource group to which you want to move the resource.
     * 
     * > **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)
     * 
     */
    @Import(name="resourceGroupId")
    private @Nullable Output resourceGroupId;

    /**
     * @return The ID of the resource group to which you want to move the resource.
     * 
     * > **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)
     * 
     */
    public Optional> resourceGroupId() {
        return Optional.ofNullable(this.resourceGroupId);
    }

    /**
     * Security protection level.
     * - When the return is empty, the basic DDoS protection is specified.
     * - When `antidos_enhanced` is returned, it indicates DDoS protection (enhanced version).
     * 
     */
    @Import(name="securityProtectionTypes")
    private @Nullable Output> securityProtectionTypes;

    /**
     * @return Security protection level.
     * - When the return is empty, the basic DDoS protection is specified.
     * - When `antidos_enhanced` is returned, it indicates DDoS protection (enhanced version).
     * 
     */
    public Optional>> securityProtectionTypes() {
        return Optional.ofNullable(this.securityProtectionTypes);
    }

    /**
     * The tag of the resource
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return The tag of the resource
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html).
     * 
     * The following arguments will be discarded. Please use new fields as soon as possible:
     * 
     */
    @Import(name="zone")
    private @Nullable Output zone;

    /**
     * @return The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html).
     * 
     * The following arguments will be discarded. Please use new fields as soon as possible:
     * 
     */
    public Optional> zone() {
        return Optional.ofNullable(this.zone);
    }

    private EipAddressArgs() {}

    private EipAddressArgs(EipAddressArgs $) {
        this.activityId = $.activityId;
        this.addressName = $.addressName;
        this.allocationId = $.allocationId;
        this.autoPay = $.autoPay;
        this.bandwidth = $.bandwidth;
        this.deletionProtection = $.deletionProtection;
        this.description = $.description;
        this.highDefinitionMonitorLogStatus = $.highDefinitionMonitorLogStatus;
        this.instanceChargeType = $.instanceChargeType;
        this.internetChargeType = $.internetChargeType;
        this.ipAddress = $.ipAddress;
        this.isp = $.isp;
        this.logProject = $.logProject;
        this.logStore = $.logStore;
        this.mode = $.mode;
        this.name = $.name;
        this.netmode = $.netmode;
        this.paymentType = $.paymentType;
        this.period = $.period;
        this.pricingCycle = $.pricingCycle;
        this.publicIpAddressPoolId = $.publicIpAddressPoolId;
        this.resourceGroupId = $.resourceGroupId;
        this.securityProtectionTypes = $.securityProtectionTypes;
        this.tags = $.tags;
        this.zone = $.zone;
    }

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

    public static final class Builder {
        private EipAddressArgs $;

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

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

        /**
         * @param activityId The promotion code. This parameter is not required.
         * 
         * @return builder
         * 
         */
        public Builder activityId(@Nullable Output activityId) {
            $.activityId = activityId;
            return this;
        }

        /**
         * @param activityId The promotion code. This parameter is not required.
         * 
         * @return builder
         * 
         */
        public Builder activityId(String activityId) {
            return activityId(Output.of(activityId));
        }

        /**
         * @param addressName The EIP name.
         * 
         * The name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-).
         * 
         * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
         * 
         * @return builder
         * 
         */
        public Builder addressName(@Nullable Output addressName) {
            $.addressName = addressName;
            return this;
        }

        /**
         * @param addressName The EIP name.
         * 
         * The name must be 1 to 128 characters in length and start with a letter, and can contain letters, digits, periods (.), underscores (\_), and hyphens (-).
         * 
         * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
         * 
         * @return builder
         * 
         */
        public Builder addressName(String addressName) {
            return addressName(Output.of(addressName));
        }

        /**
         * @param allocationId The ID of the EIP instance.
         * 
         * @return builder
         * 
         */
        public Builder allocationId(@Nullable Output allocationId) {
            $.allocationId = allocationId;
            return this;
        }

        /**
         * @param allocationId The ID of the EIP instance.
         * 
         * @return builder
         * 
         */
        public Builder allocationId(String allocationId) {
            return allocationId(Output.of(allocationId));
        }

        /**
         * @param autoPay Specifies whether to enable automatic payment. Valid values:
         * 
         * @return builder
         * 
         */
        public Builder autoPay(@Nullable Output autoPay) {
            $.autoPay = autoPay;
            return this;
        }

        /**
         * @param autoPay Specifies whether to enable automatic payment. Valid values:
         * 
         * @return builder
         * 
         */
        public Builder autoPay(Boolean autoPay) {
            return autoPay(Output.of(autoPay));
        }

        /**
         * @param bandwidth The maximum bandwidth of the specified EIP. Unit: Mbit/s.
         * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByBandwidth`, valid values for `bandwidth` are `1` to `500`.
         * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByTraffic`, valid values for `bandwidth` are `1` to `200`.
         * - When `payment_type` is set to `Subscription`, valid values for `bandwidth` are `1` to `1000`.
         * 
         * Default value: `5` Mbit /s.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(@Nullable Output bandwidth) {
            $.bandwidth = bandwidth;
            return this;
        }

        /**
         * @param bandwidth The maximum bandwidth of the specified EIP. Unit: Mbit/s.
         * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByBandwidth`, valid values for `bandwidth` are `1` to `500`.
         * - When `payment_type` is set to `PayAsYouGo` and `internet_charge_type` is set to `PayByTraffic`, valid values for `bandwidth` are `1` to `200`.
         * - When `payment_type` is set to `Subscription`, valid values for `bandwidth` are `1` to `1000`.
         * 
         * Default value: `5` Mbit /s.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(String bandwidth) {
            return bandwidth(Output.of(bandwidth));
        }

        /**
         * @param deletionProtection Specifies whether to enable deletion protection. Valid values:
         * 
         * @return builder
         * 
         */
        public Builder deletionProtection(@Nullable Output deletionProtection) {
            $.deletionProtection = deletionProtection;
            return this;
        }

        /**
         * @param deletionProtection Specifies whether to enable deletion protection. Valid values:
         * 
         * @return builder
         * 
         */
        public Builder deletionProtection(Boolean deletionProtection) {
            return deletionProtection(Output.of(deletionProtection));
        }

        /**
         * @param description The description of the EIP.
         * 
         * The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.
         * 
         * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of the EIP.
         * 
         * The description must be 2 to 256 characters in length. The description must start with a letter but cannot start with `http://` or `https://`.
         * 
         * > **NOTE:**   You cannot specify this parameter if you create a subscription EIP.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param highDefinitionMonitorLogStatus The status of fine-grained monitoring. Valid values:
         * - `ON`
         * - `OFF`
         * 
         * @return builder
         * 
         */
        public Builder highDefinitionMonitorLogStatus(@Nullable Output highDefinitionMonitorLogStatus) {
            $.highDefinitionMonitorLogStatus = highDefinitionMonitorLogStatus;
            return this;
        }

        /**
         * @param highDefinitionMonitorLogStatus The status of fine-grained monitoring. Valid values:
         * - `ON`
         * - `OFF`
         * 
         * @return builder
         * 
         */
        public Builder highDefinitionMonitorLogStatus(String highDefinitionMonitorLogStatus) {
            return highDefinitionMonitorLogStatus(Output.of(highDefinitionMonitorLogStatus));
        }

        /**
         * @param instanceChargeType . Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.
         * 
         */
        @Deprecated /* Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead. */
        public Builder instanceChargeType(@Nullable Output instanceChargeType) {
            $.instanceChargeType = instanceChargeType;
            return this;
        }

        /**
         * @param instanceChargeType . Field 'instance_charge_type' has been deprecated from provider version 1.126.0. New field 'payment_type' instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead.
         * 
         */
        @Deprecated /* Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field 'payment_type' instead. */
        public Builder instanceChargeType(String instanceChargeType) {
            return instanceChargeType(Output.of(instanceChargeType));
        }

        /**
         * @param internetChargeType The metering method of the EIP. Valid values:
         * - `PayByBandwidth` (default): pay-by-bandwidth.
         * - `PayByTraffic`: pay-by-data-transfer.
         * 
         * When `payment_type` is set to `Subscription`, you must set `internet_charge_type` to `PayByBandwidth`.
         * 
         * When `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
         * 
         * @return builder
         * 
         */
        public Builder internetChargeType(@Nullable Output internetChargeType) {
            $.internetChargeType = internetChargeType;
            return this;
        }

        /**
         * @param internetChargeType The metering method of the EIP. Valid values:
         * - `PayByBandwidth` (default): pay-by-bandwidth.
         * - `PayByTraffic`: pay-by-data-transfer.
         * 
         * When `payment_type` is set to `Subscription`, you must set `internet_charge_type` to `PayByBandwidth`.
         * 
         * When `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
         * 
         * @return builder
         * 
         */
        public Builder internetChargeType(String internetChargeType) {
            return internetChargeType(Output.of(internetChargeType));
        }

        /**
         * @param ipAddress The IP address of the EIP. Supports a maximum of 50 EIPs.
         * 
         * @return builder
         * 
         */
        public Builder ipAddress(@Nullable Output ipAddress) {
            $.ipAddress = ipAddress;
            return this;
        }

        /**
         * @param ipAddress The IP address of the EIP. Supports a maximum of 50 EIPs.
         * 
         * @return builder
         * 
         */
        public Builder ipAddress(String ipAddress) {
            return ipAddress(Output.of(ipAddress));
        }

        /**
         * @param isp The line type. Valid values:
         * - `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.
         * - `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.
         * 
         * For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)
         * 
         * If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:
         * - `ChinaTelecom`
         * - `ChinaUnicom`
         * - `ChinaMobile`
         * - `ChinaTelecom_L2`
         * - `ChinaUnicom_L2`
         * - `ChinaMobile_L2`
         * 
         * If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.
         * 
         * @return builder
         * 
         */
        public Builder isp(@Nullable Output isp) {
            $.isp = isp;
            return this;
        }

        /**
         * @param isp The line type. Valid values:
         * - `BGP` (default): BGP (Multi-ISP) line The BGP (Multi-ISP) line is supported in all regions.
         * - `BGP_PRO`: BGP (Multi-ISP) Pro line The BGP (Multi-ISP) Pro line is supported in the China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Philippines (Manila), Indonesia (Jakarta), and Thailand (Bangkok) regions.
         * 
         * For more information about the BGP (Multi-ISP) line and BGP (Multi-ISP) Pro line, see the "Line types" section of [What is EIP?](https://www.alibabacloud.com/help/en/doc-detail/32321.html)
         * 
         * If you are allowed to use single-ISP bandwidth, you can also choose one of the following values:
         * - `ChinaTelecom`
         * - `ChinaUnicom`
         * - `ChinaMobile`
         * - `ChinaTelecom_L2`
         * - `ChinaUnicom_L2`
         * - `ChinaMobile_L2`
         * 
         * If your services are deployed in China East 1 Finance, this parameter is required and you must set the parameter to `BGP_FinanceCloud`.
         * 
         * @return builder
         * 
         */
        public Builder isp(String isp) {
            return isp(Output.of(isp));
        }

        /**
         * @param logProject The name of the Simple Log Service (SLS) project.
         * 
         * @return builder
         * 
         */
        public Builder logProject(@Nullable Output logProject) {
            $.logProject = logProject;
            return this;
        }

        /**
         * @param logProject The name of the Simple Log Service (SLS) project.
         * 
         * @return builder
         * 
         */
        public Builder logProject(String logProject) {
            return logProject(Output.of(logProject));
        }

        /**
         * @param logStore The name of the Logstore.
         * 
         * @return builder
         * 
         */
        public Builder logStore(@Nullable Output logStore) {
            $.logStore = logStore;
            return this;
        }

        /**
         * @param logStore The name of the Logstore.
         * 
         * @return builder
         * 
         */
        public Builder logStore(String logStore) {
            return logStore(Output.of(logStore));
        }

        /**
         * @param mode The association mode. Valid values:
         * - `NAT` (default): NAT mode
         * - `MULTI_BINDED`: multi-EIP-to-ENI mode
         * - `BINDED`: cut-network interface controller mode
         * 
         * @return builder
         * 
         */
        public Builder mode(@Nullable Output mode) {
            $.mode = mode;
            return this;
        }

        /**
         * @param mode The association mode. Valid values:
         * - `NAT` (default): NAT mode
         * - `MULTI_BINDED`: multi-EIP-to-ENI mode
         * - `BINDED`: cut-network interface controller mode
         * 
         * @return builder
         * 
         */
        public Builder mode(String mode) {
            return mode(Output.of(mode));
        }

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

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

        /**
         * @param netmode The network type. By default, this value is set to `public`, which specifies the public network type.
         * 
         * @return builder
         * 
         */
        public Builder netmode(@Nullable Output netmode) {
            $.netmode = netmode;
            return this;
        }

        /**
         * @param netmode The network type. By default, this value is set to `public`, which specifies the public network type.
         * 
         * @return builder
         * 
         */
        public Builder netmode(String netmode) {
            return netmode(Output.of(netmode));
        }

        /**
         * @param paymentType The billing method of the EIP. Valid values:
         * - `Subscription`: subscription
         * - `PayAsYouGo` (default): pay-as-you-go
         * 
         * If `payment_type` is set to `Subscription`, set `internet_charge_type` to `PayByBandwidth`. If `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(@Nullable Output paymentType) {
            $.paymentType = paymentType;
            return this;
        }

        /**
         * @param paymentType The billing method of the EIP. Valid values:
         * - `Subscription`: subscription
         * - `PayAsYouGo` (default): pay-as-you-go
         * 
         * If `payment_type` is set to `Subscription`, set `internet_charge_type` to `PayByBandwidth`. If `payment_type` is set to `PayAsYouGo`, set `internet_charge_type` to `PayByBandwidth` or `PayByTraffic`.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(String paymentType) {
            return paymentType(Output.of(paymentType));
        }

        /**
         * @param period Duration of purchase. When the value of `pricing_cycle` is `Month`, the value range of `period` is `1` to `9`. When the value of `pricing_cycle` is `Year`, the value range of `period` is `1` to `5`. If the value of the `payment_type` parameter is `Subscription`, this parameter is required. If the value of the `payment_type` parameter is `PayAsYouGo`, this parameter is left blank.
         * 
         * @return builder
         * 
         */
        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        /**
         * @param period Duration of purchase. When the value of `pricing_cycle` is `Month`, the value range of `period` is `1` to `9`. When the value of `pricing_cycle` is `Year`, the value range of `period` is `1` to `5`. If the value of the `payment_type` parameter is `Subscription`, this parameter is required. If the value of the `payment_type` parameter is `PayAsYouGo`, this parameter is left blank.
         * 
         * @return builder
         * 
         */
        public Builder period(Integer period) {
            return period(Output.of(period));
        }

        /**
         * @param pricingCycle The billing cycle of the subscription EIP. Valid values:
         * - `Month` (default)
         * - `Year`
         * 
         * If `payment_type` is set to `Subscription`, this parameter is required. If `payment_type` is set to `PayAsYouGo`, this parameter is not required.
         * 
         * @return builder
         * 
         */
        public Builder pricingCycle(@Nullable Output pricingCycle) {
            $.pricingCycle = pricingCycle;
            return this;
        }

        /**
         * @param pricingCycle The billing cycle of the subscription EIP. Valid values:
         * - `Month` (default)
         * - `Year`
         * 
         * If `payment_type` is set to `Subscription`, this parameter is required. If `payment_type` is set to `PayAsYouGo`, this parameter is not required.
         * 
         * @return builder
         * 
         */
        public Builder pricingCycle(String pricingCycle) {
            return pricingCycle(Output.of(pricingCycle));
        }

        /**
         * @param publicIpAddressPoolId The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the "Request a quota increase in the Quota Center console" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).
         * 
         * @return builder
         * 
         */
        public Builder publicIpAddressPoolId(@Nullable Output publicIpAddressPoolId) {
            $.publicIpAddressPoolId = publicIpAddressPoolId;
            return this;
        }

        /**
         * @param publicIpAddressPoolId The ID of the IP address pool. The EIP is allocated from the IP address pool. By default, the IP address pool feature is unavailable. To use the IP address pool, apply for the privilege in the Quota Center console. For more information, see the "Request a quota increase in the Quota Center console" section in [Manage EIP quotas](https://www.alibabacloud.com/help/en/doc-detail/108213.html).
         * 
         * @return builder
         * 
         */
        public Builder publicIpAddressPoolId(String publicIpAddressPoolId) {
            return publicIpAddressPoolId(Output.of(publicIpAddressPoolId));
        }

        /**
         * @param resourceGroupId The ID of the resource group to which you want to move the resource.
         * 
         * > **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(@Nullable Output resourceGroupId) {
            $.resourceGroupId = resourceGroupId;
            return this;
        }

        /**
         * @param resourceGroupId The ID of the resource group to which you want to move the resource.
         * 
         * > **NOTE:**   You can use resource groups to facilitate resource grouping and permission management for an Alibaba Cloud. For more information, see [What is resource management?](https://www.alibabacloud.com/help/en/doc-detail/94475.html)
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(String resourceGroupId) {
            return resourceGroupId(Output.of(resourceGroupId));
        }

        /**
         * @param securityProtectionTypes Security protection level.
         * - When the return is empty, the basic DDoS protection is specified.
         * - When `antidos_enhanced` is returned, it indicates DDoS protection (enhanced version).
         * 
         * @return builder
         * 
         */
        public Builder securityProtectionTypes(@Nullable Output> securityProtectionTypes) {
            $.securityProtectionTypes = securityProtectionTypes;
            return this;
        }

        /**
         * @param securityProtectionTypes Security protection level.
         * - When the return is empty, the basic DDoS protection is specified.
         * - When `antidos_enhanced` is returned, it indicates DDoS protection (enhanced version).
         * 
         * @return builder
         * 
         */
        public Builder securityProtectionTypes(List securityProtectionTypes) {
            return securityProtectionTypes(Output.of(securityProtectionTypes));
        }

        /**
         * @param securityProtectionTypes Security protection level.
         * - When the return is empty, the basic DDoS protection is specified.
         * - When `antidos_enhanced` is returned, it indicates DDoS protection (enhanced version).
         * 
         * @return builder
         * 
         */
        public Builder securityProtectionTypes(String... securityProtectionTypes) {
            return securityProtectionTypes(List.of(securityProtectionTypes));
        }

        /**
         * @param tags The tag of the resource
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags The tag of the resource
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param zone The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html).
         * 
         * The following arguments will be discarded. Please use new fields as soon as possible:
         * 
         * @return builder
         * 
         */
        public Builder zone(@Nullable Output zone) {
            $.zone = zone;
            return this;
        }

        /**
         * @param zone The zone of the EIP. When the service type of the IP address pool specified by `PublicIpAddressPoolId` is CloudBox, the default value is the zone of the IP address pool. For more information, see [ListPublicIpAddressPools](https://www.alibabacloud.com/help/en/doc-detail/429433.html).
         * 
         * The following arguments will be discarded. Please use new fields as soon as possible:
         * 
         * @return builder
         * 
         */
        public Builder zone(String zone) {
            return zone(Output.of(zone));
        }

        public EipAddressArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy