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

com.pulumi.azurenative.resources.inputs.DeploymentPropertiesArgs 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.resources.inputs;

import com.pulumi.azurenative.resources.enums.DeploymentMode;
import com.pulumi.azurenative.resources.inputs.DebugSettingArgs;
import com.pulumi.azurenative.resources.inputs.DeploymentParameterArgs;
import com.pulumi.azurenative.resources.inputs.ExpressionEvaluationOptionsArgs;
import com.pulumi.azurenative.resources.inputs.OnErrorDeploymentArgs;
import com.pulumi.azurenative.resources.inputs.ParametersLinkArgs;
import com.pulumi.azurenative.resources.inputs.TemplateLinkArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Deployment properties.
 * 
 */
public final class DeploymentPropertiesArgs extends com.pulumi.resources.ResourceArgs {

    public static final DeploymentPropertiesArgs Empty = new DeploymentPropertiesArgs();

    /**
     * The debug setting of the deployment.
     * 
     */
    @Import(name="debugSetting")
    private @Nullable Output debugSetting;

    /**
     * @return The debug setting of the deployment.
     * 
     */
    public Optional> debugSetting() {
        return Optional.ofNullable(this.debugSetting);
    }

    /**
     * Specifies whether template expressions are evaluated within the scope of the parent template or nested template. Only applicable to nested templates. If not specified, default value is outer.
     * 
     */
    @Import(name="expressionEvaluationOptions")
    private @Nullable Output expressionEvaluationOptions;

    /**
     * @return Specifies whether template expressions are evaluated within the scope of the parent template or nested template. Only applicable to nested templates. If not specified, default value is outer.
     * 
     */
    public Optional> expressionEvaluationOptions() {
        return Optional.ofNullable(this.expressionEvaluationOptions);
    }

    /**
     * The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources.
     * 
     */
    @Import(name="mode", required=true)
    private Output mode;

    /**
     * @return The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources.
     * 
     */
    public Output mode() {
        return this.mode;
    }

    /**
     * The deployment on error behavior.
     * 
     */
    @Import(name="onErrorDeployment")
    private @Nullable Output onErrorDeployment;

    /**
     * @return The deployment on error behavior.
     * 
     */
    public Optional> onErrorDeployment() {
        return Optional.ofNullable(this.onErrorDeployment);
    }

    /**
     * Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output> parameters;

    /**
     * @return Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
     * 
     */
    public Optional>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both.
     * 
     */
    @Import(name="parametersLink")
    private @Nullable Output parametersLink;

    /**
     * @return The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both.
     * 
     */
    public Optional> parametersLink() {
        return Optional.ofNullable(this.parametersLink);
    }

    /**
     * The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both.
     * 
     */
    @Import(name="template")
    private @Nullable Output template;

    /**
     * @return The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both.
     * 
     */
    public Optional> template() {
        return Optional.ofNullable(this.template);
    }

    /**
     * The URI of the template. Use either the templateLink property or the template property, but not both.
     * 
     */
    @Import(name="templateLink")
    private @Nullable Output templateLink;

    /**
     * @return The URI of the template. Use either the templateLink property or the template property, but not both.
     * 
     */
    public Optional> templateLink() {
        return Optional.ofNullable(this.templateLink);
    }

    private DeploymentPropertiesArgs() {}

    private DeploymentPropertiesArgs(DeploymentPropertiesArgs $) {
        this.debugSetting = $.debugSetting;
        this.expressionEvaluationOptions = $.expressionEvaluationOptions;
        this.mode = $.mode;
        this.onErrorDeployment = $.onErrorDeployment;
        this.parameters = $.parameters;
        this.parametersLink = $.parametersLink;
        this.template = $.template;
        this.templateLink = $.templateLink;
    }

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

    public static final class Builder {
        private DeploymentPropertiesArgs $;

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

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

        /**
         * @param debugSetting The debug setting of the deployment.
         * 
         * @return builder
         * 
         */
        public Builder debugSetting(@Nullable Output debugSetting) {
            $.debugSetting = debugSetting;
            return this;
        }

        /**
         * @param debugSetting The debug setting of the deployment.
         * 
         * @return builder
         * 
         */
        public Builder debugSetting(DebugSettingArgs debugSetting) {
            return debugSetting(Output.of(debugSetting));
        }

        /**
         * @param expressionEvaluationOptions Specifies whether template expressions are evaluated within the scope of the parent template or nested template. Only applicable to nested templates. If not specified, default value is outer.
         * 
         * @return builder
         * 
         */
        public Builder expressionEvaluationOptions(@Nullable Output expressionEvaluationOptions) {
            $.expressionEvaluationOptions = expressionEvaluationOptions;
            return this;
        }

        /**
         * @param expressionEvaluationOptions Specifies whether template expressions are evaluated within the scope of the parent template or nested template. Only applicable to nested templates. If not specified, default value is outer.
         * 
         * @return builder
         * 
         */
        public Builder expressionEvaluationOptions(ExpressionEvaluationOptionsArgs expressionEvaluationOptions) {
            return expressionEvaluationOptions(Output.of(expressionEvaluationOptions));
        }

        /**
         * @param mode The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources.
         * 
         * @return builder
         * 
         */
        public Builder mode(Output mode) {
            $.mode = mode;
            return this;
        }

        /**
         * @param mode The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources.
         * 
         * @return builder
         * 
         */
        public Builder mode(DeploymentMode mode) {
            return mode(Output.of(mode));
        }

        /**
         * @param onErrorDeployment The deployment on error behavior.
         * 
         * @return builder
         * 
         */
        public Builder onErrorDeployment(@Nullable Output onErrorDeployment) {
            $.onErrorDeployment = onErrorDeployment;
            return this;
        }

        /**
         * @param onErrorDeployment The deployment on error behavior.
         * 
         * @return builder
         * 
         */
        public Builder onErrorDeployment(OnErrorDeploymentArgs onErrorDeployment) {
            return onErrorDeployment(Output.of(onErrorDeployment));
        }

        /**
         * @param parameters Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
         * 
         * @return builder
         * 
         */
        public Builder parameters(Map parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param parametersLink The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both.
         * 
         * @return builder
         * 
         */
        public Builder parametersLink(@Nullable Output parametersLink) {
            $.parametersLink = parametersLink;
            return this;
        }

        /**
         * @param parametersLink The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both.
         * 
         * @return builder
         * 
         */
        public Builder parametersLink(ParametersLinkArgs parametersLink) {
            return parametersLink(Output.of(parametersLink));
        }

        /**
         * @param template The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both.
         * 
         * @return builder
         * 
         */
        public Builder template(@Nullable Output template) {
            $.template = template;
            return this;
        }

        /**
         * @param template The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both.
         * 
         * @return builder
         * 
         */
        public Builder template(Object template) {
            return template(Output.of(template));
        }

        /**
         * @param templateLink The URI of the template. Use either the templateLink property or the template property, but not both.
         * 
         * @return builder
         * 
         */
        public Builder templateLink(@Nullable Output templateLink) {
            $.templateLink = templateLink;
            return this;
        }

        /**
         * @param templateLink The URI of the template. Use either the templateLink property or the template property, but not both.
         * 
         * @return builder
         * 
         */
        public Builder templateLink(TemplateLinkArgs templateLink) {
            return templateLink(Output.of(templateLink));
        }

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

}