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

com.pulumi.alicloud.ocean.inputs.BaseInstanceState 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.ocean.inputs;

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.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final BaseInstanceState Empty = new BaseInstanceState();

    /**
     * Whether to automatically renew.
     * It takes effect when the parameter ChargeType is PrePaid. Value range:
     * - true: automatic renewal.
     * - false (default): no automatic renewal.
     * 
     */
    @Import(name="autoRenew")
    private @Nullable Output autoRenew;

    /**
     * @return Whether to automatically renew.
     * It takes effect when the parameter ChargeType is PrePaid. Value range:
     * - true: automatic renewal.
     * - false (default): no automatic renewal.
     * 
     */
    public Optional> autoRenew() {
        return Optional.ofNullable(this.autoRenew);
    }

    /**
     * The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.
     * - PeriodUnit is Week, AutoRenewPeriod is {"1", "2", "3"}.
     * - PeriodUnit is Month, AutoRenewPeriod is {"1", "2", "3", "6", "12"}.
     * 
     */
    @Import(name="autoRenewPeriod")
    private @Nullable Output autoRenewPeriod;

    /**
     * @return The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.
     * - PeriodUnit is Week, AutoRenewPeriod is {"1", "2", "3"}.
     * - PeriodUnit is Month, AutoRenewPeriod is {"1", "2", "3", "6", "12"}.
     * 
     */
    public Optional> autoRenewPeriod() {
        return Optional.ofNullable(this.autoRenewPeriod);
    }

    /**
     * The backup retention policy after the cluster is deleted. The values are as follows:
     * - receive_all: Keep all backup sets;
     * - delete_all: delete all backup sets;
     * - receive_last: Keep the last backup set.
     * > **NOTE:**   The default value is delete_all.
     * 
     */
    @Import(name="backupRetainMode")
    private @Nullable Output backupRetainMode;

    /**
     * @return The backup retention policy after the cluster is deleted. The values are as follows:
     * - receive_all: Keep all backup sets;
     * - delete_all: delete all backup sets;
     * - receive_last: Keep the last backup set.
     * > **NOTE:**   The default value is delete_all.
     * 
     */
    public Optional> backupRetainMode() {
        return Optional.ofNullable(this.backupRetainMode);
    }

    /**
     * The product code of the OceanBase cluster._oceanbasepre_public_cn: Domestic station cloud database package Year-to-month package._oceanbasepost_public_cn: The domestic station cloud database is paid by the hour._obpre_public_intl: International Station Cloud Database Package Monthly Package.
     * 
     */
    @Import(name="commodityCode")
    private @Nullable Output commodityCode;

    /**
     * @return The product code of the OceanBase cluster._oceanbasepre_public_cn: Domestic station cloud database package Year-to-month package._oceanbasepost_public_cn: The domestic station cloud database is paid by the hour._obpre_public_intl: International Station Cloud Database Package Monthly Package.
     * 
     */
    public Optional> commodityCode() {
        return Optional.ofNullable(this.commodityCode);
    }

    /**
     * The number of CPU cores of the cluster.
     * 
     */
    @Import(name="cpu")
    private @Nullable Output cpu;

    /**
     * @return The number of CPU cores of the cluster.
     * 
     */
    public Optional> cpu() {
        return Optional.ofNullable(this.cpu);
    }

    /**
     * The creation time of the resource.
     * 
     */
    @Import(name="createTime")
    private @Nullable Output createTime;

    /**
     * @return The creation time of the resource.
     * 
     */
    public Optional> createTime() {
        return Optional.ofNullable(this.createTime);
    }

    /**
     * The size of the storage space, in GB.
     * The limits of storage space vary according to the cluster specifications, as follows:
     * - 8C32GB:100GB ~ 10000GB
     * - 14C70GB:200GB ~ 10000GB
     * - 30C180GB:400GB ~ 10000GB
     * - 62C400G:800GB ~ 10000GB.
     *   The default value of each package is its minimum value.
     * 
     */
    @Import(name="diskSize")
    private @Nullable Output diskSize;

    /**
     * @return The size of the storage space, in GB.
     * The limits of storage space vary according to the cluster specifications, as follows:
     * - 8C32GB:100GB ~ 10000GB
     * - 14C70GB:200GB ~ 10000GB
     * - 30C180GB:400GB ~ 10000GB
     * - 62C400G:800GB ~ 10000GB.
     *   The default value of each package is its minimum value.
     * 
     */
    public Optional> diskSize() {
        return Optional.ofNullable(this.diskSize);
    }

    /**
     * The storage type of the cluster. Effective only in the standard cluster version (cloud disk).
     * Two types are currently supported:
     * - cloud_essd_pl1: cloud disk ESSD pl1.
     * - cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.
     * 
     */
    @Import(name="diskType")
    private @Nullable Output diskType;

    /**
     * @return The storage type of the cluster. Effective only in the standard cluster version (cloud disk).
     * Two types are currently supported:
     * - cloud_essd_pl1: cloud disk ESSD pl1.
     * - cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.
     * 
     */
    public Optional> diskType() {
        return Optional.ofNullable(this.diskType);
    }

    /**
     * Cluster specification information.
     * Four packages are currently supported:
     * - 4C16GB:4cores 16GB
     * - 8C32GB:8cores 32GB
     * - 14C70GB:14cores 70GB
     * - 24C120GB:24cores 120GB
     * - 30C180GB:30cores 180GB
     * - 62C400GB:62cores 400GB
     * - 104C600GB:104cores 600GB
     * - 16C70GB:16cores 70GB
     * - 32C160GB:32cores 160GB
     * - 64C380GB:64cores 380GB
     * - 20C32GB:20cores 32GB
     * - 40C64GB:40cores 64GB
     * - 16C32GB:16cores 32GB
     * - 32C70GB:32cores 70GB
     * - 64C180GB:64cores 180GB
     * - 32C180GB:32cores 180GB
     * - 64C400GB:64cores 400GB.
     * 
     */
    @Import(name="instanceClass")
    private @Nullable Output instanceClass;

    /**
     * @return Cluster specification information.
     * Four packages are currently supported:
     * - 4C16GB:4cores 16GB
     * - 8C32GB:8cores 32GB
     * - 14C70GB:14cores 70GB
     * - 24C120GB:24cores 120GB
     * - 30C180GB:30cores 180GB
     * - 62C400GB:62cores 400GB
     * - 104C600GB:104cores 600GB
     * - 16C70GB:16cores 70GB
     * - 32C160GB:32cores 160GB
     * - 64C380GB:64cores 380GB
     * - 20C32GB:20cores 32GB
     * - 40C64GB:40cores 64GB
     * - 16C32GB:16cores 32GB
     * - 32C70GB:32cores 70GB
     * - 64C180GB:64cores 180GB
     * - 32C180GB:32cores 180GB
     * - 64C400GB:64cores 400GB.
     * 
     */
    public Optional> instanceClass() {
        return Optional.ofNullable(this.instanceClass);
    }

    /**
     * OceanBase cluster name.The length is 1 to 20 English or Chinese characters.If this parameter is not specified, the default value is the InstanceId of the cluster.
     * 
     */
    @Import(name="instanceName")
    private @Nullable Output instanceName;

    /**
     * @return OceanBase cluster name.The length is 1 to 20 English or Chinese characters.If this parameter is not specified, the default value is the InstanceId of the cluster.
     * 
     */
    public Optional> instanceName() {
        return Optional.ofNullable(this.instanceName);
    }

    /**
     * The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3.
     * 
     */
    @Import(name="nodeNum")
    private @Nullable Output nodeNum;

    /**
     * @return The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3.
     * 
     */
    public Optional> nodeNum() {
        return Optional.ofNullable(this.nodeNum);
    }

    /**
     * The OceanBase Server version number.
     * 
     */
    @Import(name="obVersion")
    private @Nullable Output obVersion;

    /**
     * @return The OceanBase Server version number.
     * 
     */
    public Optional> obVersion() {
        return Optional.ofNullable(this.obVersion);
    }

    /**
     * The payment method of the instance. Value range:
     * - Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.
     * - PayAsYouGo (default): Pay-as-you-go (default hourly billing).
     * 
     */
    @Import(name="paymentType")
    private @Nullable Output paymentType;

    /**
     * @return The payment method of the instance. Value range:
     * - Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.
     * - PayAsYouGo (default): Pay-as-you-go (default hourly billing).
     * 
     */
    public Optional> paymentType() {
        return Optional.ofNullable(this.paymentType);
    }

    /**
     * The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {"1", "2", "3", "4"}. When PeriodUnit = Month, Period values: {"1", "2", "3", "4", "5", "6", "7", "8", "9", "12", "24", "36", "48", "60"}.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {"1", "2", "3", "4"}. When PeriodUnit = Month, Period values: {"1", "2", "3", "4", "5", "6", "7", "8", "9", "12", "24", "36", "48", "60"}.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * The duration of the purchase of resources.Package year and Month value range: Month.Default value: Month of the package, which is billed by volume. The default period is Hour.
     * 
     */
    @Import(name="periodUnit")
    private @Nullable Output periodUnit;

    /**
     * @return The duration of the purchase of resources.Package year and Month value range: Month.Default value: Month of the package, which is billed by volume. The default period is Hour.
     * 
     */
    public Optional> periodUnit() {
        return Optional.ofNullable(this.periodUnit);
    }

    /**
     * The ID of the enterprise resource group to which the instance resides.
     * 
     */
    @Import(name="resourceGroupId")
    private @Nullable Output resourceGroupId;

    /**
     * @return The ID of the enterprise resource group to which the instance resides.
     * 
     */
    public Optional> resourceGroupId() {
        return Optional.ofNullable(this.resourceGroupId);
    }

    /**
     * Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.
     * 
     */
    @Import(name="series")
    private @Nullable Output series;

    /**
     * @return Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.
     * 
     */
    public Optional> series() {
        return Optional.ofNullable(this.series);
    }

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

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

    /**
     * Information about the zone where the cluster is deployed.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return Information about the zone where the cluster is deployed.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private BaseInstanceState() {}

    private BaseInstanceState(BaseInstanceState $) {
        this.autoRenew = $.autoRenew;
        this.autoRenewPeriod = $.autoRenewPeriod;
        this.backupRetainMode = $.backupRetainMode;
        this.commodityCode = $.commodityCode;
        this.cpu = $.cpu;
        this.createTime = $.createTime;
        this.diskSize = $.diskSize;
        this.diskType = $.diskType;
        this.instanceClass = $.instanceClass;
        this.instanceName = $.instanceName;
        this.nodeNum = $.nodeNum;
        this.obVersion = $.obVersion;
        this.paymentType = $.paymentType;
        this.period = $.period;
        this.periodUnit = $.periodUnit;
        this.resourceGroupId = $.resourceGroupId;
        this.series = $.series;
        this.status = $.status;
        this.zones = $.zones;
    }

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

    public static final class Builder {
        private BaseInstanceState $;

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

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

        /**
         * @param autoRenew Whether to automatically renew.
         * It takes effect when the parameter ChargeType is PrePaid. Value range:
         * - true: automatic renewal.
         * - false (default): no automatic renewal.
         * 
         * @return builder
         * 
         */
        public Builder autoRenew(@Nullable Output autoRenew) {
            $.autoRenew = autoRenew;
            return this;
        }

        /**
         * @param autoRenew Whether to automatically renew.
         * It takes effect when the parameter ChargeType is PrePaid. Value range:
         * - true: automatic renewal.
         * - false (default): no automatic renewal.
         * 
         * @return builder
         * 
         */
        public Builder autoRenew(Boolean autoRenew) {
            return autoRenew(Output.of(autoRenew));
        }

        /**
         * @param autoRenewPeriod The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.
         * - PeriodUnit is Week, AutoRenewPeriod is {"1", "2", "3"}.
         * - PeriodUnit is Month, AutoRenewPeriod is {"1", "2", "3", "6", "12"}.
         * 
         * @return builder
         * 
         */
        public Builder autoRenewPeriod(@Nullable Output autoRenewPeriod) {
            $.autoRenewPeriod = autoRenewPeriod;
            return this;
        }

        /**
         * @param autoRenewPeriod The duration of each auto-renewal. When the value of the AutoRenew parameter is True, this parameter is required.
         * - PeriodUnit is Week, AutoRenewPeriod is {"1", "2", "3"}.
         * - PeriodUnit is Month, AutoRenewPeriod is {"1", "2", "3", "6", "12"}.
         * 
         * @return builder
         * 
         */
        public Builder autoRenewPeriod(Integer autoRenewPeriod) {
            return autoRenewPeriod(Output.of(autoRenewPeriod));
        }

        /**
         * @param backupRetainMode The backup retention policy after the cluster is deleted. The values are as follows:
         * - receive_all: Keep all backup sets;
         * - delete_all: delete all backup sets;
         * - receive_last: Keep the last backup set.
         * > **NOTE:**   The default value is delete_all.
         * 
         * @return builder
         * 
         */
        public Builder backupRetainMode(@Nullable Output backupRetainMode) {
            $.backupRetainMode = backupRetainMode;
            return this;
        }

        /**
         * @param backupRetainMode The backup retention policy after the cluster is deleted. The values are as follows:
         * - receive_all: Keep all backup sets;
         * - delete_all: delete all backup sets;
         * - receive_last: Keep the last backup set.
         * > **NOTE:**   The default value is delete_all.
         * 
         * @return builder
         * 
         */
        public Builder backupRetainMode(String backupRetainMode) {
            return backupRetainMode(Output.of(backupRetainMode));
        }

        /**
         * @param commodityCode The product code of the OceanBase cluster._oceanbasepre_public_cn: Domestic station cloud database package Year-to-month package._oceanbasepost_public_cn: The domestic station cloud database is paid by the hour._obpre_public_intl: International Station Cloud Database Package Monthly Package.
         * 
         * @return builder
         * 
         */
        public Builder commodityCode(@Nullable Output commodityCode) {
            $.commodityCode = commodityCode;
            return this;
        }

        /**
         * @param commodityCode The product code of the OceanBase cluster._oceanbasepre_public_cn: Domestic station cloud database package Year-to-month package._oceanbasepost_public_cn: The domestic station cloud database is paid by the hour._obpre_public_intl: International Station Cloud Database Package Monthly Package.
         * 
         * @return builder
         * 
         */
        public Builder commodityCode(String commodityCode) {
            return commodityCode(Output.of(commodityCode));
        }

        /**
         * @param cpu The number of CPU cores of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder cpu(@Nullable Output cpu) {
            $.cpu = cpu;
            return this;
        }

        /**
         * @param cpu The number of CPU cores of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder cpu(Integer cpu) {
            return cpu(Output.of(cpu));
        }

        /**
         * @param createTime The creation time of the resource.
         * 
         * @return builder
         * 
         */
        public Builder createTime(@Nullable Output createTime) {
            $.createTime = createTime;
            return this;
        }

        /**
         * @param createTime The creation time of the resource.
         * 
         * @return builder
         * 
         */
        public Builder createTime(String createTime) {
            return createTime(Output.of(createTime));
        }

        /**
         * @param diskSize The size of the storage space, in GB.
         * The limits of storage space vary according to the cluster specifications, as follows:
         * - 8C32GB:100GB ~ 10000GB
         * - 14C70GB:200GB ~ 10000GB
         * - 30C180GB:400GB ~ 10000GB
         * - 62C400G:800GB ~ 10000GB.
         *   The default value of each package is its minimum value.
         * 
         * @return builder
         * 
         */
        public Builder diskSize(@Nullable Output diskSize) {
            $.diskSize = diskSize;
            return this;
        }

        /**
         * @param diskSize The size of the storage space, in GB.
         * The limits of storage space vary according to the cluster specifications, as follows:
         * - 8C32GB:100GB ~ 10000GB
         * - 14C70GB:200GB ~ 10000GB
         * - 30C180GB:400GB ~ 10000GB
         * - 62C400G:800GB ~ 10000GB.
         *   The default value of each package is its minimum value.
         * 
         * @return builder
         * 
         */
        public Builder diskSize(Integer diskSize) {
            return diskSize(Output.of(diskSize));
        }

        /**
         * @param diskType The storage type of the cluster. Effective only in the standard cluster version (cloud disk).
         * Two types are currently supported:
         * - cloud_essd_pl1: cloud disk ESSD pl1.
         * - cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.
         * 
         * @return builder
         * 
         */
        public Builder diskType(@Nullable Output diskType) {
            $.diskType = diskType;
            return this;
        }

        /**
         * @param diskType The storage type of the cluster. Effective only in the standard cluster version (cloud disk).
         * Two types are currently supported:
         * - cloud_essd_pl1: cloud disk ESSD pl1.
         * - cloud_essd_pl0: cloud disk ESSD pl0. The default value is cloud_essd_pl1.
         * 
         * @return builder
         * 
         */
        public Builder diskType(String diskType) {
            return diskType(Output.of(diskType));
        }

        /**
         * @param instanceClass Cluster specification information.
         * Four packages are currently supported:
         * - 4C16GB:4cores 16GB
         * - 8C32GB:8cores 32GB
         * - 14C70GB:14cores 70GB
         * - 24C120GB:24cores 120GB
         * - 30C180GB:30cores 180GB
         * - 62C400GB:62cores 400GB
         * - 104C600GB:104cores 600GB
         * - 16C70GB:16cores 70GB
         * - 32C160GB:32cores 160GB
         * - 64C380GB:64cores 380GB
         * - 20C32GB:20cores 32GB
         * - 40C64GB:40cores 64GB
         * - 16C32GB:16cores 32GB
         * - 32C70GB:32cores 70GB
         * - 64C180GB:64cores 180GB
         * - 32C180GB:32cores 180GB
         * - 64C400GB:64cores 400GB.
         * 
         * @return builder
         * 
         */
        public Builder instanceClass(@Nullable Output instanceClass) {
            $.instanceClass = instanceClass;
            return this;
        }

        /**
         * @param instanceClass Cluster specification information.
         * Four packages are currently supported:
         * - 4C16GB:4cores 16GB
         * - 8C32GB:8cores 32GB
         * - 14C70GB:14cores 70GB
         * - 24C120GB:24cores 120GB
         * - 30C180GB:30cores 180GB
         * - 62C400GB:62cores 400GB
         * - 104C600GB:104cores 600GB
         * - 16C70GB:16cores 70GB
         * - 32C160GB:32cores 160GB
         * - 64C380GB:64cores 380GB
         * - 20C32GB:20cores 32GB
         * - 40C64GB:40cores 64GB
         * - 16C32GB:16cores 32GB
         * - 32C70GB:32cores 70GB
         * - 64C180GB:64cores 180GB
         * - 32C180GB:32cores 180GB
         * - 64C400GB:64cores 400GB.
         * 
         * @return builder
         * 
         */
        public Builder instanceClass(String instanceClass) {
            return instanceClass(Output.of(instanceClass));
        }

        /**
         * @param instanceName OceanBase cluster name.The length is 1 to 20 English or Chinese characters.If this parameter is not specified, the default value is the InstanceId of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder instanceName(@Nullable Output instanceName) {
            $.instanceName = instanceName;
            return this;
        }

        /**
         * @param instanceName OceanBase cluster name.The length is 1 to 20 English or Chinese characters.If this parameter is not specified, the default value is the InstanceId of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder instanceName(String instanceName) {
            return instanceName(Output.of(instanceName));
        }

        /**
         * @param nodeNum The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3.
         * 
         * @return builder
         * 
         */
        public Builder nodeNum(@Nullable Output nodeNum) {
            $.nodeNum = nodeNum;
            return this;
        }

        /**
         * @param nodeNum The number of nodes in the cluster. If the deployment mode is n-n-n, the number of nodes is n * 3.
         * 
         * @return builder
         * 
         */
        public Builder nodeNum(String nodeNum) {
            return nodeNum(Output.of(nodeNum));
        }

        /**
         * @param obVersion The OceanBase Server version number.
         * 
         * @return builder
         * 
         */
        public Builder obVersion(@Nullable Output obVersion) {
            $.obVersion = obVersion;
            return this;
        }

        /**
         * @param obVersion The OceanBase Server version number.
         * 
         * @return builder
         * 
         */
        public Builder obVersion(String obVersion) {
            return obVersion(Output.of(obVersion));
        }

        /**
         * @param paymentType The payment method of the instance. Value range:
         * - Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.
         * - PayAsYouGo (default): Pay-as-you-go (default hourly billing).
         * 
         * @return builder
         * 
         */
        public Builder paymentType(@Nullable Output paymentType) {
            $.paymentType = paymentType;
            return this;
        }

        /**
         * @param paymentType The payment method of the instance. Value range:
         * - Subscription: Package year and month. When you select this type of payment method, you must make sure that your account supports balance payment or credit payment. Otherwise, an InvalidPayMethod error message will be returned.
         * - PayAsYouGo (default): Pay-as-you-go (default hourly billing).
         * 
         * @return builder
         * 
         */
        public Builder paymentType(String paymentType) {
            return paymentType(Output.of(paymentType));
        }

        /**
         * @param period The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {"1", "2", "3", "4"}. When PeriodUnit = Month, Period values: {"1", "2", "3", "4", "5", "6", "7", "8", "9", "12", "24", "36", "48", "60"}.
         * 
         * @return builder
         * 
         */
        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        /**
         * @param period The duration of the resource purchase. The unit is specified by the PeriodUnit. The parameter InstanceChargeType takes effect only when the value is PrePaid and is required. Once the DedicatedHostId is specified, the value cannot exceed the subscription duration of the dedicated host. When PeriodUnit = Week, Period values: {"1", "2", "3", "4"}. When PeriodUnit = Month, Period values: {"1", "2", "3", "4", "5", "6", "7", "8", "9", "12", "24", "36", "48", "60"}.
         * 
         * @return builder
         * 
         */
        public Builder period(Integer period) {
            return period(Output.of(period));
        }

        /**
         * @param periodUnit The duration of the purchase of resources.Package year and Month value range: Month.Default value: Month of the package, which is billed by volume. The default period is Hour.
         * 
         * @return builder
         * 
         */
        public Builder periodUnit(@Nullable Output periodUnit) {
            $.periodUnit = periodUnit;
            return this;
        }

        /**
         * @param periodUnit The duration of the purchase of resources.Package year and Month value range: Month.Default value: Month of the package, which is billed by volume. The default period is Hour.
         * 
         * @return builder
         * 
         */
        public Builder periodUnit(String periodUnit) {
            return periodUnit(Output.of(periodUnit));
        }

        /**
         * @param resourceGroupId The ID of the enterprise resource group to which the instance resides.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(@Nullable Output resourceGroupId) {
            $.resourceGroupId = resourceGroupId;
            return this;
        }

        /**
         * @param resourceGroupId The ID of the enterprise resource group to which the instance resides.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(String resourceGroupId) {
            return resourceGroupId(Output.of(resourceGroupId));
        }

        /**
         * @param series Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.
         * 
         * @return builder
         * 
         */
        public Builder series(@Nullable Output series) {
            $.series = series;
            return this;
        }

        /**
         * @param series Series of OceanBase cluster instances-normal (default): Standard cluster version (cloud disk)-normal_SSD: Standard cluster version (local disk)-history: history Library cluster version.
         * 
         * @return builder
         * 
         */
        public Builder series(String series) {
            return series(Output.of(series));
        }

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

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

        /**
         * @param zones Information about the zone where the cluster is deployed.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones Information about the zone where the cluster is deployed.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones Information about the zone where the cluster is deployed.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public BaseInstanceState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy