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

com.pulumi.azurenative.managednetworkfabric.ExternalNetworkArgs 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.managednetworkfabric;

import com.pulumi.azurenative.managednetworkfabric.enums.PeeringOption;
import com.pulumi.azurenative.managednetworkfabric.inputs.ExternalNetworkPropertiesOptionAPropertiesArgs;
import com.pulumi.azurenative.managednetworkfabric.inputs.OptionBPropertiesArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ExternalNetworkArgs Empty = new ExternalNetworkArgs();

    /**
     * Switch configuration description.
     * 
     */
    @Import(name="annotation")
    private @Nullable Output annotation;

    /**
     * @return Switch configuration description.
     * 
     */
    public Optional> annotation() {
        return Optional.ofNullable(this.annotation);
    }

    /**
     * ARM resource ID of exportRoutePolicy.
     * 
     */
    @Import(name="exportRoutePolicyId")
    private @Nullable Output exportRoutePolicyId;

    /**
     * @return ARM resource ID of exportRoutePolicy.
     * 
     */
    public Optional> exportRoutePolicyId() {
        return Optional.ofNullable(this.exportRoutePolicyId);
    }

    /**
     * Name of the ExternalNetwork
     * 
     */
    @Import(name="externalNetworkName")
    private @Nullable Output externalNetworkName;

    /**
     * @return Name of the ExternalNetwork
     * 
     */
    public Optional> externalNetworkName() {
        return Optional.ofNullable(this.externalNetworkName);
    }

    /**
     * ARM resource ID of importRoutePolicy.
     * 
     */
    @Import(name="importRoutePolicyId")
    private @Nullable Output importRoutePolicyId;

    /**
     * @return ARM resource ID of importRoutePolicy.
     * 
     */
    public Optional> importRoutePolicyId() {
        return Optional.ofNullable(this.importRoutePolicyId);
    }

    /**
     * Name of the L3IsolationDomain
     * 
     */
    @Import(name="l3IsolationDomainName", required=true)
    private Output l3IsolationDomainName;

    /**
     * @return Name of the L3IsolationDomain
     * 
     */
    public Output l3IsolationDomainName() {
        return this.l3IsolationDomainName;
    }

    /**
     * option A properties object
     * 
     */
    @Import(name="optionAProperties")
    private @Nullable Output optionAProperties;

    /**
     * @return option A properties object
     * 
     */
    public Optional> optionAProperties() {
        return Optional.ofNullable(this.optionAProperties);
    }

    /**
     * option B properties object
     * 
     */
    @Import(name="optionBProperties")
    private @Nullable Output optionBProperties;

    /**
     * @return option B properties object
     * 
     */
    public Optional> optionBProperties() {
        return Optional.ofNullable(this.optionBProperties);
    }

    /**
     * Peering option list.
     * 
     */
    @Import(name="peeringOption", required=true)
    private Output> peeringOption;

    /**
     * @return Peering option list.
     * 
     */
    public Output> peeringOption() {
        return this.peeringOption;
    }

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

    private ExternalNetworkArgs() {}

    private ExternalNetworkArgs(ExternalNetworkArgs $) {
        this.annotation = $.annotation;
        this.exportRoutePolicyId = $.exportRoutePolicyId;
        this.externalNetworkName = $.externalNetworkName;
        this.importRoutePolicyId = $.importRoutePolicyId;
        this.l3IsolationDomainName = $.l3IsolationDomainName;
        this.optionAProperties = $.optionAProperties;
        this.optionBProperties = $.optionBProperties;
        this.peeringOption = $.peeringOption;
        this.resourceGroupName = $.resourceGroupName;
    }

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

    public static final class Builder {
        private ExternalNetworkArgs $;

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

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

        /**
         * @param annotation Switch configuration description.
         * 
         * @return builder
         * 
         */
        public Builder annotation(@Nullable Output annotation) {
            $.annotation = annotation;
            return this;
        }

        /**
         * @param annotation Switch configuration description.
         * 
         * @return builder
         * 
         */
        public Builder annotation(String annotation) {
            return annotation(Output.of(annotation));
        }

        /**
         * @param exportRoutePolicyId ARM resource ID of exportRoutePolicy.
         * 
         * @return builder
         * 
         */
        public Builder exportRoutePolicyId(@Nullable Output exportRoutePolicyId) {
            $.exportRoutePolicyId = exportRoutePolicyId;
            return this;
        }

        /**
         * @param exportRoutePolicyId ARM resource ID of exportRoutePolicy.
         * 
         * @return builder
         * 
         */
        public Builder exportRoutePolicyId(String exportRoutePolicyId) {
            return exportRoutePolicyId(Output.of(exportRoutePolicyId));
        }

        /**
         * @param externalNetworkName Name of the ExternalNetwork
         * 
         * @return builder
         * 
         */
        public Builder externalNetworkName(@Nullable Output externalNetworkName) {
            $.externalNetworkName = externalNetworkName;
            return this;
        }

        /**
         * @param externalNetworkName Name of the ExternalNetwork
         * 
         * @return builder
         * 
         */
        public Builder externalNetworkName(String externalNetworkName) {
            return externalNetworkName(Output.of(externalNetworkName));
        }

        /**
         * @param importRoutePolicyId ARM resource ID of importRoutePolicy.
         * 
         * @return builder
         * 
         */
        public Builder importRoutePolicyId(@Nullable Output importRoutePolicyId) {
            $.importRoutePolicyId = importRoutePolicyId;
            return this;
        }

        /**
         * @param importRoutePolicyId ARM resource ID of importRoutePolicy.
         * 
         * @return builder
         * 
         */
        public Builder importRoutePolicyId(String importRoutePolicyId) {
            return importRoutePolicyId(Output.of(importRoutePolicyId));
        }

        /**
         * @param l3IsolationDomainName Name of the L3IsolationDomain
         * 
         * @return builder
         * 
         */
        public Builder l3IsolationDomainName(Output l3IsolationDomainName) {
            $.l3IsolationDomainName = l3IsolationDomainName;
            return this;
        }

        /**
         * @param l3IsolationDomainName Name of the L3IsolationDomain
         * 
         * @return builder
         * 
         */
        public Builder l3IsolationDomainName(String l3IsolationDomainName) {
            return l3IsolationDomainName(Output.of(l3IsolationDomainName));
        }

        /**
         * @param optionAProperties option A properties object
         * 
         * @return builder
         * 
         */
        public Builder optionAProperties(@Nullable Output optionAProperties) {
            $.optionAProperties = optionAProperties;
            return this;
        }

        /**
         * @param optionAProperties option A properties object
         * 
         * @return builder
         * 
         */
        public Builder optionAProperties(ExternalNetworkPropertiesOptionAPropertiesArgs optionAProperties) {
            return optionAProperties(Output.of(optionAProperties));
        }

        /**
         * @param optionBProperties option B properties object
         * 
         * @return builder
         * 
         */
        public Builder optionBProperties(@Nullable Output optionBProperties) {
            $.optionBProperties = optionBProperties;
            return this;
        }

        /**
         * @param optionBProperties option B properties object
         * 
         * @return builder
         * 
         */
        public Builder optionBProperties(OptionBPropertiesArgs optionBProperties) {
            return optionBProperties(Output.of(optionBProperties));
        }

        /**
         * @param peeringOption Peering option list.
         * 
         * @return builder
         * 
         */
        public Builder peeringOption(Output> peeringOption) {
            $.peeringOption = peeringOption;
            return this;
        }

        /**
         * @param peeringOption Peering option list.
         * 
         * @return builder
         * 
         */
        public Builder peeringOption(Either peeringOption) {
            return peeringOption(Output.of(peeringOption));
        }

        /**
         * @param peeringOption Peering option list.
         * 
         * @return builder
         * 
         */
        public Builder peeringOption(String peeringOption) {
            return peeringOption(Either.ofLeft(peeringOption));
        }

        /**
         * @param peeringOption Peering option list.
         * 
         * @return builder
         * 
         */
        public Builder peeringOption(PeeringOption peeringOption) {
            return peeringOption(Either.ofRight(peeringOption));
        }

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

        public ExternalNetworkArgs build() {
            if ($.l3IsolationDomainName == null) {
                throw new MissingRequiredPropertyException("ExternalNetworkArgs", "l3IsolationDomainName");
            }
            if ($.peeringOption == null) {
                throw new MissingRequiredPropertyException("ExternalNetworkArgs", "peeringOption");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ExternalNetworkArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy