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

com.pulumi.azurenative.networkcloud.L3NetworkArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.networkcloud;

import com.pulumi.azurenative.networkcloud.enums.HybridAksIpamEnabled;
import com.pulumi.azurenative.networkcloud.enums.HybridAksPluginType;
import com.pulumi.azurenative.networkcloud.enums.IpAllocationType;
import com.pulumi.azurenative.networkcloud.inputs.ExtendedLocationArgs;
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.Double;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final L3NetworkArgs Empty = new L3NetworkArgs();

    /**
     * The extended location of the cluster associated with the resource.
     * 
     */
    @Import(name="extendedLocation", required=true)
    private Output extendedLocation;

    /**
     * @return The extended location of the cluster associated with the resource.
     * 
     */
    public Output extendedLocation() {
        return this.extendedLocation;
    }

    /**
     * Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The indicator of whether or not to disable IPAM allocation on the network attachment definition injected into the Hybrid AKS Cluster.
     * 
     */
    @Import(name="hybridAksIpamEnabled")
    private @Nullable Output> hybridAksIpamEnabled;

    /**
     * @return Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The indicator of whether or not to disable IPAM allocation on the network attachment definition injected into the Hybrid AKS Cluster.
     * 
     */
    public Optional>> hybridAksIpamEnabled() {
        return Optional.ofNullable(this.hybridAksIpamEnabled);
    }

    /**
     * Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The network plugin type for Hybrid AKS.
     * 
     */
    @Import(name="hybridAksPluginType")
    private @Nullable Output> hybridAksPluginType;

    /**
     * @return Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The network plugin type for Hybrid AKS.
     * 
     */
    public Optional>> hybridAksPluginType() {
        return Optional.ofNullable(this.hybridAksPluginType);
    }

    /**
     * The default interface name for this L3 network in the virtual machine. This name can be overridden by the name supplied in the network attachment configuration of that virtual machine.
     * 
     */
    @Import(name="interfaceName")
    private @Nullable Output interfaceName;

    /**
     * @return The default interface name for this L3 network in the virtual machine. This name can be overridden by the name supplied in the network attachment configuration of that virtual machine.
     * 
     */
    public Optional> interfaceName() {
        return Optional.ofNullable(this.interfaceName);
    }

    /**
     * The type of the IP address allocation, defaulted to "DualStack".
     * 
     */
    @Import(name="ipAllocationType")
    private @Nullable Output> ipAllocationType;

    /**
     * @return The type of the IP address allocation, defaulted to "DualStack".
     * 
     */
    public Optional>> ipAllocationType() {
        return Optional.ofNullable(this.ipAllocationType);
    }

    /**
     * The IPV4 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
     * is IPV4 or DualStack.
     * 
     */
    @Import(name="ipv4ConnectedPrefix")
    private @Nullable Output ipv4ConnectedPrefix;

    /**
     * @return The IPV4 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
     * is IPV4 or DualStack.
     * 
     */
    public Optional> ipv4ConnectedPrefix() {
        return Optional.ofNullable(this.ipv4ConnectedPrefix);
    }

    /**
     * The IPV6 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
     * is IPV6 or DualStack.
     * 
     */
    @Import(name="ipv6ConnectedPrefix")
    private @Nullable Output ipv6ConnectedPrefix;

    /**
     * @return The IPV6 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
     * is IPV6 or DualStack.
     * 
     */
    public Optional> ipv6ConnectedPrefix() {
        return Optional.ofNullable(this.ipv6ConnectedPrefix);
    }

    /**
     * The resource ID of the Network Fabric l3IsolationDomain.
     * 
     */
    @Import(name="l3IsolationDomainId", required=true)
    private Output l3IsolationDomainId;

    /**
     * @return The resource ID of the Network Fabric l3IsolationDomain.
     * 
     */
    public Output l3IsolationDomainId() {
        return this.l3IsolationDomainId;
    }

    /**
     * The name of the L3 network.
     * 
     */
    @Import(name="l3NetworkName")
    private @Nullable Output l3NetworkName;

    /**
     * @return The name of the L3 network.
     * 
     */
    public Optional> l3NetworkName() {
        return Optional.ofNullable(this.l3NetworkName);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

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

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

    /**
     * The VLAN from the l3IsolationDomain that is used for this network.
     * 
     */
    @Import(name="vlan", required=true)
    private Output vlan;

    /**
     * @return The VLAN from the l3IsolationDomain that is used for this network.
     * 
     */
    public Output vlan() {
        return this.vlan;
    }

    private L3NetworkArgs() {}

    private L3NetworkArgs(L3NetworkArgs $) {
        this.extendedLocation = $.extendedLocation;
        this.hybridAksIpamEnabled = $.hybridAksIpamEnabled;
        this.hybridAksPluginType = $.hybridAksPluginType;
        this.interfaceName = $.interfaceName;
        this.ipAllocationType = $.ipAllocationType;
        this.ipv4ConnectedPrefix = $.ipv4ConnectedPrefix;
        this.ipv6ConnectedPrefix = $.ipv6ConnectedPrefix;
        this.l3IsolationDomainId = $.l3IsolationDomainId;
        this.l3NetworkName = $.l3NetworkName;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.vlan = $.vlan;
    }

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

    public static final class Builder {
        private L3NetworkArgs $;

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

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

        /**
         * @param extendedLocation The extended location of the cluster associated with the resource.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(Output extendedLocation) {
            $.extendedLocation = extendedLocation;
            return this;
        }

        /**
         * @param extendedLocation The extended location of the cluster associated with the resource.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
            return extendedLocation(Output.of(extendedLocation));
        }

        /**
         * @param hybridAksIpamEnabled Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The indicator of whether or not to disable IPAM allocation on the network attachment definition injected into the Hybrid AKS Cluster.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksIpamEnabled(@Nullable Output> hybridAksIpamEnabled) {
            $.hybridAksIpamEnabled = hybridAksIpamEnabled;
            return this;
        }

        /**
         * @param hybridAksIpamEnabled Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The indicator of whether or not to disable IPAM allocation on the network attachment definition injected into the Hybrid AKS Cluster.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksIpamEnabled(Either hybridAksIpamEnabled) {
            return hybridAksIpamEnabled(Output.of(hybridAksIpamEnabled));
        }

        /**
         * @param hybridAksIpamEnabled Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The indicator of whether or not to disable IPAM allocation on the network attachment definition injected into the Hybrid AKS Cluster.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksIpamEnabled(String hybridAksIpamEnabled) {
            return hybridAksIpamEnabled(Either.ofLeft(hybridAksIpamEnabled));
        }

        /**
         * @param hybridAksIpamEnabled Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The indicator of whether or not to disable IPAM allocation on the network attachment definition injected into the Hybrid AKS Cluster.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksIpamEnabled(HybridAksIpamEnabled hybridAksIpamEnabled) {
            return hybridAksIpamEnabled(Either.ofRight(hybridAksIpamEnabled));
        }

        /**
         * @param hybridAksPluginType Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The network plugin type for Hybrid AKS.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksPluginType(@Nullable Output> hybridAksPluginType) {
            $.hybridAksPluginType = hybridAksPluginType;
            return this;
        }

        /**
         * @param hybridAksPluginType Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The network plugin type for Hybrid AKS.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksPluginType(Either hybridAksPluginType) {
            return hybridAksPluginType(Output.of(hybridAksPluginType));
        }

        /**
         * @param hybridAksPluginType Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The network plugin type for Hybrid AKS.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksPluginType(String hybridAksPluginType) {
            return hybridAksPluginType(Either.ofLeft(hybridAksPluginType));
        }

        /**
         * @param hybridAksPluginType Field Deprecated. The field was previously optional, now it will have no defined behavior and will be ignored. The network plugin type for Hybrid AKS.
         * 
         * @return builder
         * 
         */
        public Builder hybridAksPluginType(HybridAksPluginType hybridAksPluginType) {
            return hybridAksPluginType(Either.ofRight(hybridAksPluginType));
        }

        /**
         * @param interfaceName The default interface name for this L3 network in the virtual machine. This name can be overridden by the name supplied in the network attachment configuration of that virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder interfaceName(@Nullable Output interfaceName) {
            $.interfaceName = interfaceName;
            return this;
        }

        /**
         * @param interfaceName The default interface name for this L3 network in the virtual machine. This name can be overridden by the name supplied in the network attachment configuration of that virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder interfaceName(String interfaceName) {
            return interfaceName(Output.of(interfaceName));
        }

        /**
         * @param ipAllocationType The type of the IP address allocation, defaulted to "DualStack".
         * 
         * @return builder
         * 
         */
        public Builder ipAllocationType(@Nullable Output> ipAllocationType) {
            $.ipAllocationType = ipAllocationType;
            return this;
        }

        /**
         * @param ipAllocationType The type of the IP address allocation, defaulted to "DualStack".
         * 
         * @return builder
         * 
         */
        public Builder ipAllocationType(Either ipAllocationType) {
            return ipAllocationType(Output.of(ipAllocationType));
        }

        /**
         * @param ipAllocationType The type of the IP address allocation, defaulted to "DualStack".
         * 
         * @return builder
         * 
         */
        public Builder ipAllocationType(String ipAllocationType) {
            return ipAllocationType(Either.ofLeft(ipAllocationType));
        }

        /**
         * @param ipAllocationType The type of the IP address allocation, defaulted to "DualStack".
         * 
         * @return builder
         * 
         */
        public Builder ipAllocationType(IpAllocationType ipAllocationType) {
            return ipAllocationType(Either.ofRight(ipAllocationType));
        }

        /**
         * @param ipv4ConnectedPrefix The IPV4 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
         * is IPV4 or DualStack.
         * 
         * @return builder
         * 
         */
        public Builder ipv4ConnectedPrefix(@Nullable Output ipv4ConnectedPrefix) {
            $.ipv4ConnectedPrefix = ipv4ConnectedPrefix;
            return this;
        }

        /**
         * @param ipv4ConnectedPrefix The IPV4 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
         * is IPV4 or DualStack.
         * 
         * @return builder
         * 
         */
        public Builder ipv4ConnectedPrefix(String ipv4ConnectedPrefix) {
            return ipv4ConnectedPrefix(Output.of(ipv4ConnectedPrefix));
        }

        /**
         * @param ipv6ConnectedPrefix The IPV6 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
         * is IPV6 or DualStack.
         * 
         * @return builder
         * 
         */
        public Builder ipv6ConnectedPrefix(@Nullable Output ipv6ConnectedPrefix) {
            $.ipv6ConnectedPrefix = ipv6ConnectedPrefix;
            return this;
        }

        /**
         * @param ipv6ConnectedPrefix The IPV6 prefix (CIDR) assigned to this L3 network. Required when the IP allocation type
         * is IPV6 or DualStack.
         * 
         * @return builder
         * 
         */
        public Builder ipv6ConnectedPrefix(String ipv6ConnectedPrefix) {
            return ipv6ConnectedPrefix(Output.of(ipv6ConnectedPrefix));
        }

        /**
         * @param l3IsolationDomainId The resource ID of the Network Fabric l3IsolationDomain.
         * 
         * @return builder
         * 
         */
        public Builder l3IsolationDomainId(Output l3IsolationDomainId) {
            $.l3IsolationDomainId = l3IsolationDomainId;
            return this;
        }

        /**
         * @param l3IsolationDomainId The resource ID of the Network Fabric l3IsolationDomain.
         * 
         * @return builder
         * 
         */
        public Builder l3IsolationDomainId(String l3IsolationDomainId) {
            return l3IsolationDomainId(Output.of(l3IsolationDomainId));
        }

        /**
         * @param l3NetworkName The name of the L3 network.
         * 
         * @return builder
         * 
         */
        public Builder l3NetworkName(@Nullable Output l3NetworkName) {
            $.l3NetworkName = l3NetworkName;
            return this;
        }

        /**
         * @param l3NetworkName The name of the L3 network.
         * 
         * @return builder
         * 
         */
        public Builder l3NetworkName(String l3NetworkName) {
            return l3NetworkName(Output.of(l3NetworkName));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

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

        /**
         * @param vlan The VLAN from the l3IsolationDomain that is used for this network.
         * 
         * @return builder
         * 
         */
        public Builder vlan(Output vlan) {
            $.vlan = vlan;
            return this;
        }

        /**
         * @param vlan The VLAN from the l3IsolationDomain that is used for this network.
         * 
         * @return builder
         * 
         */
        public Builder vlan(Double vlan) {
            return vlan(Output.of(vlan));
        }

        public L3NetworkArgs build() {
            if ($.extendedLocation == null) {
                throw new MissingRequiredPropertyException("L3NetworkArgs", "extendedLocation");
            }
            $.hybridAksIpamEnabled = Codegen.stringProp("hybridAksIpamEnabled").left(HybridAksIpamEnabled.class).output().arg($.hybridAksIpamEnabled).def("True").getNullable();
            $.hybridAksPluginType = Codegen.stringProp("hybridAksPluginType").left(HybridAksPluginType.class).output().arg($.hybridAksPluginType).def("SRIOV").getNullable();
            $.ipAllocationType = Codegen.stringProp("ipAllocationType").left(IpAllocationType.class).output().arg($.ipAllocationType).def("DualStack").getNullable();
            if ($.l3IsolationDomainId == null) {
                throw new MissingRequiredPropertyException("L3NetworkArgs", "l3IsolationDomainId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("L3NetworkArgs", "resourceGroupName");
            }
            if ($.vlan == null) {
                throw new MissingRequiredPropertyException("L3NetworkArgs", "vlan");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy