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

com.pulumi.azurenative.datafactory.outputs.HDInsightOnDemandLinkedServiceResponse Maven / Gradle / Ivy

// *** 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.outputs;

import com.pulumi.azurenative.datafactory.outputs.AzureKeyVaultSecretReferenceResponse;
import com.pulumi.azurenative.datafactory.outputs.CredentialReferenceResponse;
import com.pulumi.azurenative.datafactory.outputs.IntegrationRuntimeReferenceResponse;
import com.pulumi.azurenative.datafactory.outputs.LinkedServiceReferenceResponse;
import com.pulumi.azurenative.datafactory.outputs.ParameterSpecificationResponse;
import com.pulumi.azurenative.datafactory.outputs.ScriptActionResponse;
import com.pulumi.azurenative.datafactory.outputs.SecureStringResponse;
import com.pulumi.core.Either;
import com.pulumi.core.annotations.CustomType;
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;

@CustomType
public final class HDInsightOnDemandLinkedServiceResponse {
    /**
     * @return Specifies additional storage accounts for the HDInsight linked service so that the Data Factory service can register them on your behalf.
     * 
     */
    private @Nullable List additionalLinkedServiceNames;
    /**
     * @return List of tags that can be used for describing the linked service.
     * 
     */
    private @Nullable List annotations;
    /**
     * @return The prefix of cluster name, postfix will be distinct with timestamp. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object clusterNamePrefix;
    /**
     * @return The password to access the cluster.
     * 
     */
    private @Nullable Either clusterPassword;
    /**
     * @return The resource group where the cluster belongs. Type: string (or Expression with resultType string).
     * 
     */
    private Object clusterResourceGroup;
    /**
     * @return Number of worker/data nodes in the cluster. Suggestion value: 4. Type: int (or Expression with resultType int).
     * 
     */
    private Object clusterSize;
    /**
     * @return The password to SSH remotely connect cluster’s node (for Linux).
     * 
     */
    private @Nullable Either clusterSshPassword;
    /**
     * @return The username to SSH remotely connect to cluster’s node (for Linux). Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object clusterSshUserName;
    /**
     * @return The cluster type. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object clusterType;
    /**
     * @return The username to access the cluster. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object clusterUserName;
    /**
     * @return The integration runtime reference.
     * 
     */
    private @Nullable IntegrationRuntimeReferenceResponse connectVia;
    /**
     * @return Specifies the core configuration parameters (as in core-site.xml) for the HDInsight cluster to be created.
     * 
     */
    private @Nullable Object coreConfiguration;
    /**
     * @return The credential reference containing authentication information.
     * 
     */
    private @Nullable CredentialReferenceResponse credential;
    /**
     * @return Specifies the size of the data node for the HDInsight cluster.
     * 
     */
    private @Nullable Object dataNodeSize;
    /**
     * @return Linked service description.
     * 
     */
    private @Nullable String description;
    /**
     * @return The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     * 
     */
    private @Nullable String encryptedCredential;
    /**
     * @return Specifies the HBase configuration parameters (hbase-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object hBaseConfiguration;
    /**
     * @return The name of Azure SQL linked service that point to the HCatalog database. The on-demand HDInsight cluster is created by using the Azure SQL database as the metastore.
     * 
     */
    private @Nullable LinkedServiceReferenceResponse hcatalogLinkedServiceName;
    /**
     * @return Specifies the HDFS configuration parameters (hdfs-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object hdfsConfiguration;
    /**
     * @return Specifies the size of the head node for the HDInsight cluster.
     * 
     */
    private @Nullable Object headNodeSize;
    /**
     * @return Specifies the hive configuration parameters (hive-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object hiveConfiguration;
    /**
     * @return The customer’s subscription to host the cluster. Type: string (or Expression with resultType string).
     * 
     */
    private Object hostSubscriptionId;
    /**
     * @return Azure Storage linked service to be used by the on-demand cluster for storing and processing data.
     * 
     */
    private LinkedServiceReferenceResponse linkedServiceName;
    /**
     * @return Specifies the MapReduce configuration parameters (mapred-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object mapReduceConfiguration;
    /**
     * @return Specifies the Oozie configuration parameters (oozie-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object oozieConfiguration;
    /**
     * @return Parameters for linked service.
     * 
     */
    private @Nullable Map parameters;
    /**
     * @return Custom script actions to run on HDI ondemand cluster once it's up. Please refer to https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize-cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions.
     * 
     */
    private @Nullable List scriptActions;
    /**
     * @return The service principal id for the hostSubscriptionId. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object servicePrincipalId;
    /**
     * @return The key for the service principal id.
     * 
     */
    private @Nullable Either servicePrincipalKey;
    /**
     * @return The version of spark if the cluster type is 'spark'. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object sparkVersion;
    /**
     * @return Specifies the Storm configuration parameters (storm-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object stormConfiguration;
    /**
     * @return The ARM resource ID for the subnet in the vNet. If virtualNetworkId was specified, then this property is required. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object subnetName;
    /**
     * @return The Tenant id/name to which the service principal belongs. Type: string (or Expression with resultType string).
     * 
     */
    private Object tenant;
    /**
     * @return The allowed idle time for the on-demand HDInsight cluster. Specifies how long the on-demand HDInsight cluster stays alive after completion of an activity run if there are no other active jobs in the cluster. The minimum value is 5 mins. Type: string (or Expression with resultType string).
     * 
     */
    private Object timeToLive;
    /**
     * @return Type of linked service.
     * Expected value is 'HDInsightOnDemand'.
     * 
     */
    private String type;
    /**
     * @return Version of the linked service.
     * 
     */
    private String version;
    /**
     * @return The ARM resource ID for the vNet to which the cluster should be joined after creation. Type: string (or Expression with resultType string).
     * 
     */
    private @Nullable Object virtualNetworkId;
    /**
     * @return Specifies the Yarn configuration parameters (yarn-site.xml) for the HDInsight cluster.
     * 
     */
    private @Nullable Object yarnConfiguration;
    /**
     * @return Specifies the size of the Zoo Keeper node for the HDInsight cluster.
     * 
     */
    private @Nullable Object zookeeperNodeSize;

    private HDInsightOnDemandLinkedServiceResponse() {}
    /**
     * @return Specifies additional storage accounts for the HDInsight linked service so that the Data Factory service can register them on your behalf.
     * 
     */
    public List additionalLinkedServiceNames() {
        return this.additionalLinkedServiceNames == null ? List.of() : this.additionalLinkedServiceNames;
    }
    /**
     * @return List of tags that can be used for describing the linked service.
     * 
     */
    public List annotations() {
        return this.annotations == null ? List.of() : this.annotations;
    }
    /**
     * @return The prefix of cluster name, postfix will be distinct with timestamp. Type: string (or Expression with resultType string).
     * 
     */
    public Optional clusterNamePrefix() {
        return Optional.ofNullable(this.clusterNamePrefix);
    }
    /**
     * @return The password to access the cluster.
     * 
     */
    public Optional> clusterPassword() {
        return Optional.ofNullable(this.clusterPassword);
    }
    /**
     * @return The resource group where the cluster belongs. Type: string (or Expression with resultType string).
     * 
     */
    public Object clusterResourceGroup() {
        return this.clusterResourceGroup;
    }
    /**
     * @return Number of worker/data nodes in the cluster. Suggestion value: 4. Type: int (or Expression with resultType int).
     * 
     */
    public Object clusterSize() {
        return this.clusterSize;
    }
    /**
     * @return The password to SSH remotely connect cluster’s node (for Linux).
     * 
     */
    public Optional> clusterSshPassword() {
        return Optional.ofNullable(this.clusterSshPassword);
    }
    /**
     * @return The username to SSH remotely connect to cluster’s node (for Linux). Type: string (or Expression with resultType string).
     * 
     */
    public Optional clusterSshUserName() {
        return Optional.ofNullable(this.clusterSshUserName);
    }
    /**
     * @return The cluster type. Type: string (or Expression with resultType string).
     * 
     */
    public Optional clusterType() {
        return Optional.ofNullable(this.clusterType);
    }
    /**
     * @return The username to access the cluster. Type: string (or Expression with resultType string).
     * 
     */
    public Optional clusterUserName() {
        return Optional.ofNullable(this.clusterUserName);
    }
    /**
     * @return The integration runtime reference.
     * 
     */
    public Optional connectVia() {
        return Optional.ofNullable(this.connectVia);
    }
    /**
     * @return Specifies the core configuration parameters (as in core-site.xml) for the HDInsight cluster to be created.
     * 
     */
    public Optional coreConfiguration() {
        return Optional.ofNullable(this.coreConfiguration);
    }
    /**
     * @return The credential reference containing authentication information.
     * 
     */
    public Optional credential() {
        return Optional.ofNullable(this.credential);
    }
    /**
     * @return Specifies the size of the data node for the HDInsight cluster.
     * 
     */
    public Optional dataNodeSize() {
        return Optional.ofNullable(this.dataNodeSize);
    }
    /**
     * @return Linked service description.
     * 
     */
    public Optional description() {
        return Optional.ofNullable(this.description);
    }
    /**
     * @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);
    }
    /**
     * @return Specifies the HBase configuration parameters (hbase-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional hBaseConfiguration() {
        return Optional.ofNullable(this.hBaseConfiguration);
    }
    /**
     * @return The name of Azure SQL linked service that point to the HCatalog database. The on-demand HDInsight cluster is created by using the Azure SQL database as the metastore.
     * 
     */
    public Optional hcatalogLinkedServiceName() {
        return Optional.ofNullable(this.hcatalogLinkedServiceName);
    }
    /**
     * @return Specifies the HDFS configuration parameters (hdfs-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional hdfsConfiguration() {
        return Optional.ofNullable(this.hdfsConfiguration);
    }
    /**
     * @return Specifies the size of the head node for the HDInsight cluster.
     * 
     */
    public Optional headNodeSize() {
        return Optional.ofNullable(this.headNodeSize);
    }
    /**
     * @return Specifies the hive configuration parameters (hive-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional hiveConfiguration() {
        return Optional.ofNullable(this.hiveConfiguration);
    }
    /**
     * @return The customer’s subscription to host the cluster. Type: string (or Expression with resultType string).
     * 
     */
    public Object hostSubscriptionId() {
        return this.hostSubscriptionId;
    }
    /**
     * @return Azure Storage linked service to be used by the on-demand cluster for storing and processing data.
     * 
     */
    public LinkedServiceReferenceResponse linkedServiceName() {
        return this.linkedServiceName;
    }
    /**
     * @return Specifies the MapReduce configuration parameters (mapred-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional mapReduceConfiguration() {
        return Optional.ofNullable(this.mapReduceConfiguration);
    }
    /**
     * @return Specifies the Oozie configuration parameters (oozie-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional oozieConfiguration() {
        return Optional.ofNullable(this.oozieConfiguration);
    }
    /**
     * @return Parameters for linked service.
     * 
     */
    public Map parameters() {
        return this.parameters == null ? Map.of() : this.parameters;
    }
    /**
     * @return Custom script actions to run on HDI ondemand cluster once it's up. Please refer to https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-hadoop-customize-cluster-linux?toc=%2Fen-us%2Fazure%2Fhdinsight%2Fr-server%2FTOC.json&bc=%2Fen-us%2Fazure%2Fbread%2Ftoc.json#understanding-script-actions.
     * 
     */
    public List scriptActions() {
        return this.scriptActions == null ? List.of() : this.scriptActions;
    }
    /**
     * @return The service principal id for the hostSubscriptionId. Type: string (or Expression with resultType string).
     * 
     */
    public Optional servicePrincipalId() {
        return Optional.ofNullable(this.servicePrincipalId);
    }
    /**
     * @return The key for the service principal id.
     * 
     */
    public Optional> servicePrincipalKey() {
        return Optional.ofNullable(this.servicePrincipalKey);
    }
    /**
     * @return The version of spark if the cluster type is 'spark'. Type: string (or Expression with resultType string).
     * 
     */
    public Optional sparkVersion() {
        return Optional.ofNullable(this.sparkVersion);
    }
    /**
     * @return Specifies the Storm configuration parameters (storm-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional stormConfiguration() {
        return Optional.ofNullable(this.stormConfiguration);
    }
    /**
     * @return The ARM resource ID for the subnet in the vNet. If virtualNetworkId was specified, then this property is required. Type: string (or Expression with resultType string).
     * 
     */
    public Optional subnetName() {
        return Optional.ofNullable(this.subnetName);
    }
    /**
     * @return The Tenant id/name to which the service principal belongs. Type: string (or Expression with resultType string).
     * 
     */
    public Object tenant() {
        return this.tenant;
    }
    /**
     * @return The allowed idle time for the on-demand HDInsight cluster. Specifies how long the on-demand HDInsight cluster stays alive after completion of an activity run if there are no other active jobs in the cluster. The minimum value is 5 mins. Type: string (or Expression with resultType string).
     * 
     */
    public Object timeToLive() {
        return this.timeToLive;
    }
    /**
     * @return Type of linked service.
     * Expected value is 'HDInsightOnDemand'.
     * 
     */
    public String type() {
        return this.type;
    }
    /**
     * @return Version of the linked service.
     * 
     */
    public String version() {
        return this.version;
    }
    /**
     * @return The ARM resource ID for the vNet to which the cluster should be joined after creation. Type: string (or Expression with resultType string).
     * 
     */
    public Optional virtualNetworkId() {
        return Optional.ofNullable(this.virtualNetworkId);
    }
    /**
     * @return Specifies the Yarn configuration parameters (yarn-site.xml) for the HDInsight cluster.
     * 
     */
    public Optional yarnConfiguration() {
        return Optional.ofNullable(this.yarnConfiguration);
    }
    /**
     * @return Specifies the size of the Zoo Keeper node for the HDInsight cluster.
     * 
     */
    public Optional zookeeperNodeSize() {
        return Optional.ofNullable(this.zookeeperNodeSize);
    }

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

    public static Builder builder(HDInsightOnDemandLinkedServiceResponse defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable List additionalLinkedServiceNames;
        private @Nullable List annotations;
        private @Nullable Object clusterNamePrefix;
        private @Nullable Either clusterPassword;
        private Object clusterResourceGroup;
        private Object clusterSize;
        private @Nullable Either clusterSshPassword;
        private @Nullable Object clusterSshUserName;
        private @Nullable Object clusterType;
        private @Nullable Object clusterUserName;
        private @Nullable IntegrationRuntimeReferenceResponse connectVia;
        private @Nullable Object coreConfiguration;
        private @Nullable CredentialReferenceResponse credential;
        private @Nullable Object dataNodeSize;
        private @Nullable String description;
        private @Nullable String encryptedCredential;
        private @Nullable Object hBaseConfiguration;
        private @Nullable LinkedServiceReferenceResponse hcatalogLinkedServiceName;
        private @Nullable Object hdfsConfiguration;
        private @Nullable Object headNodeSize;
        private @Nullable Object hiveConfiguration;
        private Object hostSubscriptionId;
        private LinkedServiceReferenceResponse linkedServiceName;
        private @Nullable Object mapReduceConfiguration;
        private @Nullable Object oozieConfiguration;
        private @Nullable Map parameters;
        private @Nullable List scriptActions;
        private @Nullable Object servicePrincipalId;
        private @Nullable Either servicePrincipalKey;
        private @Nullable Object sparkVersion;
        private @Nullable Object stormConfiguration;
        private @Nullable Object subnetName;
        private Object tenant;
        private Object timeToLive;
        private String type;
        private String version;
        private @Nullable Object virtualNetworkId;
        private @Nullable Object yarnConfiguration;
        private @Nullable Object zookeeperNodeSize;
        public Builder() {}
        public Builder(HDInsightOnDemandLinkedServiceResponse defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.additionalLinkedServiceNames = defaults.additionalLinkedServiceNames;
    	      this.annotations = defaults.annotations;
    	      this.clusterNamePrefix = defaults.clusterNamePrefix;
    	      this.clusterPassword = defaults.clusterPassword;
    	      this.clusterResourceGroup = defaults.clusterResourceGroup;
    	      this.clusterSize = defaults.clusterSize;
    	      this.clusterSshPassword = defaults.clusterSshPassword;
    	      this.clusterSshUserName = defaults.clusterSshUserName;
    	      this.clusterType = defaults.clusterType;
    	      this.clusterUserName = defaults.clusterUserName;
    	      this.connectVia = defaults.connectVia;
    	      this.coreConfiguration = defaults.coreConfiguration;
    	      this.credential = defaults.credential;
    	      this.dataNodeSize = defaults.dataNodeSize;
    	      this.description = defaults.description;
    	      this.encryptedCredential = defaults.encryptedCredential;
    	      this.hBaseConfiguration = defaults.hBaseConfiguration;
    	      this.hcatalogLinkedServiceName = defaults.hcatalogLinkedServiceName;
    	      this.hdfsConfiguration = defaults.hdfsConfiguration;
    	      this.headNodeSize = defaults.headNodeSize;
    	      this.hiveConfiguration = defaults.hiveConfiguration;
    	      this.hostSubscriptionId = defaults.hostSubscriptionId;
    	      this.linkedServiceName = defaults.linkedServiceName;
    	      this.mapReduceConfiguration = defaults.mapReduceConfiguration;
    	      this.oozieConfiguration = defaults.oozieConfiguration;
    	      this.parameters = defaults.parameters;
    	      this.scriptActions = defaults.scriptActions;
    	      this.servicePrincipalId = defaults.servicePrincipalId;
    	      this.servicePrincipalKey = defaults.servicePrincipalKey;
    	      this.sparkVersion = defaults.sparkVersion;
    	      this.stormConfiguration = defaults.stormConfiguration;
    	      this.subnetName = defaults.subnetName;
    	      this.tenant = defaults.tenant;
    	      this.timeToLive = defaults.timeToLive;
    	      this.type = defaults.type;
    	      this.version = defaults.version;
    	      this.virtualNetworkId = defaults.virtualNetworkId;
    	      this.yarnConfiguration = defaults.yarnConfiguration;
    	      this.zookeeperNodeSize = defaults.zookeeperNodeSize;
        }

        @CustomType.Setter
        public Builder additionalLinkedServiceNames(@Nullable List additionalLinkedServiceNames) {

            this.additionalLinkedServiceNames = additionalLinkedServiceNames;
            return this;
        }
        public Builder additionalLinkedServiceNames(LinkedServiceReferenceResponse... additionalLinkedServiceNames) {
            return additionalLinkedServiceNames(List.of(additionalLinkedServiceNames));
        }
        @CustomType.Setter
        public Builder annotations(@Nullable List annotations) {

            this.annotations = annotations;
            return this;
        }
        public Builder annotations(Object... annotations) {
            return annotations(List.of(annotations));
        }
        @CustomType.Setter
        public Builder clusterNamePrefix(@Nullable Object clusterNamePrefix) {

            this.clusterNamePrefix = clusterNamePrefix;
            return this;
        }
        @CustomType.Setter
        public Builder clusterPassword(@Nullable Either clusterPassword) {

            this.clusterPassword = clusterPassword;
            return this;
        }
        @CustomType.Setter
        public Builder clusterResourceGroup(Object clusterResourceGroup) {
            if (clusterResourceGroup == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "clusterResourceGroup");
            }
            this.clusterResourceGroup = clusterResourceGroup;
            return this;
        }
        @CustomType.Setter
        public Builder clusterSize(Object clusterSize) {
            if (clusterSize == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "clusterSize");
            }
            this.clusterSize = clusterSize;
            return this;
        }
        @CustomType.Setter
        public Builder clusterSshPassword(@Nullable Either clusterSshPassword) {

            this.clusterSshPassword = clusterSshPassword;
            return this;
        }
        @CustomType.Setter
        public Builder clusterSshUserName(@Nullable Object clusterSshUserName) {

            this.clusterSshUserName = clusterSshUserName;
            return this;
        }
        @CustomType.Setter
        public Builder clusterType(@Nullable Object clusterType) {

            this.clusterType = clusterType;
            return this;
        }
        @CustomType.Setter
        public Builder clusterUserName(@Nullable Object clusterUserName) {

            this.clusterUserName = clusterUserName;
            return this;
        }
        @CustomType.Setter
        public Builder connectVia(@Nullable IntegrationRuntimeReferenceResponse connectVia) {

            this.connectVia = connectVia;
            return this;
        }
        @CustomType.Setter
        public Builder coreConfiguration(@Nullable Object coreConfiguration) {

            this.coreConfiguration = coreConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder credential(@Nullable CredentialReferenceResponse credential) {

            this.credential = credential;
            return this;
        }
        @CustomType.Setter
        public Builder dataNodeSize(@Nullable Object dataNodeSize) {

            this.dataNodeSize = dataNodeSize;
            return this;
        }
        @CustomType.Setter
        public Builder description(@Nullable String description) {

            this.description = description;
            return this;
        }
        @CustomType.Setter
        public Builder encryptedCredential(@Nullable String encryptedCredential) {

            this.encryptedCredential = encryptedCredential;
            return this;
        }
        @CustomType.Setter
        public Builder hBaseConfiguration(@Nullable Object hBaseConfiguration) {

            this.hBaseConfiguration = hBaseConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder hcatalogLinkedServiceName(@Nullable LinkedServiceReferenceResponse hcatalogLinkedServiceName) {

            this.hcatalogLinkedServiceName = hcatalogLinkedServiceName;
            return this;
        }
        @CustomType.Setter
        public Builder hdfsConfiguration(@Nullable Object hdfsConfiguration) {

            this.hdfsConfiguration = hdfsConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder headNodeSize(@Nullable Object headNodeSize) {

            this.headNodeSize = headNodeSize;
            return this;
        }
        @CustomType.Setter
        public Builder hiveConfiguration(@Nullable Object hiveConfiguration) {

            this.hiveConfiguration = hiveConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder hostSubscriptionId(Object hostSubscriptionId) {
            if (hostSubscriptionId == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "hostSubscriptionId");
            }
            this.hostSubscriptionId = hostSubscriptionId;
            return this;
        }
        @CustomType.Setter
        public Builder linkedServiceName(LinkedServiceReferenceResponse linkedServiceName) {
            if (linkedServiceName == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "linkedServiceName");
            }
            this.linkedServiceName = linkedServiceName;
            return this;
        }
        @CustomType.Setter
        public Builder mapReduceConfiguration(@Nullable Object mapReduceConfiguration) {

            this.mapReduceConfiguration = mapReduceConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder oozieConfiguration(@Nullable Object oozieConfiguration) {

            this.oozieConfiguration = oozieConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder parameters(@Nullable Map parameters) {

            this.parameters = parameters;
            return this;
        }
        @CustomType.Setter
        public Builder scriptActions(@Nullable List scriptActions) {

            this.scriptActions = scriptActions;
            return this;
        }
        public Builder scriptActions(ScriptActionResponse... scriptActions) {
            return scriptActions(List.of(scriptActions));
        }
        @CustomType.Setter
        public Builder servicePrincipalId(@Nullable Object servicePrincipalId) {

            this.servicePrincipalId = servicePrincipalId;
            return this;
        }
        @CustomType.Setter
        public Builder servicePrincipalKey(@Nullable Either servicePrincipalKey) {

            this.servicePrincipalKey = servicePrincipalKey;
            return this;
        }
        @CustomType.Setter
        public Builder sparkVersion(@Nullable Object sparkVersion) {

            this.sparkVersion = sparkVersion;
            return this;
        }
        @CustomType.Setter
        public Builder stormConfiguration(@Nullable Object stormConfiguration) {

            this.stormConfiguration = stormConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder subnetName(@Nullable Object subnetName) {

            this.subnetName = subnetName;
            return this;
        }
        @CustomType.Setter
        public Builder tenant(Object tenant) {
            if (tenant == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "tenant");
            }
            this.tenant = tenant;
            return this;
        }
        @CustomType.Setter
        public Builder timeToLive(Object timeToLive) {
            if (timeToLive == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "timeToLive");
            }
            this.timeToLive = timeToLive;
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "type");
            }
            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder version(String version) {
            if (version == null) {
              throw new MissingRequiredPropertyException("HDInsightOnDemandLinkedServiceResponse", "version");
            }
            this.version = version;
            return this;
        }
        @CustomType.Setter
        public Builder virtualNetworkId(@Nullable Object virtualNetworkId) {

            this.virtualNetworkId = virtualNetworkId;
            return this;
        }
        @CustomType.Setter
        public Builder yarnConfiguration(@Nullable Object yarnConfiguration) {

            this.yarnConfiguration = yarnConfiguration;
            return this;
        }
        @CustomType.Setter
        public Builder zookeeperNodeSize(@Nullable Object zookeeperNodeSize) {

            this.zookeeperNodeSize = zookeeperNodeSize;
            return this;
        }
        public HDInsightOnDemandLinkedServiceResponse build() {
            final var _resultValue = new HDInsightOnDemandLinkedServiceResponse();
            _resultValue.additionalLinkedServiceNames = additionalLinkedServiceNames;
            _resultValue.annotations = annotations;
            _resultValue.clusterNamePrefix = clusterNamePrefix;
            _resultValue.clusterPassword = clusterPassword;
            _resultValue.clusterResourceGroup = clusterResourceGroup;
            _resultValue.clusterSize = clusterSize;
            _resultValue.clusterSshPassword = clusterSshPassword;
            _resultValue.clusterSshUserName = clusterSshUserName;
            _resultValue.clusterType = clusterType;
            _resultValue.clusterUserName = clusterUserName;
            _resultValue.connectVia = connectVia;
            _resultValue.coreConfiguration = coreConfiguration;
            _resultValue.credential = credential;
            _resultValue.dataNodeSize = dataNodeSize;
            _resultValue.description = description;
            _resultValue.encryptedCredential = encryptedCredential;
            _resultValue.hBaseConfiguration = hBaseConfiguration;
            _resultValue.hcatalogLinkedServiceName = hcatalogLinkedServiceName;
            _resultValue.hdfsConfiguration = hdfsConfiguration;
            _resultValue.headNodeSize = headNodeSize;
            _resultValue.hiveConfiguration = hiveConfiguration;
            _resultValue.hostSubscriptionId = hostSubscriptionId;
            _resultValue.linkedServiceName = linkedServiceName;
            _resultValue.mapReduceConfiguration = mapReduceConfiguration;
            _resultValue.oozieConfiguration = oozieConfiguration;
            _resultValue.parameters = parameters;
            _resultValue.scriptActions = scriptActions;
            _resultValue.servicePrincipalId = servicePrincipalId;
            _resultValue.servicePrincipalKey = servicePrincipalKey;
            _resultValue.sparkVersion = sparkVersion;
            _resultValue.stormConfiguration = stormConfiguration;
            _resultValue.subnetName = subnetName;
            _resultValue.tenant = tenant;
            _resultValue.timeToLive = timeToLive;
            _resultValue.type = type;
            _resultValue.version = version;
            _resultValue.virtualNetworkId = virtualNetworkId;
            _resultValue.yarnConfiguration = yarnConfiguration;
            _resultValue.zookeeperNodeSize = zookeeperNodeSize;
            return _resultValue;
        }
    }
}