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

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

There is a newer version: 2.82.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.NaptEnabled;
import com.pulumi.azurenative.mobilenetwork.inputs.PinholeTimeoutsArgs;
import com.pulumi.azurenative.mobilenetwork.inputs.PortRangeArgs;
import com.pulumi.azurenative.mobilenetwork.inputs.PortReuseHoldTimesArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * The network address and port translation settings to use for the attached data network.
 * 
 */
public final class NaptConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final NaptConfigurationArgs Empty = new NaptConfigurationArgs();

    /**
     * Whether NAPT is enabled for connections to this attached data network.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output> enabled;

    /**
     * @return Whether NAPT is enabled for connections to this attached data network.
     * 
     */
    public Optional>> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    /**
     * Maximum number of UDP and TCP pinholes that can be open simultaneously on the core interface. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
     * 
     */
    @Import(name="pinholeLimits")
    private @Nullable Output pinholeLimits;

    /**
     * @return Maximum number of UDP and TCP pinholes that can be open simultaneously on the core interface. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
     * 
     */
    public Optional> pinholeLimits() {
        return Optional.ofNullable(this.pinholeLimits);
    }

    /**
     * Expiry times of inactive NAPT pinholes, in seconds. All timers must be at least 1 second.
     * 
     */
    @Import(name="pinholeTimeouts")
    private @Nullable Output pinholeTimeouts;

    /**
     * @return Expiry times of inactive NAPT pinholes, in seconds. All timers must be at least 1 second.
     * 
     */
    public Optional> pinholeTimeouts() {
        return Optional.ofNullable(this.pinholeTimeouts);
    }

    /**
     * Range of port numbers to use as translated ports on each translated address.
     * If not specified and NAPT is enabled, this range defaults to 1,024 - 49,999.
     * (Ports under 1,024 should not be used because these are special purpose ports reserved by IANA. Ports 50,000 and above are reserved for non-NAPT use.)
     * 
     */
    @Import(name="portRange")
    private @Nullable Output portRange;

    /**
     * @return Range of port numbers to use as translated ports on each translated address.
     * If not specified and NAPT is enabled, this range defaults to 1,024 - 49,999.
     * (Ports under 1,024 should not be used because these are special purpose ports reserved by IANA. Ports 50,000 and above are reserved for non-NAPT use.)
     * 
     */
    public Optional> portRange() {
        return Optional.ofNullable(this.portRange);
    }

    /**
     * The minimum time (in seconds) that will pass before a port that was used by a closed pinhole can be recycled for use by another pinhole. All hold times must be at least 1 second.
     * 
     */
    @Import(name="portReuseHoldTime")
    private @Nullable Output portReuseHoldTime;

    /**
     * @return The minimum time (in seconds) that will pass before a port that was used by a closed pinhole can be recycled for use by another pinhole. All hold times must be at least 1 second.
     * 
     */
    public Optional> portReuseHoldTime() {
        return Optional.ofNullable(this.portReuseHoldTime);
    }

    private NaptConfigurationArgs() {}

    private NaptConfigurationArgs(NaptConfigurationArgs $) {
        this.enabled = $.enabled;
        this.pinholeLimits = $.pinholeLimits;
        this.pinholeTimeouts = $.pinholeTimeouts;
        this.portRange = $.portRange;
        this.portReuseHoldTime = $.portReuseHoldTime;
    }

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

    public static final class Builder {
        private NaptConfigurationArgs $;

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

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

        /**
         * @param enabled Whether NAPT is enabled for connections to this attached data network.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output> enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Whether NAPT is enabled for connections to this attached data network.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Either enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param enabled Whether NAPT is enabled for connections to this attached data network.
         * 
         * @return builder
         * 
         */
        public Builder enabled(String enabled) {
            return enabled(Either.ofLeft(enabled));
        }

        /**
         * @param enabled Whether NAPT is enabled for connections to this attached data network.
         * 
         * @return builder
         * 
         */
        public Builder enabled(NaptEnabled enabled) {
            return enabled(Either.ofRight(enabled));
        }

        /**
         * @param pinholeLimits Maximum number of UDP and TCP pinholes that can be open simultaneously on the core interface. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
         * 
         * @return builder
         * 
         */
        public Builder pinholeLimits(@Nullable Output pinholeLimits) {
            $.pinholeLimits = pinholeLimits;
            return this;
        }

        /**
         * @param pinholeLimits Maximum number of UDP and TCP pinholes that can be open simultaneously on the core interface. For 5G networks, this is the N6 interface. For 4G networks, this is the SGi interface.
         * 
         * @return builder
         * 
         */
        public Builder pinholeLimits(Integer pinholeLimits) {
            return pinholeLimits(Output.of(pinholeLimits));
        }

        /**
         * @param pinholeTimeouts Expiry times of inactive NAPT pinholes, in seconds. All timers must be at least 1 second.
         * 
         * @return builder
         * 
         */
        public Builder pinholeTimeouts(@Nullable Output pinholeTimeouts) {
            $.pinholeTimeouts = pinholeTimeouts;
            return this;
        }

        /**
         * @param pinholeTimeouts Expiry times of inactive NAPT pinholes, in seconds. All timers must be at least 1 second.
         * 
         * @return builder
         * 
         */
        public Builder pinholeTimeouts(PinholeTimeoutsArgs pinholeTimeouts) {
            return pinholeTimeouts(Output.of(pinholeTimeouts));
        }

        /**
         * @param portRange Range of port numbers to use as translated ports on each translated address.
         * If not specified and NAPT is enabled, this range defaults to 1,024 - 49,999.
         * (Ports under 1,024 should not be used because these are special purpose ports reserved by IANA. Ports 50,000 and above are reserved for non-NAPT use.)
         * 
         * @return builder
         * 
         */
        public Builder portRange(@Nullable Output portRange) {
            $.portRange = portRange;
            return this;
        }

        /**
         * @param portRange Range of port numbers to use as translated ports on each translated address.
         * If not specified and NAPT is enabled, this range defaults to 1,024 - 49,999.
         * (Ports under 1,024 should not be used because these are special purpose ports reserved by IANA. Ports 50,000 and above are reserved for non-NAPT use.)
         * 
         * @return builder
         * 
         */
        public Builder portRange(PortRangeArgs portRange) {
            return portRange(Output.of(portRange));
        }

        /**
         * @param portReuseHoldTime The minimum time (in seconds) that will pass before a port that was used by a closed pinhole can be recycled for use by another pinhole. All hold times must be at least 1 second.
         * 
         * @return builder
         * 
         */
        public Builder portReuseHoldTime(@Nullable Output portReuseHoldTime) {
            $.portReuseHoldTime = portReuseHoldTime;
            return this;
        }

        /**
         * @param portReuseHoldTime The minimum time (in seconds) that will pass before a port that was used by a closed pinhole can be recycled for use by another pinhole. All hold times must be at least 1 second.
         * 
         * @return builder
         * 
         */
        public Builder portReuseHoldTime(PortReuseHoldTimesArgs portReuseHoldTime) {
            return portReuseHoldTime(Output.of(portReuseHoldTime));
        }

        public NaptConfigurationArgs build() {
            $.pinholeLimits = Codegen.integerProp("pinholeLimits").output().arg($.pinholeLimits).def(65536).getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy