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

com.pulumi.alicloud.rocketmq.QosCarArgs 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.rocketmq;

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


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

    public static final QosCarArgs Empty = new QosCarArgs();

    /**
     * The description of the QoS speed limiting rule.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the QoS speed limiting rule.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The speed limiting method. Valid values: `Absolute`, `Percent`.
     * 
     */
    @Import(name="limitType", required=true)
    private Output limitType;

    /**
     * @return The speed limiting method. Valid values: `Absolute`, `Percent`.
     * 
     */
    public Output limitType() {
        return this.limitType;
    }

    /**
     * The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.
     * 
     */
    @Import(name="maxBandwidthAbs")
    private @Nullable Output maxBandwidthAbs;

    /**
     * @return The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.
     * 
     */
    public Optional> maxBandwidthAbs() {
        return Optional.ofNullable(this.maxBandwidthAbs);
    }

    /**
     * The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.
     * 
     */
    @Import(name="maxBandwidthPercent")
    private @Nullable Output maxBandwidthPercent;

    /**
     * @return The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.
     * 
     */
    public Optional> maxBandwidthPercent() {
        return Optional.ofNullable(this.maxBandwidthPercent);
    }

    /**
     * The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.
     * 
     */
    @Import(name="minBandwidthAbs")
    private @Nullable Output minBandwidthAbs;

    /**
     * @return The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.
     * 
     */
    public Optional> minBandwidthAbs() {
        return Optional.ofNullable(this.minBandwidthAbs);
    }

    /**
     * The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.
     * 
     */
    @Import(name="minBandwidthPercent")
    private @Nullable Output minBandwidthPercent;

    /**
     * @return The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.
     * 
     */
    public Optional> minBandwidthPercent() {
        return Optional.ofNullable(this.minBandwidthPercent);
    }

    /**
     * The name of the QoS speed limiting rule..
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the QoS speed limiting rule..
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.
     * 
     */
    @Import(name="percentSourceType")
    private @Nullable Output percentSourceType;

    /**
     * @return The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.
     * 
     */
    public Optional> percentSourceType() {
        return Optional.ofNullable(this.percentSourceType);
    }

    /**
     * The priority of the specified stream.
     * 
     */
    @Import(name="priority", required=true)
    private Output priority;

    /**
     * @return The priority of the specified stream.
     * 
     */
    public Output priority() {
        return this.priority;
    }

    /**
     * The instance ID of the QoS.
     * 
     */
    @Import(name="qosId", required=true)
    private Output qosId;

    /**
     * @return The instance ID of the QoS.
     * 
     */
    public Output qosId() {
        return this.qosId;
    }

    private QosCarArgs() {}

    private QosCarArgs(QosCarArgs $) {
        this.description = $.description;
        this.limitType = $.limitType;
        this.maxBandwidthAbs = $.maxBandwidthAbs;
        this.maxBandwidthPercent = $.maxBandwidthPercent;
        this.minBandwidthAbs = $.minBandwidthAbs;
        this.minBandwidthPercent = $.minBandwidthPercent;
        this.name = $.name;
        this.percentSourceType = $.percentSourceType;
        this.priority = $.priority;
        this.qosId = $.qosId;
    }

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

    public static final class Builder {
        private QosCarArgs $;

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

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

        /**
         * @param description The description of the QoS speed limiting rule.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description The description of the QoS speed limiting rule.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param limitType The speed limiting method. Valid values: `Absolute`, `Percent`.
         * 
         * @return builder
         * 
         */
        public Builder limitType(Output limitType) {
            $.limitType = limitType;
            return this;
        }

        /**
         * @param limitType The speed limiting method. Valid values: `Absolute`, `Percent`.
         * 
         * @return builder
         * 
         */
        public Builder limitType(String limitType) {
            return limitType(Output.of(limitType));
        }

        /**
         * @param maxBandwidthAbs The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.
         * 
         * @return builder
         * 
         */
        public Builder maxBandwidthAbs(@Nullable Output maxBandwidthAbs) {
            $.maxBandwidthAbs = maxBandwidthAbs;
            return this;
        }

        /**
         * @param maxBandwidthAbs The maximum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType is Absolute.
         * 
         * @return builder
         * 
         */
        public Builder maxBandwidthAbs(Integer maxBandwidthAbs) {
            return maxBandwidthAbs(Output.of(maxBandwidthAbs));
        }

        /**
         * @param maxBandwidthPercent The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.
         * 
         * @return builder
         * 
         */
        public Builder maxBandwidthPercent(@Nullable Output maxBandwidthPercent) {
            $.maxBandwidthPercent = maxBandwidthPercent;
            return this;
        }

        /**
         * @param maxBandwidthPercent The maximum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated Smart Access Gateway (SAG) instance.This parameter is required when the value of the LimitType parameter is Percent.
         * 
         * @return builder
         * 
         */
        public Builder maxBandwidthPercent(Integer maxBandwidthPercent) {
            return maxBandwidthPercent(Output.of(maxBandwidthPercent));
        }

        /**
         * @param minBandwidthAbs The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.
         * 
         * @return builder
         * 
         */
        public Builder minBandwidthAbs(@Nullable Output minBandwidthAbs) {
            $.minBandwidthAbs = minBandwidthAbs;
            return this;
        }

        /**
         * @param minBandwidthAbs The minimum bandwidth allowed for the stream specified in the quintuple rule. This parameter is required when the value of the LimitType parameter is Absolute.
         * 
         * @return builder
         * 
         */
        public Builder minBandwidthAbs(Integer minBandwidthAbs) {
            return minBandwidthAbs(Output.of(minBandwidthAbs));
        }

        /**
         * @param minBandwidthPercent The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.
         * 
         * @return builder
         * 
         */
        public Builder minBandwidthPercent(@Nullable Output minBandwidthPercent) {
            $.minBandwidthPercent = minBandwidthPercent;
            return this;
        }

        /**
         * @param minBandwidthPercent The minimum bandwidth percentage allowed for the stream specified in the quintuple rule. It is based on the maximum upstream bandwidth you set for the associated SAG instance.This parameter is required when the value of the LimitType parameter is Percent.
         * 
         * @return builder
         * 
         */
        public Builder minBandwidthPercent(Integer minBandwidthPercent) {
            return minBandwidthPercent(Output.of(minBandwidthPercent));
        }

        /**
         * @param name The name of the QoS speed limiting rule..
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the QoS speed limiting rule..
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param percentSourceType The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.
         * 
         * @return builder
         * 
         */
        public Builder percentSourceType(@Nullable Output percentSourceType) {
            $.percentSourceType = percentSourceType;
            return this;
        }

        /**
         * @param percentSourceType The bandwidth type when the speed is limited based on percentage. Valid values: CcnBandwidth, InternetUpBandwidth.The default value is InternetUpBandwidth.
         * 
         * @return builder
         * 
         */
        public Builder percentSourceType(String percentSourceType) {
            return percentSourceType(Output.of(percentSourceType));
        }

        /**
         * @param priority The priority of the specified stream.
         * 
         * @return builder
         * 
         */
        public Builder priority(Output priority) {
            $.priority = priority;
            return this;
        }

        /**
         * @param priority The priority of the specified stream.
         * 
         * @return builder
         * 
         */
        public Builder priority(Integer priority) {
            return priority(Output.of(priority));
        }

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

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

        public QosCarArgs build() {
            if ($.limitType == null) {
                throw new MissingRequiredPropertyException("QosCarArgs", "limitType");
            }
            if ($.priority == null) {
                throw new MissingRequiredPropertyException("QosCarArgs", "priority");
            }
            if ($.qosId == null) {
                throw new MissingRequiredPropertyException("QosCarArgs", "qosId");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy