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

com.pulumi.azurenative.networkcloud.L2NetworkArgs 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.HybridAksPluginType;
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.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final L2NetworkArgs Empty = new L2NetworkArgs();

    /**
     * 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 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 L2 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 L2 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 resource ID of the Network Fabric l2IsolationDomain.
     * 
     */
    @Import(name="l2IsolationDomainId", required=true)
    private Output l2IsolationDomainId;

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

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

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

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

    private L2NetworkArgs() {}

    private L2NetworkArgs(L2NetworkArgs $) {
        this.extendedLocation = $.extendedLocation;
        this.hybridAksPluginType = $.hybridAksPluginType;
        this.interfaceName = $.interfaceName;
        this.l2IsolationDomainId = $.l2IsolationDomainId;
        this.l2NetworkName = $.l2NetworkName;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private L2NetworkArgs $;

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

        public Builder(L2NetworkArgs defaults) {
            $ = new L2NetworkArgs(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 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 L2 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 L2 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 l2IsolationDomainId The resource ID of the Network Fabric l2IsolationDomain.
         * 
         * @return builder
         * 
         */
        public Builder l2IsolationDomainId(Output l2IsolationDomainId) {
            $.l2IsolationDomainId = l2IsolationDomainId;
            return this;
        }

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

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

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

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

        public L2NetworkArgs build() {
            if ($.extendedLocation == null) {
                throw new MissingRequiredPropertyException("L2NetworkArgs", "extendedLocation");
            }
            $.hybridAksPluginType = Codegen.stringProp("hybridAksPluginType").left(HybridAksPluginType.class).output().arg($.hybridAksPluginType).def("SRIOV").getNullable();
            if ($.l2IsolationDomainId == null) {
                throw new MissingRequiredPropertyException("L2NetworkArgs", "l2IsolationDomainId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("L2NetworkArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy