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

com.pulumi.alicloud.ebs.DiskReplicaPairArgs 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.ebs;

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


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

    public static final DiskReplicaPairArgs Empty = new DiskReplicaPairArgs();

    /**
     * The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:-10240 Kbps: equal to 10 Mbps.-20480 Kbps: equal to 20 Mbps.-51200 Kbps: equal to 50 Mbps.-102400 Kbps: equal to 100 Mbps.Default value: 10240.This parameter cannot be specified when the ChargeType value is POSTPAY. The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
     * 
     */
    @Import(name="bandwidth")
    private @Nullable Output bandwidth;

    /**
     * @return The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:-10240 Kbps: equal to 10 Mbps.-20480 Kbps: equal to 20 Mbps.-51200 Kbps: equal to 50 Mbps.-102400 Kbps: equal to 100 Mbps.Default value: 10240.This parameter cannot be specified when the ChargeType value is POSTPAY. The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
     * 
     */
    public Optional> bandwidth() {
        return Optional.ofNullable(this.bandwidth);
    }

    /**
     * The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The ID of the standby disk.
     * 
     */
    @Import(name="destinationDiskId", required=true)
    private Output destinationDiskId;

    /**
     * @return The ID of the standby disk.
     * 
     */
    public Output destinationDiskId() {
        return this.destinationDiskId;
    }

    /**
     * The ID of the region to which the disaster recovery site belongs.
     * 
     */
    @Import(name="destinationRegionId", required=true)
    private Output destinationRegionId;

    /**
     * @return The ID of the region to which the disaster recovery site belongs.
     * 
     */
    public Output destinationRegionId() {
        return this.destinationRegionId;
    }

    /**
     * The ID of the zone to which the disaster recovery site belongs.
     * 
     */
    @Import(name="destinationZoneId", required=true)
    private Output destinationZoneId;

    /**
     * @return The ID of the zone to which the disaster recovery site belongs.
     * 
     */
    public Output destinationZoneId() {
        return this.destinationZoneId;
    }

    /**
     * The ID of the primary disk.
     * 
     */
    @Import(name="diskId", required=true)
    private Output diskId;

    /**
     * @return The ID of the primary disk.
     * 
     */
    public Output diskId() {
        return this.diskId;
    }

    /**
     * The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
     * 
     */
    @Import(name="pairName")
    private @Nullable Output pairName;

    /**
     * @return The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
     * 
     */
    public Optional> pairName() {
        return Optional.ofNullable(this.pairName);
    }

    /**
     * The payment type of the resource
     * 
     */
    @Import(name="paymentType")
    private @Nullable Output paymentType;

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

    /**
     * The length of the purchase for the asynchronous replication relationship. When ChargeType=PrePay, this parameter is mandatory. The unit of duration is specified by PeriodUnit and takes on a range of values. When PeriodUnit=Week, this parameter takes values in the range `1`, `2`, `3` and `4`. When PeriodUnit=Month, the parameter takes on the values `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `12`, `24`, `36`, `48`, `60`.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return The length of the purchase for the asynchronous replication relationship. When ChargeType=PrePay, this parameter is mandatory. The unit of duration is specified by PeriodUnit and takes on a range of values. When PeriodUnit=Week, this parameter takes values in the range `1`, `2`, `3` and `4`. When PeriodUnit=Month, the parameter takes on the values `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `12`, `24`, `36`, `48`, `60`.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * The units of asynchronous replication relationship purchase length. Valid values: `Week` and `Month`. Default value: `Month`.
     * 
     */
    @Import(name="periodUnit")
    private @Nullable Output periodUnit;

    /**
     * @return The units of asynchronous replication relationship purchase length. Valid values: `Week` and `Month`. Default value: `Month`.
     * 
     */
    public Optional> periodUnit() {
        return Optional.ofNullable(this.periodUnit);
    }

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

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

    /**
     * The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
     * 
     */
    @Import(name="rpo")
    private @Nullable Output rpo;

    /**
     * @return The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
     * 
     */
    public Optional> rpo() {
        return Optional.ofNullable(this.rpo);
    }

    /**
     * The ID of the zone to which the production site belongs.
     * 
     */
    @Import(name="sourceZoneId", required=true)
    private Output sourceZoneId;

    /**
     * @return The ID of the zone to which the production site belongs.
     * 
     */
    public Output sourceZoneId() {
        return this.sourceZoneId;
    }

    private DiskReplicaPairArgs() {}

    private DiskReplicaPairArgs(DiskReplicaPairArgs $) {
        this.bandwidth = $.bandwidth;
        this.description = $.description;
        this.destinationDiskId = $.destinationDiskId;
        this.destinationRegionId = $.destinationRegionId;
        this.destinationZoneId = $.destinationZoneId;
        this.diskId = $.diskId;
        this.pairName = $.pairName;
        this.paymentType = $.paymentType;
        this.period = $.period;
        this.periodUnit = $.periodUnit;
        this.replicaPairId = $.replicaPairId;
        this.rpo = $.rpo;
        this.sourceZoneId = $.sourceZoneId;
    }

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

    public static final class Builder {
        private DiskReplicaPairArgs $;

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

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

        /**
         * @param bandwidth The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:-10240 Kbps: equal to 10 Mbps.-20480 Kbps: equal to 20 Mbps.-51200 Kbps: equal to 50 Mbps.-102400 Kbps: equal to 100 Mbps.Default value: 10240.This parameter cannot be specified when the ChargeType value is POSTPAY. The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(@Nullable Output bandwidth) {
            $.bandwidth = bandwidth;
            return this;
        }

        /**
         * @param bandwidth The bandwidth for asynchronous data replication between cloud disks. The unit is Kbps. Value range:-10240 Kbps: equal to 10 Mbps.-20480 Kbps: equal to 20 Mbps.-51200 Kbps: equal to 50 Mbps.-102400 Kbps: equal to 100 Mbps.Default value: 10240.This parameter cannot be specified when the ChargeType value is POSTPAY. The system value is 0, which indicates that the disk is dynamically allocated according to data write changes during asynchronous replication.
         * 
         * @return builder
         * 
         */
        public Builder bandwidth(String bandwidth) {
            return bandwidth(Output.of(bandwidth));
        }

        /**
         * @param description The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of the asynchronous replication relationship. 2 to 256 English or Chinese characters in length and cannot start with' http:// 'or' https.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param destinationDiskId The ID of the standby disk.
         * 
         * @return builder
         * 
         */
        public Builder destinationDiskId(Output destinationDiskId) {
            $.destinationDiskId = destinationDiskId;
            return this;
        }

        /**
         * @param destinationDiskId The ID of the standby disk.
         * 
         * @return builder
         * 
         */
        public Builder destinationDiskId(String destinationDiskId) {
            return destinationDiskId(Output.of(destinationDiskId));
        }

        /**
         * @param destinationRegionId The ID of the region to which the disaster recovery site belongs.
         * 
         * @return builder
         * 
         */
        public Builder destinationRegionId(Output destinationRegionId) {
            $.destinationRegionId = destinationRegionId;
            return this;
        }

        /**
         * @param destinationRegionId The ID of the region to which the disaster recovery site belongs.
         * 
         * @return builder
         * 
         */
        public Builder destinationRegionId(String destinationRegionId) {
            return destinationRegionId(Output.of(destinationRegionId));
        }

        /**
         * @param destinationZoneId The ID of the zone to which the disaster recovery site belongs.
         * 
         * @return builder
         * 
         */
        public Builder destinationZoneId(Output destinationZoneId) {
            $.destinationZoneId = destinationZoneId;
            return this;
        }

        /**
         * @param destinationZoneId The ID of the zone to which the disaster recovery site belongs.
         * 
         * @return builder
         * 
         */
        public Builder destinationZoneId(String destinationZoneId) {
            return destinationZoneId(Output.of(destinationZoneId));
        }

        /**
         * @param diskId The ID of the primary disk.
         * 
         * @return builder
         * 
         */
        public Builder diskId(Output diskId) {
            $.diskId = diskId;
            return this;
        }

        /**
         * @param diskId The ID of the primary disk.
         * 
         * @return builder
         * 
         */
        public Builder diskId(String diskId) {
            return diskId(Output.of(diskId));
        }

        /**
         * @param pairName The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
         * 
         * @return builder
         * 
         */
        public Builder pairName(@Nullable Output pairName) {
            $.pairName = pairName;
            return this;
        }

        /**
         * @param pairName The name of the asynchronous replication relationship. The length must be 2 to 128 characters in length and must start with a letter or Chinese name. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-).
         * 
         * @return builder
         * 
         */
        public Builder pairName(String pairName) {
            return pairName(Output.of(pairName));
        }

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

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

        /**
         * @param period The length of the purchase for the asynchronous replication relationship. When ChargeType=PrePay, this parameter is mandatory. The unit of duration is specified by PeriodUnit and takes on a range of values. When PeriodUnit=Week, this parameter takes values in the range `1`, `2`, `3` and `4`. When PeriodUnit=Month, the parameter takes on the 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 length of the purchase for the asynchronous replication relationship. When ChargeType=PrePay, this parameter is mandatory. The unit of duration is specified by PeriodUnit and takes on a range of values. When PeriodUnit=Week, this parameter takes values in the range `1`, `2`, `3` and `4`. When PeriodUnit=Month, the parameter takes on the values `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `12`, `24`, `36`, `48`, `60`.
         * 
         * @return builder
         * 
         */
        public Builder period(String period) {
            return period(Output.of(period));
        }

        /**
         * @param periodUnit The units of asynchronous replication relationship purchase length. Valid values: `Week` and `Month`. Default value: `Month`.
         * 
         * @return builder
         * 
         */
        public Builder periodUnit(@Nullable Output periodUnit) {
            $.periodUnit = periodUnit;
            return this;
        }

        /**
         * @param periodUnit The units of asynchronous replication relationship purchase length. Valid values: `Week` and `Month`. Default value: `Month`.
         * 
         * @return builder
         * 
         */
        public Builder periodUnit(String periodUnit) {
            return periodUnit(Output.of(periodUnit));
        }

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

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

        /**
         * @param rpo The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
         * 
         * @return builder
         * 
         */
        public Builder rpo(@Nullable Output rpo) {
            $.rpo = rpo;
            return this;
        }

        /**
         * @param rpo The RPO value set by the consistency group in seconds. Currently only 900 seconds are supported.
         * 
         * @return builder
         * 
         */
        public Builder rpo(String rpo) {
            return rpo(Output.of(rpo));
        }

        /**
         * @param sourceZoneId The ID of the zone to which the production site belongs.
         * 
         * @return builder
         * 
         */
        public Builder sourceZoneId(Output sourceZoneId) {
            $.sourceZoneId = sourceZoneId;
            return this;
        }

        /**
         * @param sourceZoneId The ID of the zone to which the production site belongs.
         * 
         * @return builder
         * 
         */
        public Builder sourceZoneId(String sourceZoneId) {
            return sourceZoneId(Output.of(sourceZoneId));
        }

        public DiskReplicaPairArgs build() {
            if ($.destinationDiskId == null) {
                throw new MissingRequiredPropertyException("DiskReplicaPairArgs", "destinationDiskId");
            }
            if ($.destinationRegionId == null) {
                throw new MissingRequiredPropertyException("DiskReplicaPairArgs", "destinationRegionId");
            }
            if ($.destinationZoneId == null) {
                throw new MissingRequiredPropertyException("DiskReplicaPairArgs", "destinationZoneId");
            }
            if ($.diskId == null) {
                throw new MissingRequiredPropertyException("DiskReplicaPairArgs", "diskId");
            }
            if ($.sourceZoneId == null) {
                throw new MissingRequiredPropertyException("DiskReplicaPairArgs", "sourceZoneId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy