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

com.pulumi.azurenative.containerinstance.inputs.IpAddressArgs 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.containerinstance.inputs;

import com.pulumi.azurenative.containerinstance.enums.ContainerGroupIpAddressType;
import com.pulumi.azurenative.containerinstance.enums.DnsNameLabelReusePolicy;
import com.pulumi.azurenative.containerinstance.inputs.PortArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * IP address for the container group.
 * 
 */
public final class IpAddressArgs extends com.pulumi.resources.ResourceArgs {

    public static final IpAddressArgs Empty = new IpAddressArgs();

    /**
     * The value representing the security enum. The 'Unsecure' value is the default value if not selected and means the object's domain name label is not secured against subdomain takeover. The 'TenantReuse' value is the default value if selected and means the object's domain name label can be reused within the same tenant. The 'SubscriptionReuse' value means the object's domain name label can be reused within the same subscription. The 'ResourceGroupReuse' value means the object's domain name label can be reused within the same resource group. The 'NoReuse' value means the object's domain name label cannot be reused within the same resource group, subscription, or tenant.
     * 
     */
    @Import(name="autoGeneratedDomainNameLabelScope")
    private @Nullable Output> autoGeneratedDomainNameLabelScope;

    /**
     * @return The value representing the security enum. The 'Unsecure' value is the default value if not selected and means the object's domain name label is not secured against subdomain takeover. The 'TenantReuse' value is the default value if selected and means the object's domain name label can be reused within the same tenant. The 'SubscriptionReuse' value means the object's domain name label can be reused within the same subscription. The 'ResourceGroupReuse' value means the object's domain name label can be reused within the same resource group. The 'NoReuse' value means the object's domain name label cannot be reused within the same resource group, subscription, or tenant.
     * 
     */
    public Optional>> autoGeneratedDomainNameLabelScope() {
        return Optional.ofNullable(this.autoGeneratedDomainNameLabelScope);
    }

    /**
     * The Dns name label for the IP.
     * 
     */
    @Import(name="dnsNameLabel")
    private @Nullable Output dnsNameLabel;

    /**
     * @return The Dns name label for the IP.
     * 
     */
    public Optional> dnsNameLabel() {
        return Optional.ofNullable(this.dnsNameLabel);
    }

    /**
     * The IP exposed to the public internet.
     * 
     */
    @Import(name="ip")
    private @Nullable Output ip;

    /**
     * @return The IP exposed to the public internet.
     * 
     */
    public Optional> ip() {
        return Optional.ofNullable(this.ip);
    }

    /**
     * The list of ports exposed on the container group.
     * 
     */
    @Import(name="ports", required=true)
    private Output> ports;

    /**
     * @return The list of ports exposed on the container group.
     * 
     */
    public Output> ports() {
        return this.ports;
    }

    /**
     * Specifies if the IP is exposed to the public internet or private VNET.
     * 
     */
    @Import(name="type", required=true)
    private Output> type;

    /**
     * @return Specifies if the IP is exposed to the public internet or private VNET.
     * 
     */
    public Output> type() {
        return this.type;
    }

    private IpAddressArgs() {}

    private IpAddressArgs(IpAddressArgs $) {
        this.autoGeneratedDomainNameLabelScope = $.autoGeneratedDomainNameLabelScope;
        this.dnsNameLabel = $.dnsNameLabel;
        this.ip = $.ip;
        this.ports = $.ports;
        this.type = $.type;
    }

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

    public static final class Builder {
        private IpAddressArgs $;

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

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

        /**
         * @param autoGeneratedDomainNameLabelScope The value representing the security enum. The 'Unsecure' value is the default value if not selected and means the object's domain name label is not secured against subdomain takeover. The 'TenantReuse' value is the default value if selected and means the object's domain name label can be reused within the same tenant. The 'SubscriptionReuse' value means the object's domain name label can be reused within the same subscription. The 'ResourceGroupReuse' value means the object's domain name label can be reused within the same resource group. The 'NoReuse' value means the object's domain name label cannot be reused within the same resource group, subscription, or tenant.
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(@Nullable Output> autoGeneratedDomainNameLabelScope) {
            $.autoGeneratedDomainNameLabelScope = autoGeneratedDomainNameLabelScope;
            return this;
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The value representing the security enum. The 'Unsecure' value is the default value if not selected and means the object's domain name label is not secured against subdomain takeover. The 'TenantReuse' value is the default value if selected and means the object's domain name label can be reused within the same tenant. The 'SubscriptionReuse' value means the object's domain name label can be reused within the same subscription. The 'ResourceGroupReuse' value means the object's domain name label can be reused within the same resource group. The 'NoReuse' value means the object's domain name label cannot be reused within the same resource group, subscription, or tenant.
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(Either autoGeneratedDomainNameLabelScope) {
            return autoGeneratedDomainNameLabelScope(Output.of(autoGeneratedDomainNameLabelScope));
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The value representing the security enum. The 'Unsecure' value is the default value if not selected and means the object's domain name label is not secured against subdomain takeover. The 'TenantReuse' value is the default value if selected and means the object's domain name label can be reused within the same tenant. The 'SubscriptionReuse' value means the object's domain name label can be reused within the same subscription. The 'ResourceGroupReuse' value means the object's domain name label can be reused within the same resource group. The 'NoReuse' value means the object's domain name label cannot be reused within the same resource group, subscription, or tenant.
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(String autoGeneratedDomainNameLabelScope) {
            return autoGeneratedDomainNameLabelScope(Either.ofLeft(autoGeneratedDomainNameLabelScope));
        }

        /**
         * @param autoGeneratedDomainNameLabelScope The value representing the security enum. The 'Unsecure' value is the default value if not selected and means the object's domain name label is not secured against subdomain takeover. The 'TenantReuse' value is the default value if selected and means the object's domain name label can be reused within the same tenant. The 'SubscriptionReuse' value means the object's domain name label can be reused within the same subscription. The 'ResourceGroupReuse' value means the object's domain name label can be reused within the same resource group. The 'NoReuse' value means the object's domain name label cannot be reused within the same resource group, subscription, or tenant.
         * 
         * @return builder
         * 
         */
        public Builder autoGeneratedDomainNameLabelScope(DnsNameLabelReusePolicy autoGeneratedDomainNameLabelScope) {
            return autoGeneratedDomainNameLabelScope(Either.ofRight(autoGeneratedDomainNameLabelScope));
        }

        /**
         * @param dnsNameLabel The Dns name label for the IP.
         * 
         * @return builder
         * 
         */
        public Builder dnsNameLabel(@Nullable Output dnsNameLabel) {
            $.dnsNameLabel = dnsNameLabel;
            return this;
        }

        /**
         * @param dnsNameLabel The Dns name label for the IP.
         * 
         * @return builder
         * 
         */
        public Builder dnsNameLabel(String dnsNameLabel) {
            return dnsNameLabel(Output.of(dnsNameLabel));
        }

        /**
         * @param ip The IP exposed to the public internet.
         * 
         * @return builder
         * 
         */
        public Builder ip(@Nullable Output ip) {
            $.ip = ip;
            return this;
        }

        /**
         * @param ip The IP exposed to the public internet.
         * 
         * @return builder
         * 
         */
        public Builder ip(String ip) {
            return ip(Output.of(ip));
        }

        /**
         * @param ports The list of ports exposed on the container group.
         * 
         * @return builder
         * 
         */
        public Builder ports(Output> ports) {
            $.ports = ports;
            return this;
        }

        /**
         * @param ports The list of ports exposed on the container group.
         * 
         * @return builder
         * 
         */
        public Builder ports(List ports) {
            return ports(Output.of(ports));
        }

        /**
         * @param ports The list of ports exposed on the container group.
         * 
         * @return builder
         * 
         */
        public Builder ports(PortArgs... ports) {
            return ports(List.of(ports));
        }

        /**
         * @param type Specifies if the IP is exposed to the public internet or private VNET.
         * 
         * @return builder
         * 
         */
        public Builder type(Output> type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Specifies if the IP is exposed to the public internet or private VNET.
         * 
         * @return builder
         * 
         */
        public Builder type(Either type) {
            return type(Output.of(type));
        }

        /**
         * @param type Specifies if the IP is exposed to the public internet or private VNET.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Either.ofLeft(type));
        }

        /**
         * @param type Specifies if the IP is exposed to the public internet or private VNET.
         * 
         * @return builder
         * 
         */
        public Builder type(ContainerGroupIpAddressType type) {
            return type(Either.ofRight(type));
        }

        public IpAddressArgs build() {
            $.autoGeneratedDomainNameLabelScope = Codegen.stringProp("autoGeneratedDomainNameLabelScope").left(DnsNameLabelReusePolicy.class).output().arg($.autoGeneratedDomainNameLabelScope).def("Unsecure").getNullable();
            if ($.ports == null) {
                throw new MissingRequiredPropertyException("IpAddressArgs", "ports");
            }
            if ($.type == null) {
                throw new MissingRequiredPropertyException("IpAddressArgs", "type");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy