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

com.pulumi.azurenative.network.InboundNatRuleArgs 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.network;

import com.pulumi.azurenative.network.enums.TransportProtocol;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.core.Either;
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.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final InboundNatRuleArgs Empty = new InboundNatRuleArgs();

    /**
     * A reference to backendAddressPool resource.
     * 
     */
    @Import(name="backendAddressPool")
    private @Nullable Output backendAddressPool;

    /**
     * @return A reference to backendAddressPool resource.
     * 
     */
    public Optional> backendAddressPool() {
        return Optional.ofNullable(this.backendAddressPool);
    }

    /**
     * The port used for the internal endpoint. Acceptable values range from 1 to 65535.
     * 
     */
    @Import(name="backendPort")
    private @Nullable Output backendPort;

    /**
     * @return The port used for the internal endpoint. Acceptable values range from 1 to 65535.
     * 
     */
    public Optional> backendPort() {
        return Optional.ofNullable(this.backendPort);
    }

    /**
     * Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint.
     * 
     */
    @Import(name="enableFloatingIP")
    private @Nullable Output enableFloatingIP;

    /**
     * @return Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint.
     * 
     */
    public Optional> enableFloatingIP() {
        return Optional.ofNullable(this.enableFloatingIP);
    }

    /**
     * Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.
     * 
     */
    @Import(name="enableTcpReset")
    private @Nullable Output enableTcpReset;

    /**
     * @return Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.
     * 
     */
    public Optional> enableTcpReset() {
        return Optional.ofNullable(this.enableTcpReset);
    }

    /**
     * A reference to frontend IP addresses.
     * 
     */
    @Import(name="frontendIPConfiguration")
    private @Nullable Output frontendIPConfiguration;

    /**
     * @return A reference to frontend IP addresses.
     * 
     */
    public Optional> frontendIPConfiguration() {
        return Optional.ofNullable(this.frontendIPConfiguration);
    }

    /**
     * The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534.
     * 
     */
    @Import(name="frontendPort")
    private @Nullable Output frontendPort;

    /**
     * @return The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534.
     * 
     */
    public Optional> frontendPort() {
        return Optional.ofNullable(this.frontendPort);
    }

    /**
     * The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
     * 
     */
    @Import(name="frontendPortRangeEnd")
    private @Nullable Output frontendPortRangeEnd;

    /**
     * @return The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
     * 
     */
    public Optional> frontendPortRangeEnd() {
        return Optional.ofNullable(this.frontendPortRangeEnd);
    }

    /**
     * The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
     * 
     */
    @Import(name="frontendPortRangeStart")
    private @Nullable Output frontendPortRangeStart;

    /**
     * @return The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
     * 
     */
    public Optional> frontendPortRangeStart() {
        return Optional.ofNullable(this.frontendPortRangeStart);
    }

    /**
     * Resource ID.
     * 
     */
    @Import(name="id")
    private @Nullable Output id;

    /**
     * @return Resource ID.
     * 
     */
    public Optional> id() {
        return Optional.ofNullable(this.id);
    }

    /**
     * The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
     * 
     */
    @Import(name="idleTimeoutInMinutes")
    private @Nullable Output idleTimeoutInMinutes;

    /**
     * @return The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
     * 
     */
    public Optional> idleTimeoutInMinutes() {
        return Optional.ofNullable(this.idleTimeoutInMinutes);
    }

    /**
     * The name of the inbound NAT rule.
     * 
     */
    @Import(name="inboundNatRuleName")
    private @Nullable Output inboundNatRuleName;

    /**
     * @return The name of the inbound NAT rule.
     * 
     */
    public Optional> inboundNatRuleName() {
        return Optional.ofNullable(this.inboundNatRuleName);
    }

    /**
     * The name of the load balancer.
     * 
     */
    @Import(name="loadBalancerName", required=true)
    private Output loadBalancerName;

    /**
     * @return The name of the load balancer.
     * 
     */
    public Output loadBalancerName() {
        return this.loadBalancerName;
    }

    /**
     * The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. This name can be used to access the resource.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. This name can be used to access the resource.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The reference to the transport protocol used by the load balancing rule.
     * 
     */
    @Import(name="protocol")
    private @Nullable Output> protocol;

    /**
     * @return The reference to the transport protocol used by the load balancing rule.
     * 
     */
    public Optional>> protocol() {
        return Optional.ofNullable(this.protocol);
    }

    /**
     * The name of the resource group.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    private InboundNatRuleArgs() {}

    private InboundNatRuleArgs(InboundNatRuleArgs $) {
        this.backendAddressPool = $.backendAddressPool;
        this.backendPort = $.backendPort;
        this.enableFloatingIP = $.enableFloatingIP;
        this.enableTcpReset = $.enableTcpReset;
        this.frontendIPConfiguration = $.frontendIPConfiguration;
        this.frontendPort = $.frontendPort;
        this.frontendPortRangeEnd = $.frontendPortRangeEnd;
        this.frontendPortRangeStart = $.frontendPortRangeStart;
        this.id = $.id;
        this.idleTimeoutInMinutes = $.idleTimeoutInMinutes;
        this.inboundNatRuleName = $.inboundNatRuleName;
        this.loadBalancerName = $.loadBalancerName;
        this.name = $.name;
        this.protocol = $.protocol;
        this.resourceGroupName = $.resourceGroupName;
    }

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

    public static final class Builder {
        private InboundNatRuleArgs $;

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

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

        /**
         * @param backendAddressPool A reference to backendAddressPool resource.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPool(@Nullable Output backendAddressPool) {
            $.backendAddressPool = backendAddressPool;
            return this;
        }

        /**
         * @param backendAddressPool A reference to backendAddressPool resource.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPool(SubResourceArgs backendAddressPool) {
            return backendAddressPool(Output.of(backendAddressPool));
        }

        /**
         * @param backendPort The port used for the internal endpoint. Acceptable values range from 1 to 65535.
         * 
         * @return builder
         * 
         */
        public Builder backendPort(@Nullable Output backendPort) {
            $.backendPort = backendPort;
            return this;
        }

        /**
         * @param backendPort The port used for the internal endpoint. Acceptable values range from 1 to 65535.
         * 
         * @return builder
         * 
         */
        public Builder backendPort(Integer backendPort) {
            return backendPort(Output.of(backendPort));
        }

        /**
         * @param enableFloatingIP Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder enableFloatingIP(@Nullable Output enableFloatingIP) {
            $.enableFloatingIP = enableFloatingIP;
            return this;
        }

        /**
         * @param enableFloatingIP Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder enableFloatingIP(Boolean enableFloatingIP) {
            return enableFloatingIP(Output.of(enableFloatingIP));
        }

        /**
         * @param enableTcpReset Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.
         * 
         * @return builder
         * 
         */
        public Builder enableTcpReset(@Nullable Output enableTcpReset) {
            $.enableTcpReset = enableTcpReset;
            return this;
        }

        /**
         * @param enableTcpReset Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP.
         * 
         * @return builder
         * 
         */
        public Builder enableTcpReset(Boolean enableTcpReset) {
            return enableTcpReset(Output.of(enableTcpReset));
        }

        /**
         * @param frontendIPConfiguration A reference to frontend IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfiguration(@Nullable Output frontendIPConfiguration) {
            $.frontendIPConfiguration = frontendIPConfiguration;
            return this;
        }

        /**
         * @param frontendIPConfiguration A reference to frontend IP addresses.
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfiguration(SubResourceArgs frontendIPConfiguration) {
            return frontendIPConfiguration(Output.of(frontendIPConfiguration));
        }

        /**
         * @param frontendPort The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534.
         * 
         * @return builder
         * 
         */
        public Builder frontendPort(@Nullable Output frontendPort) {
            $.frontendPort = frontendPort;
            return this;
        }

        /**
         * @param frontendPort The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534.
         * 
         * @return builder
         * 
         */
        public Builder frontendPort(Integer frontendPort) {
            return frontendPort(Output.of(frontendPort));
        }

        /**
         * @param frontendPortRangeEnd The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
         * 
         * @return builder
         * 
         */
        public Builder frontendPortRangeEnd(@Nullable Output frontendPortRangeEnd) {
            $.frontendPortRangeEnd = frontendPortRangeEnd;
            return this;
        }

        /**
         * @param frontendPortRangeEnd The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
         * 
         * @return builder
         * 
         */
        public Builder frontendPortRangeEnd(Integer frontendPortRangeEnd) {
            return frontendPortRangeEnd(Output.of(frontendPortRangeEnd));
        }

        /**
         * @param frontendPortRangeStart The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
         * 
         * @return builder
         * 
         */
        public Builder frontendPortRangeStart(@Nullable Output frontendPortRangeStart) {
            $.frontendPortRangeStart = frontendPortRangeStart;
            return this;
        }

        /**
         * @param frontendPortRangeStart The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534.
         * 
         * @return builder
         * 
         */
        public Builder frontendPortRangeStart(Integer frontendPortRangeStart) {
            return frontendPortRangeStart(Output.of(frontendPortRangeStart));
        }

        /**
         * @param id Resource ID.
         * 
         * @return builder
         * 
         */
        public Builder id(@Nullable Output id) {
            $.id = id;
            return this;
        }

        /**
         * @param id Resource ID.
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            return id(Output.of(id));
        }

        /**
         * @param idleTimeoutInMinutes The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
         * 
         * @return builder
         * 
         */
        public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) {
            $.idleTimeoutInMinutes = idleTimeoutInMinutes;
            return this;
        }

        /**
         * @param idleTimeoutInMinutes The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
         * 
         * @return builder
         * 
         */
        public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) {
            return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes));
        }

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

        /**
         * @param inboundNatRuleName The name of the inbound NAT rule.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatRuleName(String inboundNatRuleName) {
            return inboundNatRuleName(Output.of(inboundNatRuleName));
        }

        /**
         * @param loadBalancerName The name of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerName(Output loadBalancerName) {
            $.loadBalancerName = loadBalancerName;
            return this;
        }

        /**
         * @param loadBalancerName The name of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerName(String loadBalancerName) {
            return loadBalancerName(Output.of(loadBalancerName));
        }

        /**
         * @param name The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. This name can be used to access the resource.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. This name can be used to access the resource.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param protocol The reference to the transport protocol used by the load balancing rule.
         * 
         * @return builder
         * 
         */
        public Builder protocol(@Nullable Output> protocol) {
            $.protocol = protocol;
            return this;
        }

        /**
         * @param protocol The reference to the transport protocol used by the load balancing rule.
         * 
         * @return builder
         * 
         */
        public Builder protocol(Either protocol) {
            return protocol(Output.of(protocol));
        }

        /**
         * @param protocol The reference to the transport protocol used by the load balancing rule.
         * 
         * @return builder
         * 
         */
        public Builder protocol(String protocol) {
            return protocol(Either.ofLeft(protocol));
        }

        /**
         * @param protocol The reference to the transport protocol used by the load balancing rule.
         * 
         * @return builder
         * 
         */
        public Builder protocol(TransportProtocol protocol) {
            return protocol(Either.ofRight(protocol));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        public InboundNatRuleArgs build() {
            if ($.loadBalancerName == null) {
                throw new MissingRequiredPropertyException("InboundNatRuleArgs", "loadBalancerName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("InboundNatRuleArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy