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

com.pulumi.azurenative.hybridnetwork.VendorSkusArgs 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.hybridnetwork;

import com.pulumi.azurenative.hybridnetwork.enums.NetworkFunctionType;
import com.pulumi.azurenative.hybridnetwork.enums.SkuDeploymentMode;
import com.pulumi.azurenative.hybridnetwork.enums.SkuType;
import com.pulumi.azurenative.hybridnetwork.inputs.NetworkFunctionTemplateArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Object;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final VendorSkusArgs Empty = new VendorSkusArgs();

    /**
     * The sku deployment mode.
     * 
     */
    @Import(name="deploymentMode")
    private @Nullable Output> deploymentMode;

    /**
     * @return The sku deployment mode.
     * 
     */
    public Optional>> deploymentMode() {
        return Optional.ofNullable(this.deploymentMode);
    }

    /**
     * The parameters for the managed application to be supplied by the vendor.
     * 
     */
    @Import(name="managedApplicationParameters")
    private @Nullable Output managedApplicationParameters;

    /**
     * @return The parameters for the managed application to be supplied by the vendor.
     * 
     */
    public Optional> managedApplicationParameters() {
        return Optional.ofNullable(this.managedApplicationParameters);
    }

    /**
     * The template for the managed application deployment.
     * 
     */
    @Import(name="managedApplicationTemplate")
    private @Nullable Output managedApplicationTemplate;

    /**
     * @return The template for the managed application deployment.
     * 
     */
    public Optional> managedApplicationTemplate() {
        return Optional.ofNullable(this.managedApplicationTemplate);
    }

    /**
     * The template definition of the network function.
     * 
     */
    @Import(name="networkFunctionTemplate")
    private @Nullable Output networkFunctionTemplate;

    /**
     * @return The template definition of the network function.
     * 
     */
    public Optional> networkFunctionTemplate() {
        return Optional.ofNullable(this.networkFunctionTemplate);
    }

    /**
     * The network function type.
     * 
     */
    @Import(name="networkFunctionType")
    private @Nullable Output> networkFunctionType;

    /**
     * @return The network function type.
     * 
     */
    public Optional>> networkFunctionType() {
        return Optional.ofNullable(this.networkFunctionType);
    }

    /**
     * Indicates if the vendor sku is in preview mode.
     * 
     */
    @Import(name="preview")
    private @Nullable Output preview;

    /**
     * @return Indicates if the vendor sku is in preview mode.
     * 
     */
    public Optional> preview() {
        return Optional.ofNullable(this.preview);
    }

    /**
     * The name of the sku.
     * 
     */
    @Import(name="skuName")
    private @Nullable Output skuName;

    /**
     * @return The name of the sku.
     * 
     */
    public Optional> skuName() {
        return Optional.ofNullable(this.skuName);
    }

    /**
     * The sku type.
     * 
     */
    @Import(name="skuType")
    private @Nullable Output> skuType;

    /**
     * @return The sku type.
     * 
     */
    public Optional>> skuType() {
        return Optional.ofNullable(this.skuType);
    }

    /**
     * The name of the vendor.
     * 
     */
    @Import(name="vendorName", required=true)
    private Output vendorName;

    /**
     * @return The name of the vendor.
     * 
     */
    public Output vendorName() {
        return this.vendorName;
    }

    private VendorSkusArgs() {}

    private VendorSkusArgs(VendorSkusArgs $) {
        this.deploymentMode = $.deploymentMode;
        this.managedApplicationParameters = $.managedApplicationParameters;
        this.managedApplicationTemplate = $.managedApplicationTemplate;
        this.networkFunctionTemplate = $.networkFunctionTemplate;
        this.networkFunctionType = $.networkFunctionType;
        this.preview = $.preview;
        this.skuName = $.skuName;
        this.skuType = $.skuType;
        this.vendorName = $.vendorName;
    }

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

    public static final class Builder {
        private VendorSkusArgs $;

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

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

        /**
         * @param deploymentMode The sku deployment mode.
         * 
         * @return builder
         * 
         */
        public Builder deploymentMode(@Nullable Output> deploymentMode) {
            $.deploymentMode = deploymentMode;
            return this;
        }

        /**
         * @param deploymentMode The sku deployment mode.
         * 
         * @return builder
         * 
         */
        public Builder deploymentMode(Either deploymentMode) {
            return deploymentMode(Output.of(deploymentMode));
        }

        /**
         * @param deploymentMode The sku deployment mode.
         * 
         * @return builder
         * 
         */
        public Builder deploymentMode(String deploymentMode) {
            return deploymentMode(Either.ofLeft(deploymentMode));
        }

        /**
         * @param deploymentMode The sku deployment mode.
         * 
         * @return builder
         * 
         */
        public Builder deploymentMode(SkuDeploymentMode deploymentMode) {
            return deploymentMode(Either.ofRight(deploymentMode));
        }

        /**
         * @param managedApplicationParameters The parameters for the managed application to be supplied by the vendor.
         * 
         * @return builder
         * 
         */
        public Builder managedApplicationParameters(@Nullable Output managedApplicationParameters) {
            $.managedApplicationParameters = managedApplicationParameters;
            return this;
        }

        /**
         * @param managedApplicationParameters The parameters for the managed application to be supplied by the vendor.
         * 
         * @return builder
         * 
         */
        public Builder managedApplicationParameters(Object managedApplicationParameters) {
            return managedApplicationParameters(Output.of(managedApplicationParameters));
        }

        /**
         * @param managedApplicationTemplate The template for the managed application deployment.
         * 
         * @return builder
         * 
         */
        public Builder managedApplicationTemplate(@Nullable Output managedApplicationTemplate) {
            $.managedApplicationTemplate = managedApplicationTemplate;
            return this;
        }

        /**
         * @param managedApplicationTemplate The template for the managed application deployment.
         * 
         * @return builder
         * 
         */
        public Builder managedApplicationTemplate(Object managedApplicationTemplate) {
            return managedApplicationTemplate(Output.of(managedApplicationTemplate));
        }

        /**
         * @param networkFunctionTemplate The template definition of the network function.
         * 
         * @return builder
         * 
         */
        public Builder networkFunctionTemplate(@Nullable Output networkFunctionTemplate) {
            $.networkFunctionTemplate = networkFunctionTemplate;
            return this;
        }

        /**
         * @param networkFunctionTemplate The template definition of the network function.
         * 
         * @return builder
         * 
         */
        public Builder networkFunctionTemplate(NetworkFunctionTemplateArgs networkFunctionTemplate) {
            return networkFunctionTemplate(Output.of(networkFunctionTemplate));
        }

        /**
         * @param networkFunctionType The network function type.
         * 
         * @return builder
         * 
         */
        public Builder networkFunctionType(@Nullable Output> networkFunctionType) {
            $.networkFunctionType = networkFunctionType;
            return this;
        }

        /**
         * @param networkFunctionType The network function type.
         * 
         * @return builder
         * 
         */
        public Builder networkFunctionType(Either networkFunctionType) {
            return networkFunctionType(Output.of(networkFunctionType));
        }

        /**
         * @param networkFunctionType The network function type.
         * 
         * @return builder
         * 
         */
        public Builder networkFunctionType(String networkFunctionType) {
            return networkFunctionType(Either.ofLeft(networkFunctionType));
        }

        /**
         * @param networkFunctionType The network function type.
         * 
         * @return builder
         * 
         */
        public Builder networkFunctionType(NetworkFunctionType networkFunctionType) {
            return networkFunctionType(Either.ofRight(networkFunctionType));
        }

        /**
         * @param preview Indicates if the vendor sku is in preview mode.
         * 
         * @return builder
         * 
         */
        public Builder preview(@Nullable Output preview) {
            $.preview = preview;
            return this;
        }

        /**
         * @param preview Indicates if the vendor sku is in preview mode.
         * 
         * @return builder
         * 
         */
        public Builder preview(Boolean preview) {
            return preview(Output.of(preview));
        }

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

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

        /**
         * @param skuType The sku type.
         * 
         * @return builder
         * 
         */
        public Builder skuType(@Nullable Output> skuType) {
            $.skuType = skuType;
            return this;
        }

        /**
         * @param skuType The sku type.
         * 
         * @return builder
         * 
         */
        public Builder skuType(Either skuType) {
            return skuType(Output.of(skuType));
        }

        /**
         * @param skuType The sku type.
         * 
         * @return builder
         * 
         */
        public Builder skuType(String skuType) {
            return skuType(Either.ofLeft(skuType));
        }

        /**
         * @param skuType The sku type.
         * 
         * @return builder
         * 
         */
        public Builder skuType(SkuType skuType) {
            return skuType(Either.ofRight(skuType));
        }

        /**
         * @param vendorName The name of the vendor.
         * 
         * @return builder
         * 
         */
        public Builder vendorName(Output vendorName) {
            $.vendorName = vendorName;
            return this;
        }

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

        public VendorSkusArgs build() {
            if ($.vendorName == null) {
                throw new MissingRequiredPropertyException("VendorSkusArgs", "vendorName");
            }
            return $;
        }
    }

}