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

com.pulumi.azure.mobile.inputs.NetworkServicePccRuleArgs Maven / Gradle / Ivy

// *** 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.azure.mobile.inputs;

import com.pulumi.azure.mobile.inputs.NetworkServicePccRuleQosPolicyArgs;
import com.pulumi.azure.mobile.inputs.NetworkServicePccRuleServiceDataFlowTemplateArgs;
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.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final NetworkServicePccRuleArgs Empty = new NetworkServicePccRuleArgs();

    /**
     * Specifies the name of the rule. This must be unique within the parent service. You must not use any of the following reserved strings - `default`, `requested` or `service`.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Specifies the name of the rule. This must be unique within the parent service. You must not use any of the following reserved strings - `default`, `requested` or `service`.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * A precedence value that is used to decide between data flow policy rules when identifying the QoS values to use for a particular SIM. A lower value means a higher priority. This value should be unique among all data flow policy rules configured in the mobile network. Must be between `0` and `255`.
     * 
     */
    @Import(name="precedence", required=true)
    private Output precedence;

    /**
     * @return A precedence value that is used to decide between data flow policy rules when identifying the QoS values to use for a particular SIM. A lower value means a higher priority. This value should be unique among all data flow policy rules configured in the mobile network. Must be between `0` and `255`.
     * 
     */
    public Output precedence() {
        return this.precedence;
    }

    /**
     * A `qos_policy` block as defined below. The QoS policy to use for packets matching this rule. If this field is not specified then the Service will define the QoS settings.
     * 
     */
    @Import(name="qosPolicy")
    private @Nullable Output qosPolicy;

    /**
     * @return A `qos_policy` block as defined below. The QoS policy to use for packets matching this rule. If this field is not specified then the Service will define the QoS settings.
     * 
     */
    public Optional> qosPolicy() {
        return Optional.ofNullable(this.qosPolicy);
    }

    /**
     * A `service_data_flow_template` block as defined below. The set of service data flow templates to use for this PCC rule.
     * 
     */
    @Import(name="serviceDataFlowTemplates", required=true)
    private Output> serviceDataFlowTemplates;

    /**
     * @return A `service_data_flow_template` block as defined below. The set of service data flow templates to use for this PCC rule.
     * 
     */
    public Output> serviceDataFlowTemplates() {
        return this.serviceDataFlowTemplates;
    }

    /**
     * Determines whether flows that match this data flow policy rule are permitted. Defaults to `true`.
     * 
     */
    @Import(name="trafficControlEnabled")
    private @Nullable Output trafficControlEnabled;

    /**
     * @return Determines whether flows that match this data flow policy rule are permitted. Defaults to `true`.
     * 
     */
    public Optional> trafficControlEnabled() {
        return Optional.ofNullable(this.trafficControlEnabled);
    }

    private NetworkServicePccRuleArgs() {}

    private NetworkServicePccRuleArgs(NetworkServicePccRuleArgs $) {
        this.name = $.name;
        this.precedence = $.precedence;
        this.qosPolicy = $.qosPolicy;
        this.serviceDataFlowTemplates = $.serviceDataFlowTemplates;
        this.trafficControlEnabled = $.trafficControlEnabled;
    }

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

    public static final class Builder {
        private NetworkServicePccRuleArgs $;

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

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

        /**
         * @param name Specifies the name of the rule. This must be unique within the parent service. You must not use any of the following reserved strings - `default`, `requested` or `service`.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the rule. This must be unique within the parent service. You must not use any of the following reserved strings - `default`, `requested` or `service`.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param precedence A precedence value that is used to decide between data flow policy rules when identifying the QoS values to use for a particular SIM. A lower value means a higher priority. This value should be unique among all data flow policy rules configured in the mobile network. Must be between `0` and `255`.
         * 
         * @return builder
         * 
         */
        public Builder precedence(Output precedence) {
            $.precedence = precedence;
            return this;
        }

        /**
         * @param precedence A precedence value that is used to decide between data flow policy rules when identifying the QoS values to use for a particular SIM. A lower value means a higher priority. This value should be unique among all data flow policy rules configured in the mobile network. Must be between `0` and `255`.
         * 
         * @return builder
         * 
         */
        public Builder precedence(Integer precedence) {
            return precedence(Output.of(precedence));
        }

        /**
         * @param qosPolicy A `qos_policy` block as defined below. The QoS policy to use for packets matching this rule. If this field is not specified then the Service will define the QoS settings.
         * 
         * @return builder
         * 
         */
        public Builder qosPolicy(@Nullable Output qosPolicy) {
            $.qosPolicy = qosPolicy;
            return this;
        }

        /**
         * @param qosPolicy A `qos_policy` block as defined below. The QoS policy to use for packets matching this rule. If this field is not specified then the Service will define the QoS settings.
         * 
         * @return builder
         * 
         */
        public Builder qosPolicy(NetworkServicePccRuleQosPolicyArgs qosPolicy) {
            return qosPolicy(Output.of(qosPolicy));
        }

        /**
         * @param serviceDataFlowTemplates A `service_data_flow_template` block as defined below. The set of service data flow templates to use for this PCC rule.
         * 
         * @return builder
         * 
         */
        public Builder serviceDataFlowTemplates(Output> serviceDataFlowTemplates) {
            $.serviceDataFlowTemplates = serviceDataFlowTemplates;
            return this;
        }

        /**
         * @param serviceDataFlowTemplates A `service_data_flow_template` block as defined below. The set of service data flow templates to use for this PCC rule.
         * 
         * @return builder
         * 
         */
        public Builder serviceDataFlowTemplates(List serviceDataFlowTemplates) {
            return serviceDataFlowTemplates(Output.of(serviceDataFlowTemplates));
        }

        /**
         * @param serviceDataFlowTemplates A `service_data_flow_template` block as defined below. The set of service data flow templates to use for this PCC rule.
         * 
         * @return builder
         * 
         */
        public Builder serviceDataFlowTemplates(NetworkServicePccRuleServiceDataFlowTemplateArgs... serviceDataFlowTemplates) {
            return serviceDataFlowTemplates(List.of(serviceDataFlowTemplates));
        }

        /**
         * @param trafficControlEnabled Determines whether flows that match this data flow policy rule are permitted. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder trafficControlEnabled(@Nullable Output trafficControlEnabled) {
            $.trafficControlEnabled = trafficControlEnabled;
            return this;
        }

        /**
         * @param trafficControlEnabled Determines whether flows that match this data flow policy rule are permitted. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder trafficControlEnabled(Boolean trafficControlEnabled) {
            return trafficControlEnabled(Output.of(trafficControlEnabled));
        }

        public NetworkServicePccRuleArgs build() {
            if ($.name == null) {
                throw new MissingRequiredPropertyException("NetworkServicePccRuleArgs", "name");
            }
            if ($.precedence == null) {
                throw new MissingRequiredPropertyException("NetworkServicePccRuleArgs", "precedence");
            }
            if ($.serviceDataFlowTemplates == null) {
                throw new MissingRequiredPropertyException("NetworkServicePccRuleArgs", "serviceDataFlowTemplates");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy