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

com.pulumi.azurenative.videoanalyzer.inputs.ParameterDeclarationArgs Maven / Gradle / Ivy

There is a newer version: 2.72.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.videoanalyzer.inputs;

import com.pulumi.azurenative.videoanalyzer.enums.ParameterType;
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;


/**
 * Single topology parameter declaration. Declared parameters can and must be referenced throughout the topology and can optionally have default values to be used when they are not defined in the pipelines.
 * 
 */
public final class ParameterDeclarationArgs extends com.pulumi.resources.ResourceArgs {

    public static final ParameterDeclarationArgs Empty = new ParameterDeclarationArgs();

    /**
     * The default value for the parameter to be used if the pipeline does not specify a value.
     * 
     */
    @Import(name="default")
    private @Nullable Output default_;

    /**
     * @return The default value for the parameter to be used if the pipeline does not specify a value.
     * 
     */
    public Optional> default_() {
        return Optional.ofNullable(this.default_);
    }

    /**
     * Description of the parameter.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of the parameter.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

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

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

    /**
     * Type of the parameter.
     * 
     */
    @Import(name="type", required=true)
    private Output> type;

    /**
     * @return Type of the parameter.
     * 
     */
    public Output> type() {
        return this.type;
    }

    private ParameterDeclarationArgs() {}

    private ParameterDeclarationArgs(ParameterDeclarationArgs $) {
        this.default_ = $.default_;
        this.description = $.description;
        this.name = $.name;
        this.type = $.type;
    }

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

    public static final class Builder {
        private ParameterDeclarationArgs $;

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

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

        /**
         * @param default_ The default value for the parameter to be used if the pipeline does not specify a value.
         * 
         * @return builder
         * 
         */
        public Builder default_(@Nullable Output default_) {
            $.default_ = default_;
            return this;
        }

        /**
         * @param default_ The default value for the parameter to be used if the pipeline does not specify a value.
         * 
         * @return builder
         * 
         */
        public Builder default_(String default_) {
            return default_(Output.of(default_));
        }

        /**
         * @param description Description of the parameter.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of the parameter.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

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

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

        /**
         * @param type Type of the parameter.
         * 
         * @return builder
         * 
         */
        public Builder type(Output> type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of the parameter.
         * 
         * @return builder
         * 
         */
        public Builder type(Either type) {
            return type(Output.of(type));
        }

        /**
         * @param type Type of the parameter.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Either.ofLeft(type));
        }

        /**
         * @param type Type of the parameter.
         * 
         * @return builder
         * 
         */
        public Builder type(ParameterType type) {
            return type(Either.ofRight(type));
        }

        public ParameterDeclarationArgs build() {
            if ($.name == null) {
                throw new MissingRequiredPropertyException("ParameterDeclarationArgs", "name");
            }
            if ($.type == null) {
                throw new MissingRequiredPropertyException("ParameterDeclarationArgs", "type");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy