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

com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetPublicIPAddressConfigurationArgs 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.DeleteOptions;
import com.pulumi.azurenative.compute.enums.IPVersion;
import com.pulumi.azurenative.compute.inputs.PublicIPAddressSkuArgs;
import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetIpTagArgs;
import com.pulumi.azurenative.compute.inputs.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration
 * 
 */
public final class VirtualMachineScaleSetPublicIPAddressConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final VirtualMachineScaleSetPublicIPAddressConfigurationArgs Empty = new VirtualMachineScaleSetPublicIPAddressConfigurationArgs();

    /**
     * Specify what happens to the public IP when the VM is deleted
     * 
     */
    @Import(name="deleteOption")
    private @Nullable Output> deleteOption;

    /**
     * @return Specify what happens to the public IP when the VM is deleted
     * 
     */
    public Optional>> deleteOption() {
        return Optional.ofNullable(this.deleteOption);
    }

    /**
     * The dns settings to be applied on the publicIP addresses .
     * 
     */
    @Import(name="dnsSettings")
    private @Nullable Output dnsSettings;

    /**
     * @return The dns settings to be applied on the publicIP addresses .
     * 
     */
    public Optional> dnsSettings() {
        return Optional.ofNullable(this.dnsSettings);
    }

    /**
     * The idle timeout of the public IP address.
     * 
     */
    @Import(name="idleTimeoutInMinutes")
    private @Nullable Output idleTimeoutInMinutes;

    /**
     * @return The idle timeout of the public IP address.
     * 
     */
    public Optional> idleTimeoutInMinutes() {
        return Optional.ofNullable(this.idleTimeoutInMinutes);
    }

    /**
     * The list of IP tags associated with the public IP address.
     * 
     */
    @Import(name="ipTags")
    private @Nullable Output> ipTags;

    /**
     * @return The list of IP tags associated with the public IP address.
     * 
     */
    public Optional>> ipTags() {
        return Optional.ofNullable(this.ipTags);
    }

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

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

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

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

    /**
     * The PublicIPPrefix from which to allocate publicIP addresses.
     * 
     */
    @Import(name="publicIPPrefix")
    private @Nullable Output publicIPPrefix;

    /**
     * @return The PublicIPPrefix from which to allocate publicIP addresses.
     * 
     */
    public Optional> publicIPPrefix() {
        return Optional.ofNullable(this.publicIPPrefix);
    }

    /**
     * Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    private VirtualMachineScaleSetPublicIPAddressConfigurationArgs() {}

    private VirtualMachineScaleSetPublicIPAddressConfigurationArgs(VirtualMachineScaleSetPublicIPAddressConfigurationArgs $) {
        this.deleteOption = $.deleteOption;
        this.dnsSettings = $.dnsSettings;
        this.idleTimeoutInMinutes = $.idleTimeoutInMinutes;
        this.ipTags = $.ipTags;
        this.name = $.name;
        this.publicIPAddressVersion = $.publicIPAddressVersion;
        this.publicIPPrefix = $.publicIPPrefix;
        this.sku = $.sku;
    }

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

    public static final class Builder {
        private VirtualMachineScaleSetPublicIPAddressConfigurationArgs $;

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

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

        /**
         * @param deleteOption Specify what happens to the public IP when the VM is deleted
         * 
         * @return builder
         * 
         */
        public Builder deleteOption(@Nullable Output> deleteOption) {
            $.deleteOption = deleteOption;
            return this;
        }

        /**
         * @param deleteOption Specify what happens to the public IP when the VM is deleted
         * 
         * @return builder
         * 
         */
        public Builder deleteOption(Either deleteOption) {
            return deleteOption(Output.of(deleteOption));
        }

        /**
         * @param deleteOption Specify what happens to the public IP when the VM is deleted
         * 
         * @return builder
         * 
         */
        public Builder deleteOption(String deleteOption) {
            return deleteOption(Either.ofLeft(deleteOption));
        }

        /**
         * @param deleteOption Specify what happens to the public IP when the VM is deleted
         * 
         * @return builder
         * 
         */
        public Builder deleteOption(DeleteOptions deleteOption) {
            return deleteOption(Either.ofRight(deleteOption));
        }

        /**
         * @param dnsSettings The dns settings to be applied on the publicIP addresses .
         * 
         * @return builder
         * 
         */
        public Builder dnsSettings(@Nullable Output dnsSettings) {
            $.dnsSettings = dnsSettings;
            return this;
        }

        /**
         * @param dnsSettings The dns settings to be applied on the publicIP addresses .
         * 
         * @return builder
         * 
         */
        public Builder dnsSettings(VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsArgs dnsSettings) {
            return dnsSettings(Output.of(dnsSettings));
        }

        /**
         * @param idleTimeoutInMinutes The idle timeout of the public IP address.
         * 
         * @return builder
         * 
         */
        public Builder idleTimeoutInMinutes(@Nullable Output idleTimeoutInMinutes) {
            $.idleTimeoutInMinutes = idleTimeoutInMinutes;
            return this;
        }

        /**
         * @param idleTimeoutInMinutes The idle timeout of the public IP address.
         * 
         * @return builder
         * 
         */
        public Builder idleTimeoutInMinutes(Integer idleTimeoutInMinutes) {
            return idleTimeoutInMinutes(Output.of(idleTimeoutInMinutes));
        }

        /**
         * @param ipTags The list of IP tags associated with the public IP address.
         * 
         * @return builder
         * 
         */
        public Builder ipTags(@Nullable Output> ipTags) {
            $.ipTags = ipTags;
            return this;
        }

        /**
         * @param ipTags The list of IP tags associated with the public IP address.
         * 
         * @return builder
         * 
         */
        public Builder ipTags(List ipTags) {
            return ipTags(Output.of(ipTags));
        }

        /**
         * @param ipTags The list of IP tags associated with the public IP address.
         * 
         * @return builder
         * 
         */
        public Builder ipTags(VirtualMachineScaleSetIpTagArgs... ipTags) {
            return ipTags(List.of(ipTags));
        }

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

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

        /**
         * @param publicIPAddressVersion Available from Api-Version 2019-07-01 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 publicIPAddressVersion(@Nullable Output> publicIPAddressVersion) {
            $.publicIPAddressVersion = publicIPAddressVersion;
            return this;
        }

        /**
         * @param publicIPAddressVersion Available from Api-Version 2019-07-01 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 publicIPAddressVersion(Either publicIPAddressVersion) {
            return publicIPAddressVersion(Output.of(publicIPAddressVersion));
        }

        /**
         * @param publicIPAddressVersion Available from Api-Version 2019-07-01 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 publicIPAddressVersion(String publicIPAddressVersion) {
            return publicIPAddressVersion(Either.ofLeft(publicIPAddressVersion));
        }

        /**
         * @param publicIPAddressVersion Available from Api-Version 2019-07-01 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 publicIPAddressVersion(IPVersion publicIPAddressVersion) {
            return publicIPAddressVersion(Either.ofRight(publicIPAddressVersion));
        }

        /**
         * @param publicIPPrefix The PublicIPPrefix from which to allocate publicIP addresses.
         * 
         * @return builder
         * 
         */
        public Builder publicIPPrefix(@Nullable Output publicIPPrefix) {
            $.publicIPPrefix = publicIPPrefix;
            return this;
        }

        /**
         * @param publicIPPrefix The PublicIPPrefix from which to allocate publicIP addresses.
         * 
         * @return builder
         * 
         */
        public Builder publicIPPrefix(SubResourceArgs publicIPPrefix) {
            return publicIPPrefix(Output.of(publicIPPrefix));
        }

        /**
         * @param sku Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible.
         * 
         * @return builder
         * 
         */
        public Builder sku(PublicIPAddressSkuArgs sku) {
            return sku(Output.of(sku));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy