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

com.pulumi.alicloud.cloudfirewall.InstanceArgs 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.cloudfirewall;

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


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

    public static final InstanceArgs Empty = new InstanceArgs();

    /**
     * The number of multi account. It will be ignored when `cfw_account = false`.
     * 
     */
    @Import(name="accountNumber")
    private @Nullable Output accountNumber;

    /**
     * @return The number of multi account. It will be ignored when `cfw_account = false`.
     * 
     */
    public Optional> accountNumber() {
        return Optional.ofNullable(this.accountNumber);
    }

    /**
     * Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.
     * 
     */
    @Import(name="bandWidth")
    private @Nullable Output bandWidth;

    /**
     * @return Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.
     * 
     */
    public Optional> bandWidth() {
        return Optional.ofNullable(this.bandWidth);
    }

    /**
     * Whether to use multi-account. Valid values: `true`, `false`.
     * 
     */
    @Import(name="cfwAccount")
    private @Nullable Output cfwAccount;

    /**
     * @return Whether to use multi-account. Valid values: `true`, `false`.
     * 
     */
    public Optional> cfwAccount() {
        return Optional.ofNullable(this.cfwAccount);
    }

    /**
     * Whether to use log audit. Valid values: `true`, `false`.
     * 
     */
    @Import(name="cfwLog")
    private @Nullable Output cfwLog;

    /**
     * @return Whether to use log audit. Valid values: `true`, `false`.
     * 
     */
    public Optional> cfwLog() {
        return Optional.ofNullable(this.cfwLog);
    }

    /**
     * The log storage capacity. It will be ignored when `cfw_log = false`.
     * 
     */
    @Import(name="cfwLogStorage")
    private @Nullable Output cfwLogStorage;

    /**
     * @return The log storage capacity. It will be ignored when `cfw_log = false`.
     * 
     */
    public Optional> cfwLogStorage() {
        return Optional.ofNullable(this.cfwLogStorage);
    }

    /**
     * The number of protected VPCs. It will be ignored when `spec = "premium_version"`. Valid values between 2 and 500.
     * 
     */
    @Import(name="fwVpcNumber")
    private @Nullable Output fwVpcNumber;

    /**
     * @return The number of protected VPCs. It will be ignored when `spec = "premium_version"`. Valid values between 2 and 500.
     * 
     */
    public Optional> fwVpcNumber() {
        return Optional.ofNullable(this.fwVpcNumber);
    }

    /**
     * The number of assets.
     * 
     */
    @Import(name="instanceCount")
    private @Nullable Output instanceCount;

    /**
     * @return The number of assets.
     * 
     */
    public Optional> instanceCount() {
        return Optional.ofNullable(this.instanceCount);
    }

    /**
     * The number of public IPs that can be protected. Valid values: 20 to 4000.
     * 
     */
    @Import(name="ipNumber")
    private @Nullable Output ipNumber;

    /**
     * @return The number of public IPs that can be protected. Valid values: 20 to 4000.
     * 
     */
    public Optional> ipNumber() {
        return Optional.ofNullable(this.ipNumber);
    }

    /**
     * The logistics.
     * 
     */
    @Import(name="logistics")
    private @Nullable Output logistics;

    /**
     * @return The logistics.
     * 
     */
    public Optional> logistics() {
        return Optional.ofNullable(this.logistics);
    }

    /**
     * The type of modification. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The `modify_type` is required when you execute an update operation.
     * 
     */
    @Import(name="modifyType")
    private @Nullable Output modifyType;

    /**
     * @return The type of modification. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The `modify_type` is required when you execute an update operation.
     * 
     */
    public Optional> modifyType() {
        return Optional.ofNullable(this.modifyType);
    }

    /**
     * The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, `payment_type` can be set to `PayAsYouGo`.
     * 
     */
    @Import(name="paymentType", required=true)
    private Output paymentType;

    /**
     * @return The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, `payment_type` can be set to `PayAsYouGo`.
     * 
     */
    public Output paymentType() {
        return this.paymentType;
    }

    /**
     * The prepaid period. Valid values: `1`, `3`, `6`, `12`, `24`, `36`. **NOTE:** 1 and 3 available since 1.204.1. If `payment_type` is set to `Subscription`, `period` is required. Otherwise, it will be ignored.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return The prepaid period. Valid values: `1`, `3`, `6`, `12`, `24`, `36`. **NOTE:** 1 and 3 available since 1.204.1. If `payment_type` is set to `Subscription`, `period` is required. Otherwise, it will be ignored.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * Automatic renewal period. Attribute `renew_period` has been deprecated since 1.209.1. Using `renewal_duration` instead.
     * 
     * @deprecated
     * Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead.
     * 
     */
    @Deprecated /* Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead. */
    @Import(name="renewPeriod")
    private @Nullable Output renewPeriod;

    /**
     * @return Automatic renewal period. Attribute `renew_period` has been deprecated since 1.209.1. Using `renewal_duration` instead.
     * 
     * @deprecated
     * Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead.
     * 
     */
    @Deprecated /* Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead. */
    public Optional> renewPeriod() {
        return Optional.ofNullable(this.renewPeriod);
    }

    /**
     * Auto-Renewal Duration. It is required under the condition that `renewal_status` is `AutoRenewal`. Valid values: `1`, `2`, `3`, `6`, `12`.
     * **NOTE:** `renewal_duration` takes effect only if `payment_type` is set to `Subscription`, and `renewal_status` is set to `AutoRenewal`.
     * 
     */
    @Import(name="renewalDuration")
    private @Nullable Output renewalDuration;

    /**
     * @return Auto-Renewal Duration. It is required under the condition that `renewal_status` is `AutoRenewal`. Valid values: `1`, `2`, `3`, `6`, `12`.
     * **NOTE:** `renewal_duration` takes effect only if `payment_type` is set to `Subscription`, and `renewal_status` is set to `AutoRenewal`.
     * 
     */
    public Optional> renewalDuration() {
        return Optional.ofNullable(this.renewalDuration);
    }

    /**
     * Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.
     * 
     */
    @Import(name="renewalDurationUnit")
    private @Nullable Output renewalDurationUnit;

    /**
     * @return Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.
     * 
     */
    public Optional> renewalDurationUnit() {
        return Optional.ofNullable(this.renewalDurationUnit);
    }

    /**
     * Whether to renew an instance automatically or not. Default to "ManualRenewal".
     * - `AutoRenewal`: Auto renewal.
     * - `ManualRenewal`: Manual renewal.
     * - `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.
     *   **NOTE:** `renewal_status` takes effect only if `payment_type` is set to `Subscription`.
     * 
     */
    @Import(name="renewalStatus")
    private @Nullable Output renewalStatus;

    /**
     * @return Whether to renew an instance automatically or not. Default to "ManualRenewal".
     * - `AutoRenewal`: Auto renewal.
     * - `ManualRenewal`: Manual renewal.
     * - `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.
     *   **NOTE:** `renewal_status` takes effect only if `payment_type` is set to `Subscription`.
     * 
     */
    public Optional> renewalStatus() {
        return Optional.ofNullable(this.renewalStatus);
    }

    /**
     * Current version. Valid values: `premium_version`, `enterprise_version`,`ultimate_version`.
     * 
     */
    @Import(name="spec")
    private @Nullable Output spec;

    /**
     * @return Current version. Valid values: `premium_version`, `enterprise_version`,`ultimate_version`.
     * 
     */
    public Optional> spec() {
        return Optional.ofNullable(this.spec);
    }

    private InstanceArgs() {}

    private InstanceArgs(InstanceArgs $) {
        this.accountNumber = $.accountNumber;
        this.bandWidth = $.bandWidth;
        this.cfwAccount = $.cfwAccount;
        this.cfwLog = $.cfwLog;
        this.cfwLogStorage = $.cfwLogStorage;
        this.fwVpcNumber = $.fwVpcNumber;
        this.instanceCount = $.instanceCount;
        this.ipNumber = $.ipNumber;
        this.logistics = $.logistics;
        this.modifyType = $.modifyType;
        this.paymentType = $.paymentType;
        this.period = $.period;
        this.renewPeriod = $.renewPeriod;
        this.renewalDuration = $.renewalDuration;
        this.renewalDurationUnit = $.renewalDurationUnit;
        this.renewalStatus = $.renewalStatus;
        this.spec = $.spec;
    }

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

    public static final class Builder {
        private InstanceArgs $;

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

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

        /**
         * @param accountNumber The number of multi account. It will be ignored when `cfw_account = false`.
         * 
         * @return builder
         * 
         */
        public Builder accountNumber(@Nullable Output accountNumber) {
            $.accountNumber = accountNumber;
            return this;
        }

        /**
         * @param accountNumber The number of multi account. It will be ignored when `cfw_account = false`.
         * 
         * @return builder
         * 
         */
        public Builder accountNumber(Integer accountNumber) {
            return accountNumber(Output.of(accountNumber));
        }

        /**
         * @param bandWidth Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.
         * 
         * @return builder
         * 
         */
        public Builder bandWidth(@Nullable Output bandWidth) {
            $.bandWidth = bandWidth;
            return this;
        }

        /**
         * @param bandWidth Public network processing capability. Valid values: 10 to 15000. Unit: Mbps.
         * 
         * @return builder
         * 
         */
        public Builder bandWidth(Integer bandWidth) {
            return bandWidth(Output.of(bandWidth));
        }

        /**
         * @param cfwAccount Whether to use multi-account. Valid values: `true`, `false`.
         * 
         * @return builder
         * 
         */
        public Builder cfwAccount(@Nullable Output cfwAccount) {
            $.cfwAccount = cfwAccount;
            return this;
        }

        /**
         * @param cfwAccount Whether to use multi-account. Valid values: `true`, `false`.
         * 
         * @return builder
         * 
         */
        public Builder cfwAccount(Boolean cfwAccount) {
            return cfwAccount(Output.of(cfwAccount));
        }

        /**
         * @param cfwLog Whether to use log audit. Valid values: `true`, `false`.
         * 
         * @return builder
         * 
         */
        public Builder cfwLog(@Nullable Output cfwLog) {
            $.cfwLog = cfwLog;
            return this;
        }

        /**
         * @param cfwLog Whether to use log audit. Valid values: `true`, `false`.
         * 
         * @return builder
         * 
         */
        public Builder cfwLog(Boolean cfwLog) {
            return cfwLog(Output.of(cfwLog));
        }

        /**
         * @param cfwLogStorage The log storage capacity. It will be ignored when `cfw_log = false`.
         * 
         * @return builder
         * 
         */
        public Builder cfwLogStorage(@Nullable Output cfwLogStorage) {
            $.cfwLogStorage = cfwLogStorage;
            return this;
        }

        /**
         * @param cfwLogStorage The log storage capacity. It will be ignored when `cfw_log = false`.
         * 
         * @return builder
         * 
         */
        public Builder cfwLogStorage(Integer cfwLogStorage) {
            return cfwLogStorage(Output.of(cfwLogStorage));
        }

        /**
         * @param fwVpcNumber The number of protected VPCs. It will be ignored when `spec = "premium_version"`. Valid values between 2 and 500.
         * 
         * @return builder
         * 
         */
        public Builder fwVpcNumber(@Nullable Output fwVpcNumber) {
            $.fwVpcNumber = fwVpcNumber;
            return this;
        }

        /**
         * @param fwVpcNumber The number of protected VPCs. It will be ignored when `spec = "premium_version"`. Valid values between 2 and 500.
         * 
         * @return builder
         * 
         */
        public Builder fwVpcNumber(Integer fwVpcNumber) {
            return fwVpcNumber(Output.of(fwVpcNumber));
        }

        /**
         * @param instanceCount The number of assets.
         * 
         * @return builder
         * 
         */
        public Builder instanceCount(@Nullable Output instanceCount) {
            $.instanceCount = instanceCount;
            return this;
        }

        /**
         * @param instanceCount The number of assets.
         * 
         * @return builder
         * 
         */
        public Builder instanceCount(Integer instanceCount) {
            return instanceCount(Output.of(instanceCount));
        }

        /**
         * @param ipNumber The number of public IPs that can be protected. Valid values: 20 to 4000.
         * 
         * @return builder
         * 
         */
        public Builder ipNumber(@Nullable Output ipNumber) {
            $.ipNumber = ipNumber;
            return this;
        }

        /**
         * @param ipNumber The number of public IPs that can be protected. Valid values: 20 to 4000.
         * 
         * @return builder
         * 
         */
        public Builder ipNumber(Integer ipNumber) {
            return ipNumber(Output.of(ipNumber));
        }

        /**
         * @param logistics The logistics.
         * 
         * @return builder
         * 
         */
        public Builder logistics(@Nullable Output logistics) {
            $.logistics = logistics;
            return this;
        }

        /**
         * @param logistics The logistics.
         * 
         * @return builder
         * 
         */
        public Builder logistics(String logistics) {
            return logistics(Output.of(logistics));
        }

        /**
         * @param modifyType The type of modification. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The `modify_type` is required when you execute an update operation.
         * 
         * @return builder
         * 
         */
        public Builder modifyType(@Nullable Output modifyType) {
            $.modifyType = modifyType;
            return this;
        }

        /**
         * @param modifyType The type of modification. Valid values: `Upgrade`, `Downgrade`.  **NOTE:** The `modify_type` is required when you execute an update operation.
         * 
         * @return builder
         * 
         */
        public Builder modifyType(String modifyType) {
            return modifyType(Output.of(modifyType));
        }

        /**
         * @param paymentType The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, `payment_type` can be set to `PayAsYouGo`.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(Output paymentType) {
            $.paymentType = paymentType;
            return this;
        }

        /**
         * @param paymentType The payment type of the resource. Valid values: `Subscription`, `PayAsYouGo`. **NOTE:** From version 1.220.0, `payment_type` can be set to `PayAsYouGo`.
         * 
         * @return builder
         * 
         */
        public Builder paymentType(String paymentType) {
            return paymentType(Output.of(paymentType));
        }

        /**
         * @param period The prepaid period. Valid values: `1`, `3`, `6`, `12`, `24`, `36`. **NOTE:** 1 and 3 available since 1.204.1. If `payment_type` is set to `Subscription`, `period` is required. Otherwise, it will be ignored.
         * 
         * @return builder
         * 
         */
        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        /**
         * @param period The prepaid period. Valid values: `1`, `3`, `6`, `12`, `24`, `36`. **NOTE:** 1 and 3 available since 1.204.1. If `payment_type` is set to `Subscription`, `period` is required. Otherwise, it will be ignored.
         * 
         * @return builder
         * 
         */
        public Builder period(Integer period) {
            return period(Output.of(period));
        }

        /**
         * @param renewPeriod Automatic renewal period. Attribute `renew_period` has been deprecated since 1.209.1. Using `renewal_duration` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead.
         * 
         */
        @Deprecated /* Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead. */
        public Builder renewPeriod(@Nullable Output renewPeriod) {
            $.renewPeriod = renewPeriod;
            return this;
        }

        /**
         * @param renewPeriod Automatic renewal period. Attribute `renew_period` has been deprecated since 1.209.1. Using `renewal_duration` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead.
         * 
         */
        @Deprecated /* Attribute 'renew_period' has been deprecated since 1.209.1. Using 'renewal_duration' instead. */
        public Builder renewPeriod(Integer renewPeriod) {
            return renewPeriod(Output.of(renewPeriod));
        }

        /**
         * @param renewalDuration Auto-Renewal Duration. It is required under the condition that `renewal_status` is `AutoRenewal`. Valid values: `1`, `2`, `3`, `6`, `12`.
         * **NOTE:** `renewal_duration` takes effect only if `payment_type` is set to `Subscription`, and `renewal_status` is set to `AutoRenewal`.
         * 
         * @return builder
         * 
         */
        public Builder renewalDuration(@Nullable Output renewalDuration) {
            $.renewalDuration = renewalDuration;
            return this;
        }

        /**
         * @param renewalDuration Auto-Renewal Duration. It is required under the condition that `renewal_status` is `AutoRenewal`. Valid values: `1`, `2`, `3`, `6`, `12`.
         * **NOTE:** `renewal_duration` takes effect only if `payment_type` is set to `Subscription`, and `renewal_status` is set to `AutoRenewal`.
         * 
         * @return builder
         * 
         */
        public Builder renewalDuration(Integer renewalDuration) {
            return renewalDuration(Output.of(renewalDuration));
        }

        /**
         * @param renewalDurationUnit Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.
         * 
         * @return builder
         * 
         */
        public Builder renewalDurationUnit(@Nullable Output renewalDurationUnit) {
            $.renewalDurationUnit = renewalDurationUnit;
            return this;
        }

        /**
         * @param renewalDurationUnit Auto-Renewal Cycle Unit Values Include: Month: Month. Year: Years. Valid values: `Month`, `Year`.
         * 
         * @return builder
         * 
         */
        public Builder renewalDurationUnit(String renewalDurationUnit) {
            return renewalDurationUnit(Output.of(renewalDurationUnit));
        }

        /**
         * @param renewalStatus Whether to renew an instance automatically or not. Default to "ManualRenewal".
         * - `AutoRenewal`: Auto renewal.
         * - `ManualRenewal`: Manual renewal.
         * - `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.
         *   **NOTE:** `renewal_status` takes effect only if `payment_type` is set to `Subscription`.
         * 
         * @return builder
         * 
         */
        public Builder renewalStatus(@Nullable Output renewalStatus) {
            $.renewalStatus = renewalStatus;
            return this;
        }

        /**
         * @param renewalStatus Whether to renew an instance automatically or not. Default to "ManualRenewal".
         * - `AutoRenewal`: Auto renewal.
         * - `ManualRenewal`: Manual renewal.
         * - `NotRenewal`: No renewal any longer. After you specify this value, Alibaba Cloud stop sending notification of instance expiry, and only gives a brief reminder on the third day before the instance expiry.
         *   **NOTE:** `renewal_status` takes effect only if `payment_type` is set to `Subscription`.
         * 
         * @return builder
         * 
         */
        public Builder renewalStatus(String renewalStatus) {
            return renewalStatus(Output.of(renewalStatus));
        }

        /**
         * @param spec Current version. Valid values: `premium_version`, `enterprise_version`,`ultimate_version`.
         * 
         * @return builder
         * 
         */
        public Builder spec(@Nullable Output spec) {
            $.spec = spec;
            return this;
        }

        /**
         * @param spec Current version. Valid values: `premium_version`, `enterprise_version`,`ultimate_version`.
         * 
         * @return builder
         * 
         */
        public Builder spec(String spec) {
            return spec(Output.of(spec));
        }

        public InstanceArgs build() {
            if ($.paymentType == null) {
                throw new MissingRequiredPropertyException("InstanceArgs", "paymentType");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy