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

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

There is a newer version: 2.82.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.Double;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final TrunkedNetworkArgs Empty = new TrunkedNetworkArgs();

    /**
     * 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 trunked 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 trunked 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 list of resource IDs representing the Network Fabric isolation domains. It can be any combination of l2IsolationDomain and l3IsolationDomain resources.
     * 
     */
    @Import(name="isolationDomainIds", required=true)
    private Output> isolationDomainIds;

    /**
     * @return The list of resource IDs representing the Network Fabric isolation domains. It can be any combination of l2IsolationDomain and l3IsolationDomain resources.
     * 
     */
    public Output> isolationDomainIds() {
        return this.isolationDomainIds;
    }

    /**
     * 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 name of the trunked network.
     * 
     */
    @Import(name="trunkedNetworkName")
    private @Nullable Output trunkedNetworkName;

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

    /**
     * The list of vlans that are selected from the isolation domains for trunking.
     * 
     */
    @Import(name="vlans", required=true)
    private Output> vlans;

    /**
     * @return The list of vlans that are selected from the isolation domains for trunking.
     * 
     */
    public Output> vlans() {
        return this.vlans;
    }

    private TrunkedNetworkArgs() {}

    private TrunkedNetworkArgs(TrunkedNetworkArgs $) {
        this.extendedLocation = $.extendedLocation;
        this.hybridAksPluginType = $.hybridAksPluginType;
        this.interfaceName = $.interfaceName;
        this.isolationDomainIds = $.isolationDomainIds;
        this.location = $.location;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.trunkedNetworkName = $.trunkedNetworkName;
        this.vlans = $.vlans;
    }

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

    public static final class Builder {
        private TrunkedNetworkArgs $;

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

        public Builder(TrunkedNetworkArgs defaults) {
            $ = new TrunkedNetworkArgs(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 trunked 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 trunked 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 isolationDomainIds The list of resource IDs representing the Network Fabric isolation domains. It can be any combination of l2IsolationDomain and l3IsolationDomain resources.
         * 
         * @return builder
         * 
         */
        public Builder isolationDomainIds(Output> isolationDomainIds) {
            $.isolationDomainIds = isolationDomainIds;
            return this;
        }

        /**
         * @param isolationDomainIds The list of resource IDs representing the Network Fabric isolation domains. It can be any combination of l2IsolationDomain and l3IsolationDomain resources.
         * 
         * @return builder
         * 
         */
        public Builder isolationDomainIds(List isolationDomainIds) {
            return isolationDomainIds(Output.of(isolationDomainIds));
        }

        /**
         * @param isolationDomainIds The list of resource IDs representing the Network Fabric isolation domains. It can be any combination of l2IsolationDomain and l3IsolationDomain resources.
         * 
         * @return builder
         * 
         */
        public Builder isolationDomainIds(String... isolationDomainIds) {
            return isolationDomainIds(List.of(isolationDomainIds));
        }

        /**
         * @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 trunkedNetworkName The name of the trunked network.
         * 
         * @return builder
         * 
         */
        public Builder trunkedNetworkName(@Nullable Output trunkedNetworkName) {
            $.trunkedNetworkName = trunkedNetworkName;
            return this;
        }

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

        /**
         * @param vlans The list of vlans that are selected from the isolation domains for trunking.
         * 
         * @return builder
         * 
         */
        public Builder vlans(Output> vlans) {
            $.vlans = vlans;
            return this;
        }

        /**
         * @param vlans The list of vlans that are selected from the isolation domains for trunking.
         * 
         * @return builder
         * 
         */
        public Builder vlans(List vlans) {
            return vlans(Output.of(vlans));
        }

        /**
         * @param vlans The list of vlans that are selected from the isolation domains for trunking.
         * 
         * @return builder
         * 
         */
        public Builder vlans(Double... vlans) {
            return vlans(List.of(vlans));
        }

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy