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

com.pulumi.azurenative.databricks.WorkspaceArgs 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.databricks;

import com.pulumi.azurenative.databricks.enums.PublicNetworkAccess;
import com.pulumi.azurenative.databricks.enums.RequiredNsgRules;
import com.pulumi.azurenative.databricks.inputs.SkuArgs;
import com.pulumi.azurenative.databricks.inputs.WorkspaceCustomParametersArgs;
import com.pulumi.azurenative.databricks.inputs.WorkspacePropertiesEncryptionArgs;
import com.pulumi.azurenative.databricks.inputs.WorkspaceProviderAuthorizationArgs;
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.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final WorkspaceArgs Empty = new WorkspaceArgs();

    /**
     * The workspace provider authorizations.
     * 
     */
    @Import(name="authorizations")
    private @Nullable Output> authorizations;

    /**
     * @return The workspace provider authorizations.
     * 
     */
    public Optional>> authorizations() {
        return Optional.ofNullable(this.authorizations);
    }

    /**
     * Encryption properties for databricks workspace
     * 
     */
    @Import(name="encryption")
    private @Nullable Output encryption;

    /**
     * @return Encryption properties for databricks workspace
     * 
     */
    public Optional> encryption() {
        return Optional.ofNullable(this.encryption);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The managed resource group Id.
     * 
     */
    @Import(name="managedResourceGroupId", required=true)
    private Output managedResourceGroupId;

    /**
     * @return The managed resource group Id.
     * 
     */
    public Output managedResourceGroupId() {
        return this.managedResourceGroupId;
    }

    /**
     * The workspace's custom parameters.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output parameters;

    /**
     * @return The workspace's custom parameters.
     * 
     */
    public Optional> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * The network access type for accessing workspace. Set value to disabled to access workspace only via private link.
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output> publicNetworkAccess;

    /**
     * @return The network access type for accessing workspace. Set value to disabled to access workspace only via private link.
     * 
     */
    public Optional>> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

    /**
     * Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only.
     * 
     */
    @Import(name="requiredNsgRules")
    private @Nullable Output> requiredNsgRules;

    /**
     * @return Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only.
     * 
     */
    public Optional>> requiredNsgRules() {
        return Optional.ofNullable(this.requiredNsgRules);
    }

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

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

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

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

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

    /**
     * The blob URI where the UI definition file is located.
     * 
     */
    @Import(name="uiDefinitionUri")
    private @Nullable Output uiDefinitionUri;

    /**
     * @return The blob URI where the UI definition file is located.
     * 
     */
    public Optional> uiDefinitionUri() {
        return Optional.ofNullable(this.uiDefinitionUri);
    }

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

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

    private WorkspaceArgs() {}

    private WorkspaceArgs(WorkspaceArgs $) {
        this.authorizations = $.authorizations;
        this.encryption = $.encryption;
        this.location = $.location;
        this.managedResourceGroupId = $.managedResourceGroupId;
        this.parameters = $.parameters;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.requiredNsgRules = $.requiredNsgRules;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.tags = $.tags;
        this.uiDefinitionUri = $.uiDefinitionUri;
        this.workspaceName = $.workspaceName;
    }

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

    public static final class Builder {
        private WorkspaceArgs $;

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

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

        /**
         * @param authorizations The workspace provider authorizations.
         * 
         * @return builder
         * 
         */
        public Builder authorizations(@Nullable Output> authorizations) {
            $.authorizations = authorizations;
            return this;
        }

        /**
         * @param authorizations The workspace provider authorizations.
         * 
         * @return builder
         * 
         */
        public Builder authorizations(List authorizations) {
            return authorizations(Output.of(authorizations));
        }

        /**
         * @param authorizations The workspace provider authorizations.
         * 
         * @return builder
         * 
         */
        public Builder authorizations(WorkspaceProviderAuthorizationArgs... authorizations) {
            return authorizations(List.of(authorizations));
        }

        /**
         * @param encryption Encryption properties for databricks workspace
         * 
         * @return builder
         * 
         */
        public Builder encryption(@Nullable Output encryption) {
            $.encryption = encryption;
            return this;
        }

        /**
         * @param encryption Encryption properties for databricks workspace
         * 
         * @return builder
         * 
         */
        public Builder encryption(WorkspacePropertiesEncryptionArgs encryption) {
            return encryption(Output.of(encryption));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param managedResourceGroupId The managed resource group Id.
         * 
         * @return builder
         * 
         */
        public Builder managedResourceGroupId(Output managedResourceGroupId) {
            $.managedResourceGroupId = managedResourceGroupId;
            return this;
        }

        /**
         * @param managedResourceGroupId The managed resource group Id.
         * 
         * @return builder
         * 
         */
        public Builder managedResourceGroupId(String managedResourceGroupId) {
            return managedResourceGroupId(Output.of(managedResourceGroupId));
        }

        /**
         * @param parameters The workspace's custom parameters.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters The workspace's custom parameters.
         * 
         * @return builder
         * 
         */
        public Builder parameters(WorkspaceCustomParametersArgs parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param publicNetworkAccess The network access type for accessing workspace. Set value to disabled to access workspace only via private link.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output> publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess The network access type for accessing workspace. Set value to disabled to access workspace only via private link.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(Either publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess The network access type for accessing workspace. Set value to disabled to access workspace only via private link.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(String publicNetworkAccess) {
            return publicNetworkAccess(Either.ofLeft(publicNetworkAccess));
        }

        /**
         * @param publicNetworkAccess The network access type for accessing workspace. Set value to disabled to access workspace only via private link.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
            return publicNetworkAccess(Either.ofRight(publicNetworkAccess));
        }

        /**
         * @param requiredNsgRules Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only.
         * 
         * @return builder
         * 
         */
        public Builder requiredNsgRules(@Nullable Output> requiredNsgRules) {
            $.requiredNsgRules = requiredNsgRules;
            return this;
        }

        /**
         * @param requiredNsgRules Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only.
         * 
         * @return builder
         * 
         */
        public Builder requiredNsgRules(Either requiredNsgRules) {
            return requiredNsgRules(Output.of(requiredNsgRules));
        }

        /**
         * @param requiredNsgRules Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only.
         * 
         * @return builder
         * 
         */
        public Builder requiredNsgRules(String requiredNsgRules) {
            return requiredNsgRules(Either.ofLeft(requiredNsgRules));
        }

        /**
         * @param requiredNsgRules Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only.
         * 
         * @return builder
         * 
         */
        public Builder requiredNsgRules(RequiredNsgRules requiredNsgRules) {
            return requiredNsgRules(Either.ofRight(requiredNsgRules));
        }

        /**
         * @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 sku The SKU of the resource.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The SKU of the resource.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

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

        /**
         * @param uiDefinitionUri The blob URI where the UI definition file is located.
         * 
         * @return builder
         * 
         */
        public Builder uiDefinitionUri(@Nullable Output uiDefinitionUri) {
            $.uiDefinitionUri = uiDefinitionUri;
            return this;
        }

        /**
         * @param uiDefinitionUri The blob URI where the UI definition file is located.
         * 
         * @return builder
         * 
         */
        public Builder uiDefinitionUri(String uiDefinitionUri) {
            return uiDefinitionUri(Output.of(uiDefinitionUri));
        }

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

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

        public WorkspaceArgs build() {
            if ($.managedResourceGroupId == null) {
                throw new MissingRequiredPropertyException("WorkspaceArgs", "managedResourceGroupId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("WorkspaceArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy