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

com.pulumi.azurenative.datafactory.inputs.AzureDatabricksLinkedServiceArgs 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.datafactory.inputs;

import com.pulumi.azurenative.datafactory.inputs.AzureKeyVaultSecretReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.CredentialReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.IntegrationRuntimeReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.ParameterSpecificationArgs;
import com.pulumi.azurenative.datafactory.inputs.SecureStringArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Azure Databricks linked service.
 * 
 */
public final class AzureDatabricksLinkedServiceArgs extends com.pulumi.resources.ResourceArgs {

    public static final AzureDatabricksLinkedServiceArgs Empty = new AzureDatabricksLinkedServiceArgs();

    /**
     * Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="accessToken")
    private @Nullable Output> accessToken;

    /**
     * @return Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
     * 
     */
    public Optional>> accessToken() {
        return Optional.ofNullable(this.accessToken);
    }

    /**
     * List of tags that can be used for describing the linked service.
     * 
     */
    @Import(name="annotations")
    private @Nullable Output> annotations;

    /**
     * @return List of tags that can be used for describing the linked service.
     * 
     */
    public Optional>> annotations() {
        return Optional.ofNullable(this.annotations);
    }

    /**
     * Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="authentication")
    private @Nullable Output authentication;

    /**
     * @return Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> authentication() {
        return Optional.ofNullable(this.authentication);
    }

    /**
     * The integration runtime reference.
     * 
     */
    @Import(name="connectVia")
    private @Nullable Output connectVia;

    /**
     * @return The integration runtime reference.
     * 
     */
    public Optional> connectVia() {
        return Optional.ofNullable(this.connectVia);
    }

    /**
     * The credential reference containing authentication information.
     * 
     */
    @Import(name="credential")
    private @Nullable Output credential;

    /**
     * @return The credential reference containing authentication information.
     * 
     */
    public Optional> credential() {
        return Optional.ofNullable(this.credential);
    }

    /**
     * Linked service description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

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

    /**
     * <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="domain", required=true)
    private Output domain;

    /**
     * @return <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
     * 
     */
    public Output domain() {
        return this.domain;
    }

    /**
     * The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     * 
     */
    @Import(name="encryptedCredential")
    private @Nullable Output encryptedCredential;

    /**
     * @return The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     * 
     */
    public Optional> encryptedCredential() {
        return Optional.ofNullable(this.encryptedCredential);
    }

    /**
     * The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="existingClusterId")
    private @Nullable Output existingClusterId;

    /**
     * @return The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> existingClusterId() {
        return Optional.ofNullable(this.existingClusterId);
    }

    /**
     * The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="instancePoolId")
    private @Nullable Output instancePoolId;

    /**
     * @return The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> instancePoolId() {
        return Optional.ofNullable(this.instancePoolId);
    }

    /**
     * Additional tags for cluster resources. This property is ignored in instance pool configurations.
     * 
     */
    @Import(name="newClusterCustomTags")
    private @Nullable Output> newClusterCustomTags;

    /**
     * @return Additional tags for cluster resources. This property is ignored in instance pool configurations.
     * 
     */
    public Optional>> newClusterCustomTags() {
        return Optional.ofNullable(this.newClusterCustomTags);
    }

    /**
     * The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="newClusterDriverNodeType")
    private @Nullable Output newClusterDriverNodeType;

    /**
     * @return The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> newClusterDriverNodeType() {
        return Optional.ofNullable(this.newClusterDriverNodeType);
    }

    /**
     * Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="newClusterEnableElasticDisk")
    private @Nullable Output newClusterEnableElasticDisk;

    /**
     * @return Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> newClusterEnableElasticDisk() {
        return Optional.ofNullable(this.newClusterEnableElasticDisk);
    }

    /**
     * User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings).
     * 
     */
    @Import(name="newClusterInitScripts")
    private @Nullable Output newClusterInitScripts;

    /**
     * @return User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings).
     * 
     */
    public Optional> newClusterInitScripts() {
        return Optional.ofNullable(this.newClusterInitScripts);
    }

    /**
     * Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="newClusterLogDestination")
    private @Nullable Output newClusterLogDestination;

    /**
     * @return Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> newClusterLogDestination() {
        return Optional.ofNullable(this.newClusterLogDestination);
    }

    /**
     * The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="newClusterNodeType")
    private @Nullable Output newClusterNodeType;

    /**
     * @return The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> newClusterNodeType() {
        return Optional.ofNullable(this.newClusterNodeType);
    }

    /**
     * If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="newClusterNumOfWorker")
    private @Nullable Output newClusterNumOfWorker;

    /**
     * @return If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> newClusterNumOfWorker() {
        return Optional.ofNullable(this.newClusterNumOfWorker);
    }

    /**
     * A set of optional, user-specified Spark configuration key-value pairs.
     * 
     */
    @Import(name="newClusterSparkConf")
    private @Nullable Output> newClusterSparkConf;

    /**
     * @return A set of optional, user-specified Spark configuration key-value pairs.
     * 
     */
    public Optional>> newClusterSparkConf() {
        return Optional.ofNullable(this.newClusterSparkConf);
    }

    /**
     * A set of optional, user-specified Spark environment variables key-value pairs.
     * 
     */
    @Import(name="newClusterSparkEnvVars")
    private @Nullable Output> newClusterSparkEnvVars;

    /**
     * @return A set of optional, user-specified Spark environment variables key-value pairs.
     * 
     */
    public Optional>> newClusterSparkEnvVars() {
        return Optional.ofNullable(this.newClusterSparkEnvVars);
    }

    /**
     * If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="newClusterVersion")
    private @Nullable Output newClusterVersion;

    /**
     * @return If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> newClusterVersion() {
        return Optional.ofNullable(this.newClusterVersion);
    }

    /**
     * Parameters for linked service.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output> parameters;

    /**
     * @return Parameters for linked service.
     * 
     */
    public Optional>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="policyId")
    private @Nullable Output policyId;

    /**
     * @return The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> policyId() {
        return Optional.ofNullable(this.policyId);
    }

    /**
     * Type of linked service.
     * Expected value is 'AzureDatabricks'.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Type of linked service.
     * Expected value is 'AzureDatabricks'.
     * 
     */
    public Output type() {
        return this.type;
    }

    /**
     * Version of the linked service.
     * 
     */
    @Import(name="version")
    private @Nullable Output version;

    /**
     * @return Version of the linked service.
     * 
     */
    public Optional> version() {
        return Optional.ofNullable(this.version);
    }

    /**
     * Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="workspaceResourceId")
    private @Nullable Output workspaceResourceId;

    /**
     * @return Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> workspaceResourceId() {
        return Optional.ofNullable(this.workspaceResourceId);
    }

    private AzureDatabricksLinkedServiceArgs() {}

    private AzureDatabricksLinkedServiceArgs(AzureDatabricksLinkedServiceArgs $) {
        this.accessToken = $.accessToken;
        this.annotations = $.annotations;
        this.authentication = $.authentication;
        this.connectVia = $.connectVia;
        this.credential = $.credential;
        this.description = $.description;
        this.domain = $.domain;
        this.encryptedCredential = $.encryptedCredential;
        this.existingClusterId = $.existingClusterId;
        this.instancePoolId = $.instancePoolId;
        this.newClusterCustomTags = $.newClusterCustomTags;
        this.newClusterDriverNodeType = $.newClusterDriverNodeType;
        this.newClusterEnableElasticDisk = $.newClusterEnableElasticDisk;
        this.newClusterInitScripts = $.newClusterInitScripts;
        this.newClusterLogDestination = $.newClusterLogDestination;
        this.newClusterNodeType = $.newClusterNodeType;
        this.newClusterNumOfWorker = $.newClusterNumOfWorker;
        this.newClusterSparkConf = $.newClusterSparkConf;
        this.newClusterSparkEnvVars = $.newClusterSparkEnvVars;
        this.newClusterVersion = $.newClusterVersion;
        this.parameters = $.parameters;
        this.policyId = $.policyId;
        this.type = $.type;
        this.version = $.version;
        this.workspaceResourceId = $.workspaceResourceId;
    }

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

    public static final class Builder {
        private AzureDatabricksLinkedServiceArgs $;

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

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

        /**
         * @param accessToken Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder accessToken(@Nullable Output> accessToken) {
            $.accessToken = accessToken;
            return this;
        }

        /**
         * @param accessToken Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder accessToken(Either accessToken) {
            return accessToken(Output.of(accessToken));
        }

        /**
         * @param accessToken Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder accessToken(AzureKeyVaultSecretReferenceArgs accessToken) {
            return accessToken(Either.ofLeft(accessToken));
        }

        /**
         * @param accessToken Access token for databricks REST API. Refer to https://docs.azuredatabricks.net/api/latest/authentication.html. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder accessToken(SecureStringArgs accessToken) {
            return accessToken(Either.ofRight(accessToken));
        }

        /**
         * @param annotations List of tags that can be used for describing the linked service.
         * 
         * @return builder
         * 
         */
        public Builder annotations(@Nullable Output> annotations) {
            $.annotations = annotations;
            return this;
        }

        /**
         * @param annotations List of tags that can be used for describing the linked service.
         * 
         * @return builder
         * 
         */
        public Builder annotations(List annotations) {
            return annotations(Output.of(annotations));
        }

        /**
         * @param annotations List of tags that can be used for describing the linked service.
         * 
         * @return builder
         * 
         */
        public Builder annotations(Object... annotations) {
            return annotations(List.of(annotations));
        }

        /**
         * @param authentication Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder authentication(@Nullable Output authentication) {
            $.authentication = authentication;
            return this;
        }

        /**
         * @param authentication Required to specify MSI, if using Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder authentication(Object authentication) {
            return authentication(Output.of(authentication));
        }

        /**
         * @param connectVia The integration runtime reference.
         * 
         * @return builder
         * 
         */
        public Builder connectVia(@Nullable Output connectVia) {
            $.connectVia = connectVia;
            return this;
        }

        /**
         * @param connectVia The integration runtime reference.
         * 
         * @return builder
         * 
         */
        public Builder connectVia(IntegrationRuntimeReferenceArgs connectVia) {
            return connectVia(Output.of(connectVia));
        }

        /**
         * @param credential The credential reference containing authentication information.
         * 
         * @return builder
         * 
         */
        public Builder credential(@Nullable Output credential) {
            $.credential = credential;
            return this;
        }

        /**
         * @param credential The credential reference containing authentication information.
         * 
         * @return builder
         * 
         */
        public Builder credential(CredentialReferenceArgs credential) {
            return credential(Output.of(credential));
        }

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

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

        /**
         * @param domain <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder domain(Output domain) {
            $.domain = domain;
            return this;
        }

        /**
         * @param domain <REGION>.azuredatabricks.net, domain name of your Databricks deployment. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder domain(Object domain) {
            return domain(Output.of(domain));
        }

        /**
         * @param encryptedCredential The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
         * 
         * @return builder
         * 
         */
        public Builder encryptedCredential(@Nullable Output encryptedCredential) {
            $.encryptedCredential = encryptedCredential;
            return this;
        }

        /**
         * @param encryptedCredential The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
         * 
         * @return builder
         * 
         */
        public Builder encryptedCredential(String encryptedCredential) {
            return encryptedCredential(Output.of(encryptedCredential));
        }

        /**
         * @param existingClusterId The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder existingClusterId(@Nullable Output existingClusterId) {
            $.existingClusterId = existingClusterId;
            return this;
        }

        /**
         * @param existingClusterId The id of an existing interactive cluster that will be used for all runs of this activity. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder existingClusterId(Object existingClusterId) {
            return existingClusterId(Output.of(existingClusterId));
        }

        /**
         * @param instancePoolId The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder instancePoolId(@Nullable Output instancePoolId) {
            $.instancePoolId = instancePoolId;
            return this;
        }

        /**
         * @param instancePoolId The id of an existing instance pool that will be used for all runs of this activity. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder instancePoolId(Object instancePoolId) {
            return instancePoolId(Output.of(instancePoolId));
        }

        /**
         * @param newClusterCustomTags Additional tags for cluster resources. This property is ignored in instance pool configurations.
         * 
         * @return builder
         * 
         */
        public Builder newClusterCustomTags(@Nullable Output> newClusterCustomTags) {
            $.newClusterCustomTags = newClusterCustomTags;
            return this;
        }

        /**
         * @param newClusterCustomTags Additional tags for cluster resources. This property is ignored in instance pool configurations.
         * 
         * @return builder
         * 
         */
        public Builder newClusterCustomTags(Map newClusterCustomTags) {
            return newClusterCustomTags(Output.of(newClusterCustomTags));
        }

        /**
         * @param newClusterDriverNodeType The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterDriverNodeType(@Nullable Output newClusterDriverNodeType) {
            $.newClusterDriverNodeType = newClusterDriverNodeType;
            return this;
        }

        /**
         * @param newClusterDriverNodeType The driver node type for the new job cluster. This property is ignored in instance pool configurations. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterDriverNodeType(Object newClusterDriverNodeType) {
            return newClusterDriverNodeType(Output.of(newClusterDriverNodeType));
        }

        /**
         * @param newClusterEnableElasticDisk Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder newClusterEnableElasticDisk(@Nullable Output newClusterEnableElasticDisk) {
            $.newClusterEnableElasticDisk = newClusterEnableElasticDisk;
            return this;
        }

        /**
         * @param newClusterEnableElasticDisk Enable the elastic disk on the new cluster. This property is now ignored, and takes the default elastic disk behavior in Databricks (elastic disks are always enabled). Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder newClusterEnableElasticDisk(Object newClusterEnableElasticDisk) {
            return newClusterEnableElasticDisk(Output.of(newClusterEnableElasticDisk));
        }

        /**
         * @param newClusterInitScripts User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings).
         * 
         * @return builder
         * 
         */
        public Builder newClusterInitScripts(@Nullable Output newClusterInitScripts) {
            $.newClusterInitScripts = newClusterInitScripts;
            return this;
        }

        /**
         * @param newClusterInitScripts User-defined initialization scripts for the new cluster. Type: array of strings (or Expression with resultType array of strings).
         * 
         * @return builder
         * 
         */
        public Builder newClusterInitScripts(Object newClusterInitScripts) {
            return newClusterInitScripts(Output.of(newClusterInitScripts));
        }

        /**
         * @param newClusterLogDestination Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterLogDestination(@Nullable Output newClusterLogDestination) {
            $.newClusterLogDestination = newClusterLogDestination;
            return this;
        }

        /**
         * @param newClusterLogDestination Specify a location to deliver Spark driver, worker, and event logs. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterLogDestination(Object newClusterLogDestination) {
            return newClusterLogDestination(Output.of(newClusterLogDestination));
        }

        /**
         * @param newClusterNodeType The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterNodeType(@Nullable Output newClusterNodeType) {
            $.newClusterNodeType = newClusterNodeType;
            return this;
        }

        /**
         * @param newClusterNodeType The node type of the new job cluster. This property is required if newClusterVersion is specified and instancePoolId is not specified. If instancePoolId is specified, this property is ignored. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterNodeType(Object newClusterNodeType) {
            return newClusterNodeType(Output.of(newClusterNodeType));
        }

        /**
         * @param newClusterNumOfWorker If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterNumOfWorker(@Nullable Output newClusterNumOfWorker) {
            $.newClusterNumOfWorker = newClusterNumOfWorker;
            return this;
        }

        /**
         * @param newClusterNumOfWorker If not using an existing interactive cluster, this specifies the number of worker nodes to use for the new job cluster or instance pool. For new job clusters, this a string-formatted Int32, like '1' means numOfWorker is 1 or '1:10' means auto-scale from 1 (min) to 10 (max). For instance pools, this is a string-formatted Int32, and can only specify a fixed number of worker nodes, such as '2'. Required if newClusterVersion is specified. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterNumOfWorker(Object newClusterNumOfWorker) {
            return newClusterNumOfWorker(Output.of(newClusterNumOfWorker));
        }

        /**
         * @param newClusterSparkConf A set of optional, user-specified Spark configuration key-value pairs.
         * 
         * @return builder
         * 
         */
        public Builder newClusterSparkConf(@Nullable Output> newClusterSparkConf) {
            $.newClusterSparkConf = newClusterSparkConf;
            return this;
        }

        /**
         * @param newClusterSparkConf A set of optional, user-specified Spark configuration key-value pairs.
         * 
         * @return builder
         * 
         */
        public Builder newClusterSparkConf(Map newClusterSparkConf) {
            return newClusterSparkConf(Output.of(newClusterSparkConf));
        }

        /**
         * @param newClusterSparkEnvVars A set of optional, user-specified Spark environment variables key-value pairs.
         * 
         * @return builder
         * 
         */
        public Builder newClusterSparkEnvVars(@Nullable Output> newClusterSparkEnvVars) {
            $.newClusterSparkEnvVars = newClusterSparkEnvVars;
            return this;
        }

        /**
         * @param newClusterSparkEnvVars A set of optional, user-specified Spark environment variables key-value pairs.
         * 
         * @return builder
         * 
         */
        public Builder newClusterSparkEnvVars(Map newClusterSparkEnvVars) {
            return newClusterSparkEnvVars(Output.of(newClusterSparkEnvVars));
        }

        /**
         * @param newClusterVersion If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterVersion(@Nullable Output newClusterVersion) {
            $.newClusterVersion = newClusterVersion;
            return this;
        }

        /**
         * @param newClusterVersion If not using an existing interactive cluster, this specifies the Spark version of a new job cluster or instance pool nodes created for each run of this activity. Required if instancePoolId is specified. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder newClusterVersion(Object newClusterVersion) {
            return newClusterVersion(Output.of(newClusterVersion));
        }

        /**
         * @param parameters Parameters for linked service.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters Parameters for linked service.
         * 
         * @return builder
         * 
         */
        public Builder parameters(Map parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param policyId The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder policyId(@Nullable Output policyId) {
            $.policyId = policyId;
            return this;
        }

        /**
         * @param policyId The policy id for limiting the ability to configure clusters based on a user defined set of rules. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder policyId(Object policyId) {
            return policyId(Output.of(policyId));
        }

        /**
         * @param type Type of linked service.
         * Expected value is 'AzureDatabricks'.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of linked service.
         * Expected value is 'AzureDatabricks'.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param version Version of the linked service.
         * 
         * @return builder
         * 
         */
        public Builder version(@Nullable Output version) {
            $.version = version;
            return this;
        }

        /**
         * @param version Version of the linked service.
         * 
         * @return builder
         * 
         */
        public Builder version(String version) {
            return version(Output.of(version));
        }

        /**
         * @param workspaceResourceId Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder workspaceResourceId(@Nullable Output workspaceResourceId) {
            $.workspaceResourceId = workspaceResourceId;
            return this;
        }

        /**
         * @param workspaceResourceId Workspace resource id for databricks REST API. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder workspaceResourceId(Object workspaceResourceId) {
            return workspaceResourceId(Output.of(workspaceResourceId));
        }

        public AzureDatabricksLinkedServiceArgs build() {
            if ($.domain == null) {
                throw new MissingRequiredPropertyException("AzureDatabricksLinkedServiceArgs", "domain");
            }
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            return $;
        }
    }

}