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

com.pulumi.azurenative.mobilenetwork.outputs.ServiceDataFlowTemplateResponse 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.azurenative.mobilenetwork.outputs;

import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nullable;

@CustomType
public final class ServiceDataFlowTemplateResponse {
    /**
     * @return The direction of this flow.
     * 
     */
    private String direction;
    /**
     * @return The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. This is an optional setting. If you do not specify it then connections will be allowed on all ports. Port ranges must be specified as <FirstPort>-<LastPort>. For example: [`8080`, `8082-8085`].
     * 
     */
    private @Nullable List ports;
    /**
     * @return A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
     * 
     */
    private List protocol;
    /**
     * @return The remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, 192.0.2.54/24).
     * 
     */
    private List remoteIpList;
    /**
     * @return The name of the data flow template. This must be unique within the parent data flow policy rule. You must not use any of the following reserved strings - `default`, `requested` or `service`.
     * 
     */
    private String templateName;

    private ServiceDataFlowTemplateResponse() {}
    /**
     * @return The direction of this flow.
     * 
     */
    public String direction() {
        return this.direction;
    }
    /**
     * @return The port(s) to which UEs will connect for this flow. You can specify zero or more ports or port ranges. If you specify one or more ports or port ranges then you must specify a value other than `ip` in the `protocol` field. This is an optional setting. If you do not specify it then connections will be allowed on all ports. Port ranges must be specified as <FirstPort>-<LastPort>. For example: [`8080`, `8082-8085`].
     * 
     */
    public List ports() {
        return this.ports == null ? List.of() : this.ports;
    }
    /**
     * @return A list of the allowed protocol(s) for this flow. If you want this flow to be able to use any protocol within the internet protocol suite, use the value `ip`. If you only want to allow a selection of protocols, you must use the corresponding IANA Assigned Internet Protocol Number for each protocol, as described in https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml. For example, for UDP, you must use 17. If you use the value `ip` then you must leave the field `port` unspecified.
     * 
     */
    public List protocol() {
        return this.protocol;
    }
    /**
     * @return The remote IP address(es) to which UEs will connect for this flow. If you want to allow connections on any IP address, use the value `any`. Otherwise, you must provide each of the remote IP addresses to which the packet core instance will connect for this flow. You must provide each IP address in CIDR notation, including the netmask (for example, 192.0.2.54/24).
     * 
     */
    public List remoteIpList() {
        return this.remoteIpList;
    }
    /**
     * @return The name of the data flow template. This must be unique within the parent data flow policy rule. You must not use any of the following reserved strings - `default`, `requested` or `service`.
     * 
     */
    public String templateName() {
        return this.templateName;
    }

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

    public static Builder builder(ServiceDataFlowTemplateResponse defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String direction;
        private @Nullable List ports;
        private List protocol;
        private List remoteIpList;
        private String templateName;
        public Builder() {}
        public Builder(ServiceDataFlowTemplateResponse defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.direction = defaults.direction;
    	      this.ports = defaults.ports;
    	      this.protocol = defaults.protocol;
    	      this.remoteIpList = defaults.remoteIpList;
    	      this.templateName = defaults.templateName;
        }

        @CustomType.Setter
        public Builder direction(String direction) {
            if (direction == null) {
              throw new MissingRequiredPropertyException("ServiceDataFlowTemplateResponse", "direction");
            }
            this.direction = direction;
            return this;
        }
        @CustomType.Setter
        public Builder ports(@Nullable List ports) {

            this.ports = ports;
            return this;
        }
        public Builder ports(String... ports) {
            return ports(List.of(ports));
        }
        @CustomType.Setter
        public Builder protocol(List protocol) {
            if (protocol == null) {
              throw new MissingRequiredPropertyException("ServiceDataFlowTemplateResponse", "protocol");
            }
            this.protocol = protocol;
            return this;
        }
        public Builder protocol(String... protocol) {
            return protocol(List.of(protocol));
        }
        @CustomType.Setter
        public Builder remoteIpList(List remoteIpList) {
            if (remoteIpList == null) {
              throw new MissingRequiredPropertyException("ServiceDataFlowTemplateResponse", "remoteIpList");
            }
            this.remoteIpList = remoteIpList;
            return this;
        }
        public Builder remoteIpList(String... remoteIpList) {
            return remoteIpList(List.of(remoteIpList));
        }
        @CustomType.Setter
        public Builder templateName(String templateName) {
            if (templateName == null) {
              throw new MissingRequiredPropertyException("ServiceDataFlowTemplateResponse", "templateName");
            }
            this.templateName = templateName;
            return this;
        }
        public ServiceDataFlowTemplateResponse build() {
            final var _resultValue = new ServiceDataFlowTemplateResponse();
            _resultValue.direction = direction;
            _resultValue.ports = ports;
            _resultValue.protocol = protocol;
            _resultValue.remoteIpList = remoteIpList;
            _resultValue.templateName = templateName;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy