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

com.pulumi.azurenative.resources.DeploymentStackAtResourceGroupArgs Maven / Gradle / Ivy

The 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;

import com.pulumi.azurenative.resources.inputs.DenySettingsArgs;
import com.pulumi.azurenative.resources.inputs.DeploymentStackPropertiesActionOnUnmanageArgs;
import com.pulumi.azurenative.resources.inputs.DeploymentStacksDebugSettingArgs;
import com.pulumi.azurenative.resources.inputs.DeploymentStacksParametersLinkArgs;
import com.pulumi.azurenative.resources.inputs.DeploymentStacksTemplateLinkArgs;
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;


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

    public static final DeploymentStackAtResourceGroupArgs Empty = new DeploymentStackAtResourceGroupArgs();

    /**
     * Defines the behavior of resources that are not managed immediately after the stack is updated.
     * 
     */
    @Import(name="actionOnUnmanage", required=true)
    private Output actionOnUnmanage;

    /**
     * @return Defines the behavior of resources that are not managed immediately after the stack is updated.
     * 
     */
    public Output actionOnUnmanage() {
        return this.actionOnUnmanage;
    }

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

    /**
     * Defines how resources deployed by the stack are locked.
     * 
     */
    @Import(name="denySettings", required=true)
    private Output denySettings;

    /**
     * @return Defines how resources deployed by the stack are locked.
     * 
     */
    public Output denySettings() {
        return this.denySettings;
    }

    /**
     * The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}').
     * 
     */
    @Import(name="deploymentScope")
    private @Nullable Output deploymentScope;

    /**
     * @return The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}').
     * 
     */
    public Optional> deploymentScope() {
        return Optional.ofNullable(this.deploymentScope);
    }

    /**
     * Name of the deployment stack.
     * 
     */
    @Import(name="deploymentStackName")
    private @Nullable Output deploymentStackName;

    /**
     * @return Name of the deployment stack.
     * 
     */
    public Optional> deploymentStackName() {
        return Optional.ofNullable(this.deploymentStackName);
    }

    /**
     * Deployment stack description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Deployment stack description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking 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. Use this element when providing the parameter values directly in the request, rather than linking 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. 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. 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 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;
    }

    /**
     * Deployment stack resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Deployment stack resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * 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 DeploymentStackAtResourceGroupArgs() {}

    private DeploymentStackAtResourceGroupArgs(DeploymentStackAtResourceGroupArgs $) {
        this.actionOnUnmanage = $.actionOnUnmanage;
        this.debugSetting = $.debugSetting;
        this.denySettings = $.denySettings;
        this.deploymentScope = $.deploymentScope;
        this.deploymentStackName = $.deploymentStackName;
        this.description = $.description;
        this.location = $.location;
        this.parameters = $.parameters;
        this.parametersLink = $.parametersLink;
        this.resourceGroupName = $.resourceGroupName;
        this.tags = $.tags;
        this.template = $.template;
        this.templateLink = $.templateLink;
    }

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

    public static final class Builder {
        private DeploymentStackAtResourceGroupArgs $;

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

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

        /**
         * @param actionOnUnmanage Defines the behavior of resources that are not managed immediately after the stack is updated.
         * 
         * @return builder
         * 
         */
        public Builder actionOnUnmanage(Output actionOnUnmanage) {
            $.actionOnUnmanage = actionOnUnmanage;
            return this;
        }

        /**
         * @param actionOnUnmanage Defines the behavior of resources that are not managed immediately after the stack is updated.
         * 
         * @return builder
         * 
         */
        public Builder actionOnUnmanage(DeploymentStackPropertiesActionOnUnmanageArgs actionOnUnmanage) {
            return actionOnUnmanage(Output.of(actionOnUnmanage));
        }

        /**
         * @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(DeploymentStacksDebugSettingArgs debugSetting) {
            return debugSetting(Output.of(debugSetting));
        }

        /**
         * @param denySettings Defines how resources deployed by the stack are locked.
         * 
         * @return builder
         * 
         */
        public Builder denySettings(Output denySettings) {
            $.denySettings = denySettings;
            return this;
        }

        /**
         * @param denySettings Defines how resources deployed by the stack are locked.
         * 
         * @return builder
         * 
         */
        public Builder denySettings(DenySettingsArgs denySettings) {
            return denySettings(Output.of(denySettings));
        }

        /**
         * @param deploymentScope The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}').
         * 
         * @return builder
         * 
         */
        public Builder deploymentScope(@Nullable Output deploymentScope) {
            $.deploymentScope = deploymentScope;
            return this;
        }

        /**
         * @param deploymentScope The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}').
         * 
         * @return builder
         * 
         */
        public Builder deploymentScope(String deploymentScope) {
            return deploymentScope(Output.of(deploymentScope));
        }

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

        /**
         * @param deploymentStackName Name of the deployment stack.
         * 
         * @return builder
         * 
         */
        public Builder deploymentStackName(String deploymentStackName) {
            return deploymentStackName(Output.of(deploymentStackName));
        }

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

        /**
         * @param description Deployment stack description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param location The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param parameters Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking 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. Use this element when providing the parameter values directly in the request, rather than linking 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(Object parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param parametersLink The URI of parameters file. 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. 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(DeploymentStacksParametersLinkArgs parametersLink) {
            return parametersLink(Output.of(parametersLink));
        }

        /**
         * @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 Deployment stack resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Deployment stack resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @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(DeploymentStacksTemplateLinkArgs templateLink) {
            return templateLink(Output.of(templateLink));
        }

        public DeploymentStackAtResourceGroupArgs build() {
            if ($.actionOnUnmanage == null) {
                throw new MissingRequiredPropertyException("DeploymentStackAtResourceGroupArgs", "actionOnUnmanage");
            }
            if ($.denySettings == null) {
                throw new MissingRequiredPropertyException("DeploymentStackAtResourceGroupArgs", "denySettings");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("DeploymentStackAtResourceGroupArgs", "resourceGroupName");
            }
            return $;
        }
    }

}