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

com.pulumi.azurenative.compute.inputs.VirtualMachinePublicIPAddressConfigurationArgs Maven / Gradle / Ivy

There is a newer version: 2.89.2
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.compute.inputs;

import com.pulumi.azurenative.compute.enums.DeleteOptions;
import com.pulumi.azurenative.compute.enums.IPVersions;
import com.pulumi.azurenative.compute.enums.PublicIPAllocationMethod;
import com.pulumi.azurenative.compute.inputs.PublicIPAddressSkuArgs;
import com.pulumi.azurenative.compute.inputs.SubResourceArgs;
import com.pulumi.azurenative.compute.inputs.VirtualMachineIpTagArgs;
import com.pulumi.azurenative.compute.inputs.VirtualMachinePublicIPAddressDnsSettingsConfigurationArgs;
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 IP Configuration's PublicIPAddress configuration
 * 
 */
public final class VirtualMachinePublicIPAddressConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final VirtualMachinePublicIPAddressConfigurationArgs Empty = new VirtualMachinePublicIPAddressConfigurationArgs();

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

    /**
     * @return Specify what happens to the public IP address 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);
    }

    /**
     * Specify the public IP allocation type
     * 
     */
    @Import(name="publicIPAllocationMethod")
    private @Nullable Output> publicIPAllocationMethod;

    /**
     * @return Specify the public IP allocation type
     * 
     */
    public Optional>> publicIPAllocationMethod() {
        return Optional.ofNullable(this.publicIPAllocationMethod);
    }

    /**
     * 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 VirtualMachinePublicIPAddressConfigurationArgs() {}

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

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

    public static final class Builder {
        private VirtualMachinePublicIPAddressConfigurationArgs $;

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

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

        /**
         * @param deleteOption Specify what happens to the public IP address 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 address 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 address 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 address 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(VirtualMachinePublicIPAddressDnsSettingsConfigurationArgs 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(VirtualMachineIpTagArgs... 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(IPVersions publicIPAddressVersion) {
            return publicIPAddressVersion(Either.ofRight(publicIPAddressVersion));
        }

        /**
         * @param publicIPAllocationMethod Specify the public IP allocation type
         * 
         * @return builder
         * 
         */
        public Builder publicIPAllocationMethod(@Nullable Output> publicIPAllocationMethod) {
            $.publicIPAllocationMethod = publicIPAllocationMethod;
            return this;
        }

        /**
         * @param publicIPAllocationMethod Specify the public IP allocation type
         * 
         * @return builder
         * 
         */
        public Builder publicIPAllocationMethod(Either publicIPAllocationMethod) {
            return publicIPAllocationMethod(Output.of(publicIPAllocationMethod));
        }

        /**
         * @param publicIPAllocationMethod Specify the public IP allocation type
         * 
         * @return builder
         * 
         */
        public Builder publicIPAllocationMethod(String publicIPAllocationMethod) {
            return publicIPAllocationMethod(Either.ofLeft(publicIPAllocationMethod));
        }

        /**
         * @param publicIPAllocationMethod Specify the public IP allocation type
         * 
         * @return builder
         * 
         */
        public Builder publicIPAllocationMethod(PublicIPAllocationMethod publicIPAllocationMethod) {
            return publicIPAllocationMethod(Either.ofRight(publicIPAllocationMethod));
        }

        /**
         * @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 VirtualMachinePublicIPAddressConfigurationArgs build() {
            if ($.name == null) {
                throw new MissingRequiredPropertyException("VirtualMachinePublicIPAddressConfigurationArgs", "name");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy