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

com.pulumi.azurenative.network.LoadBalancerArgs 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.inputs.BackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.network.inputs.FrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.InboundNatPoolArgs;
import com.pulumi.azurenative.network.inputs.InboundNatRuleArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancerSkuArgs;
import com.pulumi.azurenative.network.inputs.LoadBalancingRuleArgs;
import com.pulumi.azurenative.network.inputs.OutboundRuleArgs;
import com.pulumi.azurenative.network.inputs.ProbeArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final LoadBalancerArgs Empty = new LoadBalancerArgs();

    /**
     * Collection of backend address pools used by a load balancer.
     * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
     * 
     */
    @Import(name="backendAddressPools")
    private @Nullable Output> backendAddressPools;

    /**
     * @return Collection of backend address pools used by a load balancer.
     * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
     * 
     */
    public Optional>> backendAddressPools() {
        return Optional.ofNullable(this.backendAddressPools);
    }

    /**
     * The extended location of the load balancer.
     * 
     */
    @Import(name="extendedLocation")
    private @Nullable Output extendedLocation;

    /**
     * @return The extended location of the load balancer.
     * 
     */
    public Optional> extendedLocation() {
        return Optional.ofNullable(this.extendedLocation);
    }

    /**
     * Object representing the frontend IPs to be used for the load balancer.
     * 
     */
    @Import(name="frontendIPConfigurations")
    private @Nullable Output> frontendIPConfigurations;

    /**
     * @return Object representing the frontend IPs to be used for the load balancer.
     * 
     */
    public Optional>> frontendIPConfigurations() {
        return Optional.ofNullable(this.frontendIPConfigurations);
    }

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

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

    /**
     * Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules.
     * 
     */
    @Import(name="inboundNatPools")
    private @Nullable Output> inboundNatPools;

    /**
     * @return Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules.
     * 
     */
    public Optional>> inboundNatPools() {
        return Optional.ofNullable(this.inboundNatPools);
    }

    /**
     * Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules.
     * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
     * 
     */
    @Import(name="inboundNatRules")
    private @Nullable Output> inboundNatRules;

    /**
     * @return Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules.
     * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
     * 
     */
    public Optional>> inboundNatRules() {
        return Optional.ofNullable(this.inboundNatRules);
    }

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

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

    /**
     * Object collection representing the load balancing rules Gets the provisioning.
     * 
     */
    @Import(name="loadBalancingRules")
    private @Nullable Output> loadBalancingRules;

    /**
     * @return Object collection representing the load balancing rules Gets the provisioning.
     * 
     */
    public Optional>> loadBalancingRules() {
        return Optional.ofNullable(this.loadBalancingRules);
    }

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

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

    /**
     * The outbound rules.
     * 
     */
    @Import(name="outboundRules")
    private @Nullable Output> outboundRules;

    /**
     * @return The outbound rules.
     * 
     */
    public Optional>> outboundRules() {
        return Optional.ofNullable(this.outboundRules);
    }

    /**
     * Collection of probe objects used in the load balancer.
     * 
     */
    @Import(name="probes")
    private @Nullable Output> probes;

    /**
     * @return Collection of probe objects used in the load balancer.
     * 
     */
    public Optional>> probes() {
        return Optional.ofNullable(this.probes);
    }

    /**
     * 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;
    }

    /**
     * The load balancer SKU.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return The load balancer SKU.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

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

    private LoadBalancerArgs() {}

    private LoadBalancerArgs(LoadBalancerArgs $) {
        this.backendAddressPools = $.backendAddressPools;
        this.extendedLocation = $.extendedLocation;
        this.frontendIPConfigurations = $.frontendIPConfigurations;
        this.id = $.id;
        this.inboundNatPools = $.inboundNatPools;
        this.inboundNatRules = $.inboundNatRules;
        this.loadBalancerName = $.loadBalancerName;
        this.loadBalancingRules = $.loadBalancingRules;
        this.location = $.location;
        this.outboundRules = $.outboundRules;
        this.probes = $.probes;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private LoadBalancerArgs $;

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

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

        /**
         * @param backendAddressPools Collection of backend address pools used by a load balancer.
         * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(@Nullable Output> backendAddressPools) {
            $.backendAddressPools = backendAddressPools;
            return this;
        }

        /**
         * @param backendAddressPools Collection of backend address pools used by a load balancer.
         * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(List backendAddressPools) {
            return backendAddressPools(Output.of(backendAddressPools));
        }

        /**
         * @param backendAddressPools Collection of backend address pools used by a load balancer.
         * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(BackendAddressPoolArgs... backendAddressPools) {
            return backendAddressPools(List.of(backendAddressPools));
        }

        /**
         * @param extendedLocation The extended location of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(@Nullable Output extendedLocation) {
            $.extendedLocation = extendedLocation;
            return this;
        }

        /**
         * @param extendedLocation The extended location of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
            return extendedLocation(Output.of(extendedLocation));
        }

        /**
         * @param frontendIPConfigurations Object representing the frontend IPs to be used for the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfigurations(@Nullable Output> frontendIPConfigurations) {
            $.frontendIPConfigurations = frontendIPConfigurations;
            return this;
        }

        /**
         * @param frontendIPConfigurations Object representing the frontend IPs to be used for the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfigurations(List frontendIPConfigurations) {
            return frontendIPConfigurations(Output.of(frontendIPConfigurations));
        }

        /**
         * @param frontendIPConfigurations Object representing the frontend IPs to be used for the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfigurations(FrontendIPConfigurationArgs... frontendIPConfigurations) {
            return frontendIPConfigurations(List.of(frontendIPConfigurations));
        }

        /**
         * @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 inboundNatPools Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatPools(@Nullable Output> inboundNatPools) {
            $.inboundNatPools = inboundNatPools;
            return this;
        }

        /**
         * @param inboundNatPools Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatPools(List inboundNatPools) {
            return inboundNatPools(Output.of(inboundNatPools));
        }

        /**
         * @param inboundNatPools Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatPools(InboundNatPoolArgs... inboundNatPools) {
            return inboundNatPools(List.of(inboundNatPools));
        }

        /**
         * @param inboundNatRules Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules.
         * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatRules(@Nullable Output> inboundNatRules) {
            $.inboundNatRules = inboundNatRules;
            return this;
        }

        /**
         * @param inboundNatRules Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules.
         * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatRules(List inboundNatRules) {
            return inboundNatRules(Output.of(inboundNatRules));
        }

        /**
         * @param inboundNatRules Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules.
         * These are also available as standalone resources. Do not mix inline and standalone resource as they will conflict with each other, leading to resources deletion.
         * 
         * @return builder
         * 
         */
        public Builder inboundNatRules(InboundNatRuleArgs... inboundNatRules) {
            return inboundNatRules(List.of(inboundNatRules));
        }

        /**
         * @param loadBalancerName The name of the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerName(@Nullable 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 loadBalancingRules Object collection representing the load balancing rules Gets the provisioning.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingRules(@Nullable Output> loadBalancingRules) {
            $.loadBalancingRules = loadBalancingRules;
            return this;
        }

        /**
         * @param loadBalancingRules Object collection representing the load balancing rules Gets the provisioning.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingRules(List loadBalancingRules) {
            return loadBalancingRules(Output.of(loadBalancingRules));
        }

        /**
         * @param loadBalancingRules Object collection representing the load balancing rules Gets the provisioning.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingRules(LoadBalancingRuleArgs... loadBalancingRules) {
            return loadBalancingRules(List.of(loadBalancingRules));
        }

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

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

        /**
         * @param outboundRules The outbound rules.
         * 
         * @return builder
         * 
         */
        public Builder outboundRules(@Nullable Output> outboundRules) {
            $.outboundRules = outboundRules;
            return this;
        }

        /**
         * @param outboundRules The outbound rules.
         * 
         * @return builder
         * 
         */
        public Builder outboundRules(List outboundRules) {
            return outboundRules(Output.of(outboundRules));
        }

        /**
         * @param outboundRules The outbound rules.
         * 
         * @return builder
         * 
         */
        public Builder outboundRules(OutboundRuleArgs... outboundRules) {
            return outboundRules(List.of(outboundRules));
        }

        /**
         * @param probes Collection of probe objects used in the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder probes(@Nullable Output> probes) {
            $.probes = probes;
            return this;
        }

        /**
         * @param probes Collection of probe objects used in the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder probes(List probes) {
            return probes(Output.of(probes));
        }

        /**
         * @param probes Collection of probe objects used in the load balancer.
         * 
         * @return builder
         * 
         */
        public Builder probes(ProbeArgs... probes) {
            return probes(List.of(probes));
        }

        /**
         * @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));
        }

        /**
         * @param sku The load balancer SKU.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The load balancer SKU.
         * 
         * @return builder
         * 
         */
        public Builder sku(LoadBalancerSkuArgs sku) {
            return sku(Output.of(sku));
        }

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

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy