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

com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetIPConfigurationArgs 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.compute.inputs;

import com.pulumi.azurenative.compute.enums.IPVersion;
import com.pulumi.azurenative.compute.inputs.ApiEntityReferenceArgs;
import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs;
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.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Describes a virtual machine scale set network profile's IP configuration.
 * 
 */
public final class VirtualMachineScaleSetIPConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final VirtualMachineScaleSetIPConfigurationArgs Empty = new VirtualMachineScaleSetIPConfigurationArgs();

    /**
     * Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
     * 
     */
    @Import(name="applicationGatewayBackendAddressPools")
    private @Nullable Output> applicationGatewayBackendAddressPools;

    /**
     * @return Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
     * 
     */
    public Optional>> applicationGatewayBackendAddressPools() {
        return Optional.ofNullable(this.applicationGatewayBackendAddressPools);
    }

    /**
     * Specifies an array of references to application security group.
     * 
     */
    @Import(name="applicationSecurityGroups")
    private @Nullable Output> applicationSecurityGroups;

    /**
     * @return Specifies an array of references to application security group.
     * 
     */
    public Optional>> applicationSecurityGroups() {
        return Optional.ofNullable(this.applicationSecurityGroups);
    }

    /**
     * Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
     * 
     */
    @Import(name="loadBalancerBackendAddressPools")
    private @Nullable Output> loadBalancerBackendAddressPools;

    /**
     * @return Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
     * 
     */
    public Optional>> loadBalancerBackendAddressPools() {
        return Optional.ofNullable(this.loadBalancerBackendAddressPools);
    }

    /**
     * Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
     * 
     */
    @Import(name="loadBalancerInboundNatPools")
    private @Nullable Output> loadBalancerInboundNatPools;

    /**
     * @return Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
     * 
     */
    public Optional>> loadBalancerInboundNatPools() {
        return Optional.ofNullable(this.loadBalancerInboundNatPools);
    }

    /**
     * The IP configuration name.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return The IP configuration name.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Specifies the primary network interface in case the virtual machine has more than 1 network interface.
     * 
     */
    @Import(name="primary")
    private @Nullable Output primary;

    /**
     * @return Specifies the primary network interface in case the virtual machine has more than 1 network interface.
     * 
     */
    public Optional> primary() {
        return Optional.ofNullable(this.primary);
    }

    /**
     * Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'.
     * 
     */
    @Import(name="privateIPAddressVersion")
    private @Nullable Output> privateIPAddressVersion;

    /**
     * @return Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'.
     * 
     */
    public Optional>> privateIPAddressVersion() {
        return Optional.ofNullable(this.privateIPAddressVersion);
    }

    /**
     * The publicIPAddressConfiguration.
     * 
     */
    @Import(name="publicIPAddressConfiguration")
    private @Nullable Output publicIPAddressConfiguration;

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

    /**
     * Specifies the identifier of the subnet.
     * 
     */
    @Import(name="subnet")
    private @Nullable Output subnet;

    /**
     * @return Specifies the identifier of the subnet.
     * 
     */
    public Optional> subnet() {
        return Optional.ofNullable(this.subnet);
    }

    private VirtualMachineScaleSetIPConfigurationArgs() {}

    private VirtualMachineScaleSetIPConfigurationArgs(VirtualMachineScaleSetIPConfigurationArgs $) {
        this.applicationGatewayBackendAddressPools = $.applicationGatewayBackendAddressPools;
        this.applicationSecurityGroups = $.applicationSecurityGroups;
        this.loadBalancerBackendAddressPools = $.loadBalancerBackendAddressPools;
        this.loadBalancerInboundNatPools = $.loadBalancerInboundNatPools;
        this.name = $.name;
        this.primary = $.primary;
        this.privateIPAddressVersion = $.privateIPAddressVersion;
        this.publicIPAddressConfiguration = $.publicIPAddressConfiguration;
        this.subnet = $.subnet;
    }

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

    public static final class Builder {
        private VirtualMachineScaleSetIPConfigurationArgs $;

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

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

        /**
         * @param applicationGatewayBackendAddressPools Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
         * 
         * @return builder
         * 
         */
        public Builder applicationGatewayBackendAddressPools(@Nullable Output> applicationGatewayBackendAddressPools) {
            $.applicationGatewayBackendAddressPools = applicationGatewayBackendAddressPools;
            return this;
        }

        /**
         * @param applicationGatewayBackendAddressPools Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
         * 
         * @return builder
         * 
         */
        public Builder applicationGatewayBackendAddressPools(List applicationGatewayBackendAddressPools) {
            return applicationGatewayBackendAddressPools(Output.of(applicationGatewayBackendAddressPools));
        }

        /**
         * @param applicationGatewayBackendAddressPools Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
         * 
         * @return builder
         * 
         */
        public Builder applicationGatewayBackendAddressPools(SubResourceArgs... applicationGatewayBackendAddressPools) {
            return applicationGatewayBackendAddressPools(List.of(applicationGatewayBackendAddressPools));
        }

        /**
         * @param applicationSecurityGroups Specifies an array of references to application security group.
         * 
         * @return builder
         * 
         */
        public Builder applicationSecurityGroups(@Nullable Output> applicationSecurityGroups) {
            $.applicationSecurityGroups = applicationSecurityGroups;
            return this;
        }

        /**
         * @param applicationSecurityGroups Specifies an array of references to application security group.
         * 
         * @return builder
         * 
         */
        public Builder applicationSecurityGroups(List applicationSecurityGroups) {
            return applicationSecurityGroups(Output.of(applicationSecurityGroups));
        }

        /**
         * @param applicationSecurityGroups Specifies an array of references to application security group.
         * 
         * @return builder
         * 
         */
        public Builder applicationSecurityGroups(SubResourceArgs... applicationSecurityGroups) {
            return applicationSecurityGroups(List.of(applicationSecurityGroups));
        }

        /**
         * @param loadBalancerBackendAddressPools Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerBackendAddressPools(@Nullable Output> loadBalancerBackendAddressPools) {
            $.loadBalancerBackendAddressPools = loadBalancerBackendAddressPools;
            return this;
        }

        /**
         * @param loadBalancerBackendAddressPools Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerBackendAddressPools(List loadBalancerBackendAddressPools) {
            return loadBalancerBackendAddressPools(Output.of(loadBalancerBackendAddressPools));
        }

        /**
         * @param loadBalancerBackendAddressPools Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerBackendAddressPools(SubResourceArgs... loadBalancerBackendAddressPools) {
            return loadBalancerBackendAddressPools(List.of(loadBalancerBackendAddressPools));
        }

        /**
         * @param loadBalancerInboundNatPools Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerInboundNatPools(@Nullable Output> loadBalancerInboundNatPools) {
            $.loadBalancerInboundNatPools = loadBalancerInboundNatPools;
            return this;
        }

        /**
         * @param loadBalancerInboundNatPools Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerInboundNatPools(List loadBalancerInboundNatPools) {
            return loadBalancerInboundNatPools(Output.of(loadBalancerInboundNatPools));
        }

        /**
         * @param loadBalancerInboundNatPools Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancerInboundNatPools(SubResourceArgs... loadBalancerInboundNatPools) {
            return loadBalancerInboundNatPools(List.of(loadBalancerInboundNatPools));
        }

        /**
         * @param name The IP configuration name.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The IP configuration name.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param primary Specifies the primary network interface in case the virtual machine has more than 1 network interface.
         * 
         * @return builder
         * 
         */
        public Builder primary(@Nullable Output primary) {
            $.primary = primary;
            return this;
        }

        /**
         * @param primary Specifies the primary network interface in case the virtual machine has more than 1 network interface.
         * 
         * @return builder
         * 
         */
        public Builder primary(Boolean primary) {
            return primary(Output.of(primary));
        }

        /**
         * @param privateIPAddressVersion Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'.
         * 
         * @return builder
         * 
         */
        public Builder privateIPAddressVersion(@Nullable Output> privateIPAddressVersion) {
            $.privateIPAddressVersion = privateIPAddressVersion;
            return this;
        }

        /**
         * @param privateIPAddressVersion Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'.
         * 
         * @return builder
         * 
         */
        public Builder privateIPAddressVersion(Either privateIPAddressVersion) {
            return privateIPAddressVersion(Output.of(privateIPAddressVersion));
        }

        /**
         * @param privateIPAddressVersion Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'.
         * 
         * @return builder
         * 
         */
        public Builder privateIPAddressVersion(String privateIPAddressVersion) {
            return privateIPAddressVersion(Either.ofLeft(privateIPAddressVersion));
        }

        /**
         * @param privateIPAddressVersion Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'.
         * 
         * @return builder
         * 
         */
        public Builder privateIPAddressVersion(IPVersion privateIPAddressVersion) {
            return privateIPAddressVersion(Either.ofRight(privateIPAddressVersion));
        }

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

        /**
         * @param publicIPAddressConfiguration The publicIPAddressConfiguration.
         * 
         * @return builder
         * 
         */
        public Builder publicIPAddressConfiguration(VirtualMachineScaleSetPublicIPAddressConfigurationArgs publicIPAddressConfiguration) {
            return publicIPAddressConfiguration(Output.of(publicIPAddressConfiguration));
        }

        /**
         * @param subnet Specifies the identifier of the subnet.
         * 
         * @return builder
         * 
         */
        public Builder subnet(@Nullable Output subnet) {
            $.subnet = subnet;
            return this;
        }

        /**
         * @param subnet Specifies the identifier of the subnet.
         * 
         * @return builder
         * 
         */
        public Builder subnet(ApiEntityReferenceArgs subnet) {
            return subnet(Output.of(subnet));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy