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

com.pulumi.azurenative.mobilenetwork.inputs.QosPolicyArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.mobilenetwork.inputs;

import com.pulumi.azurenative.mobilenetwork.enums.PreemptionCapability;
import com.pulumi.azurenative.mobilenetwork.enums.PreemptionVulnerability;
import com.pulumi.azurenative.mobilenetwork.inputs.AmbrArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
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;


/**
 * QoS policy
 * 
 */
public final class QosPolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final QosPolicyArgs Empty = new QosPolicyArgs();

    /**
     * QoS Flow allocation and retention priority (ARP) level. Flows with higher priority preempt flows with lower priority, if the settings of `preemptionCapability` and `preemptionVulnerability` allow it. 1 is the highest level of priority. If this field is not specified then `5qi` is used to derive the ARP value. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
     * 
     */
    @Import(name="allocationAndRetentionPriorityLevel")
    private @Nullable Output allocationAndRetentionPriorityLevel;

    /**
     * @return QoS Flow allocation and retention priority (ARP) level. Flows with higher priority preempt flows with lower priority, if the settings of `preemptionCapability` and `preemptionVulnerability` allow it. 1 is the highest level of priority. If this field is not specified then `5qi` is used to derive the ARP value. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
     * 
     */
    public Optional> allocationAndRetentionPriorityLevel() {
        return Optional.ofNullable(this.allocationAndRetentionPriorityLevel);
    }

    /**
     * 5G QoS Flow Indicator value. The 5QI identifies a specific QoS forwarding treatment to be provided to a flow. See 3GPP TS23.501 section 5.7.2.1 for a full description of the 5QI parameter, and table 5.7.4-1 for the definition the 5QI values.
     * 
     */
    @Import(name="fiveQi")
    private @Nullable Output fiveQi;

    /**
     * @return 5G QoS Flow Indicator value. The 5QI identifies a specific QoS forwarding treatment to be provided to a flow. See 3GPP TS23.501 section 5.7.2.1 for a full description of the 5QI parameter, and table 5.7.4-1 for the definition the 5QI values.
     * 
     */
    public Optional> fiveQi() {
        return Optional.ofNullable(this.fiveQi);
    }

    /**
     * The maximum bit rate (MBR) for all service data flows that use this data flow policy rule or service.
     * 
     */
    @Import(name="maximumBitRate", required=true)
    private Output maximumBitRate;

    /**
     * @return The maximum bit rate (MBR) for all service data flows that use this data flow policy rule or service.
     * 
     */
    public Output maximumBitRate() {
        return this.maximumBitRate;
    }

    /**
     * QoS Flow preemption capability. The preemption capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
     * 
     */
    @Import(name="preemptionCapability")
    private @Nullable Output> preemptionCapability;

    /**
     * @return QoS Flow preemption capability. The preemption capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
     * 
     */
    public Optional>> preemptionCapability() {
        return Optional.ofNullable(this.preemptionCapability);
    }

    /**
     * QoS Flow preemption vulnerability. The preemption vulnerability of a QoS Flow controls whether it can be preempted by a QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
     * 
     */
    @Import(name="preemptionVulnerability")
    private @Nullable Output> preemptionVulnerability;

    /**
     * @return QoS Flow preemption vulnerability. The preemption vulnerability of a QoS Flow controls whether it can be preempted by a QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
     * 
     */
    public Optional>> preemptionVulnerability() {
        return Optional.ofNullable(this.preemptionVulnerability);
    }

    private QosPolicyArgs() {}

    private QosPolicyArgs(QosPolicyArgs $) {
        this.allocationAndRetentionPriorityLevel = $.allocationAndRetentionPriorityLevel;
        this.fiveQi = $.fiveQi;
        this.maximumBitRate = $.maximumBitRate;
        this.preemptionCapability = $.preemptionCapability;
        this.preemptionVulnerability = $.preemptionVulnerability;
    }

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

    public static final class Builder {
        private QosPolicyArgs $;

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

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

        /**
         * @param allocationAndRetentionPriorityLevel QoS Flow allocation and retention priority (ARP) level. Flows with higher priority preempt flows with lower priority, if the settings of `preemptionCapability` and `preemptionVulnerability` allow it. 1 is the highest level of priority. If this field is not specified then `5qi` is used to derive the ARP value. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder allocationAndRetentionPriorityLevel(@Nullable Output allocationAndRetentionPriorityLevel) {
            $.allocationAndRetentionPriorityLevel = allocationAndRetentionPriorityLevel;
            return this;
        }

        /**
         * @param allocationAndRetentionPriorityLevel QoS Flow allocation and retention priority (ARP) level. Flows with higher priority preempt flows with lower priority, if the settings of `preemptionCapability` and `preemptionVulnerability` allow it. 1 is the highest level of priority. If this field is not specified then `5qi` is used to derive the ARP value. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder allocationAndRetentionPriorityLevel(Integer allocationAndRetentionPriorityLevel) {
            return allocationAndRetentionPriorityLevel(Output.of(allocationAndRetentionPriorityLevel));
        }

        /**
         * @param fiveQi 5G QoS Flow Indicator value. The 5QI identifies a specific QoS forwarding treatment to be provided to a flow. See 3GPP TS23.501 section 5.7.2.1 for a full description of the 5QI parameter, and table 5.7.4-1 for the definition the 5QI values.
         * 
         * @return builder
         * 
         */
        public Builder fiveQi(@Nullable Output fiveQi) {
            $.fiveQi = fiveQi;
            return this;
        }

        /**
         * @param fiveQi 5G QoS Flow Indicator value. The 5QI identifies a specific QoS forwarding treatment to be provided to a flow. See 3GPP TS23.501 section 5.7.2.1 for a full description of the 5QI parameter, and table 5.7.4-1 for the definition the 5QI values.
         * 
         * @return builder
         * 
         */
        public Builder fiveQi(Integer fiveQi) {
            return fiveQi(Output.of(fiveQi));
        }

        /**
         * @param maximumBitRate The maximum bit rate (MBR) for all service data flows that use this data flow policy rule or service.
         * 
         * @return builder
         * 
         */
        public Builder maximumBitRate(Output maximumBitRate) {
            $.maximumBitRate = maximumBitRate;
            return this;
        }

        /**
         * @param maximumBitRate The maximum bit rate (MBR) for all service data flows that use this data flow policy rule or service.
         * 
         * @return builder
         * 
         */
        public Builder maximumBitRate(AmbrArgs maximumBitRate) {
            return maximumBitRate(Output.of(maximumBitRate));
        }

        /**
         * @param preemptionCapability QoS Flow preemption capability. The preemption capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionCapability(@Nullable Output> preemptionCapability) {
            $.preemptionCapability = preemptionCapability;
            return this;
        }

        /**
         * @param preemptionCapability QoS Flow preemption capability. The preemption capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionCapability(Either preemptionCapability) {
            return preemptionCapability(Output.of(preemptionCapability));
        }

        /**
         * @param preemptionCapability QoS Flow preemption capability. The preemption capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionCapability(String preemptionCapability) {
            return preemptionCapability(Either.ofLeft(preemptionCapability));
        }

        /**
         * @param preemptionCapability QoS Flow preemption capability. The preemption capability of a QoS Flow controls whether it can preempt another QoS Flow with a lower priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionCapability(PreemptionCapability preemptionCapability) {
            return preemptionCapability(Either.ofRight(preemptionCapability));
        }

        /**
         * @param preemptionVulnerability QoS Flow preemption vulnerability. The preemption vulnerability of a QoS Flow controls whether it can be preempted by a QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionVulnerability(@Nullable Output> preemptionVulnerability) {
            $.preemptionVulnerability = preemptionVulnerability;
            return this;
        }

        /**
         * @param preemptionVulnerability QoS Flow preemption vulnerability. The preemption vulnerability of a QoS Flow controls whether it can be preempted by a QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionVulnerability(Either preemptionVulnerability) {
            return preemptionVulnerability(Output.of(preemptionVulnerability));
        }

        /**
         * @param preemptionVulnerability QoS Flow preemption vulnerability. The preemption vulnerability of a QoS Flow controls whether it can be preempted by a QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionVulnerability(String preemptionVulnerability) {
            return preemptionVulnerability(Either.ofLeft(preemptionVulnerability));
        }

        /**
         * @param preemptionVulnerability QoS Flow preemption vulnerability. The preemption vulnerability of a QoS Flow controls whether it can be preempted by a QoS Flow with a higher priority level. See 3GPP TS23.501 section 5.7.2.2 for a full description of the ARP parameters.
         * 
         * @return builder
         * 
         */
        public Builder preemptionVulnerability(PreemptionVulnerability preemptionVulnerability) {
            return preemptionVulnerability(Either.ofRight(preemptionVulnerability));
        }

        public QosPolicyArgs build() {
            $.allocationAndRetentionPriorityLevel = Codegen.integerProp("allocationAndRetentionPriorityLevel").output().arg($.allocationAndRetentionPriorityLevel).def(9).getNullable();
            $.fiveQi = Codegen.integerProp("fiveQi").output().arg($.fiveQi).def(9).getNullable();
            if ($.maximumBitRate == null) {
                throw new MissingRequiredPropertyException("QosPolicyArgs", "maximumBitRate");
            }
            $.preemptionCapability = Codegen.stringProp("preemptionCapability").left(PreemptionCapability.class).output().arg($.preemptionCapability).def("NotPreempt").getNullable();
            $.preemptionVulnerability = Codegen.stringProp("preemptionVulnerability").left(PreemptionVulnerability.class).output().arg($.preemptionVulnerability).def("Preemptable").getNullable();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy