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

com.pulumi.snowflake.inputs.TaskState 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.snowflake.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.snowflake.inputs.TaskParameterArgs;
import com.pulumi.snowflake.inputs.TaskScheduleArgs;
import com.pulumi.snowflake.inputs.TaskShowOutputArgs;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final TaskState Empty = new TaskState();

    /**
     * Specifies the action that Snowflake performs for in-progress queries if connectivity is lost due to abrupt termination of a session (e.g. network outage, browser termination, service interruption). For more information, check [ABORT*DETACHED*QUERY docs](https://docs.snowflake.com/en/sql-reference/parameters#abort-detached-query).
     * 
     */
    @Import(name="abortDetachedQuery")
    private @Nullable Output abortDetachedQuery;

    /**
     * @return Specifies the action that Snowflake performs for in-progress queries if connectivity is lost due to abrupt termination of a session (e.g. network outage, browser termination, service interruption). For more information, check [ABORT*DETACHED*QUERY docs](https://docs.snowflake.com/en/sql-reference/parameters#abort-detached-query).
     * 
     */
    public Optional> abortDetachedQuery() {
        return Optional.ofNullable(this.abortDetachedQuery);
    }

    /**
     * Specifies one or more predecessor tasks for the current task. Use this option to [create a DAG](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-task-dag) of tasks or add this task to an existing DAG. A DAG is a series of tasks that starts with a scheduled root task and is linked together by dependencies. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    @Import(name="afters")
    private @Nullable Output> afters;

    /**
     * @return Specifies one or more predecessor tasks for the current task. Use this option to [create a DAG](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-task-dag) of tasks or add this task to an existing DAG. A DAG is a series of tasks that starts with a scheduled root task and is linked together by dependencies. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    public Optional>> afters() {
        return Optional.ofNullable(this.afters);
    }

    /**
     * By default, Snowflake ensures that only one instance of a particular DAG is allowed to run at a time, setting the parameter value to TRUE permits DAG runs to overlap. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
     * 
     */
    @Import(name="allowOverlappingExecution")
    private @Nullable Output allowOverlappingExecution;

    /**
     * @return By default, Snowflake ensures that only one instance of a particular DAG is allowed to run at a time, setting the parameter value to TRUE permits DAG runs to overlap. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
     * 
     */
    public Optional> allowOverlappingExecution() {
        return Optional.ofNullable(this.allowOverlappingExecution);
    }

    /**
     * Specifies whether autocommit is enabled for the session. Autocommit determines whether a DML statement, when executed without an active transaction, is automatically committed after the statement successfully completes. For more information, see [Transactions](https://docs.snowflake.com/en/sql-reference/transactions). For more information, check [AUTOCOMMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#autocommit).
     * 
     */
    @Import(name="autocommit")
    private @Nullable Output autocommit;

    /**
     * @return Specifies whether autocommit is enabled for the session. Autocommit determines whether a DML statement, when executed without an active transaction, is automatically committed after the statement successfully completes. For more information, see [Transactions](https://docs.snowflake.com/en/sql-reference/transactions). For more information, check [AUTOCOMMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#autocommit).
     * 
     */
    public Optional> autocommit() {
        return Optional.ofNullable(this.autocommit);
    }

    /**
     * The format of VARCHAR values passed as input to VARCHAR-to-BINARY conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-input-format).
     * 
     */
    @Import(name="binaryInputFormat")
    private @Nullable Output binaryInputFormat;

    /**
     * @return The format of VARCHAR values passed as input to VARCHAR-to-BINARY conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-input-format).
     * 
     */
    public Optional> binaryInputFormat() {
        return Optional.ofNullable(this.binaryInputFormat);
    }

    /**
     * The format for VARCHAR values returned as output by BINARY-to-VARCHAR conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-output-format).
     * 
     */
    @Import(name="binaryOutputFormat")
    private @Nullable Output binaryOutputFormat;

    /**
     * @return The format for VARCHAR values returned as output by BINARY-to-VARCHAR conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-output-format).
     * 
     */
    public Optional> binaryOutputFormat() {
        return Optional.ofNullable(this.binaryOutputFormat);
    }

    /**
     * Parameter that specifies the maximum amount of memory the JDBC driver or ODBC driver should use for the result set from queries (in MB). For more information, check [CLIENT*MEMORY*LIMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#client-memory-limit).
     * 
     */
    @Import(name="clientMemoryLimit")
    private @Nullable Output clientMemoryLimit;

    /**
     * @return Parameter that specifies the maximum amount of memory the JDBC driver or ODBC driver should use for the result set from queries (in MB). For more information, check [CLIENT*MEMORY*LIMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#client-memory-limit).
     * 
     */
    public Optional> clientMemoryLimit() {
        return Optional.ofNullable(this.clientMemoryLimit);
    }

    /**
     * For specific ODBC functions and JDBC methods, this parameter can change the default search scope from all databases/schemas to the current database/schema. The narrower search typically returns fewer rows and executes more quickly. For more information, check [CLIENT*METADATA*REQUEST*USE*CONNECTION_CTX docs](https://docs.snowflake.com/en/sql-reference/parameters#client-metadata-request-use-connection-ctx).
     * 
     */
    @Import(name="clientMetadataRequestUseConnectionCtx")
    private @Nullable Output clientMetadataRequestUseConnectionCtx;

    /**
     * @return For specific ODBC functions and JDBC methods, this parameter can change the default search scope from all databases/schemas to the current database/schema. The narrower search typically returns fewer rows and executes more quickly. For more information, check [CLIENT*METADATA*REQUEST*USE*CONNECTION_CTX docs](https://docs.snowflake.com/en/sql-reference/parameters#client-metadata-request-use-connection-ctx).
     * 
     */
    public Optional> clientMetadataRequestUseConnectionCtx() {
        return Optional.ofNullable(this.clientMetadataRequestUseConnectionCtx);
    }

    /**
     * Parameter that specifies the number of threads used by the client to pre-fetch large result sets. The driver will attempt to honor the parameter value, but defines the minimum and maximum values (depending on your system’s resources) to improve performance. For more information, check [CLIENT*PREFETCH*THREADS docs](https://docs.snowflake.com/en/sql-reference/parameters#client-prefetch-threads).
     * 
     */
    @Import(name="clientPrefetchThreads")
    private @Nullable Output clientPrefetchThreads;

    /**
     * @return Parameter that specifies the number of threads used by the client to pre-fetch large result sets. The driver will attempt to honor the parameter value, but defines the minimum and maximum values (depending on your system’s resources) to improve performance. For more information, check [CLIENT*PREFETCH*THREADS docs](https://docs.snowflake.com/en/sql-reference/parameters#client-prefetch-threads).
     * 
     */
    public Optional> clientPrefetchThreads() {
        return Optional.ofNullable(this.clientPrefetchThreads);
    }

    /**
     * Parameter that specifies the maximum size of each set (or chunk) of query results to download (in MB). The JDBC driver downloads query results in chunks. For more information, check [CLIENT*RESULT*CHUNK_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-chunk-size).
     * 
     */
    @Import(name="clientResultChunkSize")
    private @Nullable Output clientResultChunkSize;

    /**
     * @return Parameter that specifies the maximum size of each set (or chunk) of query results to download (in MB). The JDBC driver downloads query results in chunks. For more information, check [CLIENT*RESULT*CHUNK_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-chunk-size).
     * 
     */
    public Optional> clientResultChunkSize() {
        return Optional.ofNullable(this.clientResultChunkSize);
    }

    /**
     * Parameter that indicates whether to match column name case-insensitively in ResultSet.get* methods in JDBC. For more information, check [CLIENT*RESULT*COLUMN*CASE*INSENSITIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-column-case-insensitive).
     * 
     */
    @Import(name="clientResultColumnCaseInsensitive")
    private @Nullable Output clientResultColumnCaseInsensitive;

    /**
     * @return Parameter that indicates whether to match column name case-insensitively in ResultSet.get* methods in JDBC. For more information, check [CLIENT*RESULT*COLUMN*CASE*INSENSITIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-column-case-insensitive).
     * 
     */
    public Optional> clientResultColumnCaseInsensitive() {
        return Optional.ofNullable(this.clientResultColumnCaseInsensitive);
    }

    /**
     * Parameter that indicates whether to force a user to log in again after a period of inactivity in the session. For more information, check [CLIENT*SESSION*KEEP_ALIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive).
     * 
     */
    @Import(name="clientSessionKeepAlive")
    private @Nullable Output clientSessionKeepAlive;

    /**
     * @return Parameter that indicates whether to force a user to log in again after a period of inactivity in the session. For more information, check [CLIENT*SESSION*KEEP_ALIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive).
     * 
     */
    public Optional> clientSessionKeepAlive() {
        return Optional.ofNullable(this.clientSessionKeepAlive);
    }

    /**
     * Number of seconds in-between client attempts to update the token for the session. For more information, check [CLIENT*SESSION*KEEP*ALIVE*HEARTBEAT_FREQUENCY docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive-heartbeat-frequency).
     * 
     */
    @Import(name="clientSessionKeepAliveHeartbeatFrequency")
    private @Nullable Output clientSessionKeepAliveHeartbeatFrequency;

    /**
     * @return Number of seconds in-between client attempts to update the token for the session. For more information, check [CLIENT*SESSION*KEEP*ALIVE*HEARTBEAT_FREQUENCY docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive-heartbeat-frequency).
     * 
     */
    public Optional> clientSessionKeepAliveHeartbeatFrequency() {
        return Optional.ofNullable(this.clientSessionKeepAliveHeartbeatFrequency);
    }

    /**
     * Specifies the [TIMESTAMP_* variation](https://docs.snowflake.com/en/sql-reference/data-types-datetime.html#label-datatypes-timestamp-variations) to use when binding timestamp variables for JDBC or ODBC applications that use the bind API to load data. For more information, check [CLIENT*TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#client-timestamp-type-mapping).
     * 
     */
    @Import(name="clientTimestampTypeMapping")
    private @Nullable Output clientTimestampTypeMapping;

    /**
     * @return Specifies the [TIMESTAMP_* variation](https://docs.snowflake.com/en/sql-reference/data-types-datetime.html#label-datatypes-timestamp-variations) to use when binding timestamp variables for JDBC or ODBC applications that use the bind API to load data. For more information, check [CLIENT*TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#client-timestamp-type-mapping).
     * 
     */
    public Optional> clientTimestampTypeMapping() {
        return Optional.ofNullable(this.clientTimestampTypeMapping);
    }

    /**
     * Specifies a comment for the task.
     * 
     */
    @Import(name="comment")
    private @Nullable Output comment;

    /**
     * @return Specifies a comment for the task.
     * 
     */
    public Optional> comment() {
        return Optional.ofNullable(this.comment);
    }

    /**
     * Specifies a string representation of key value pairs that can be accessed by all tasks in the task graph. Must be in JSON format.
     * 
     */
    @Import(name="config")
    private @Nullable Output config;

    /**
     * @return Specifies a string representation of key value pairs that can be accessed by all tasks in the task graph. Must be in JSON format.
     * 
     */
    public Optional> config() {
        return Optional.ofNullable(this.config);
    }

    /**
     * The database in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    @Import(name="database")
    private @Nullable Output database;

    /**
     * @return The database in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    public Optional> database() {
        return Optional.ofNullable(this.database);
    }

    /**
     * Specifies the input format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-input-format).
     * 
     */
    @Import(name="dateInputFormat")
    private @Nullable Output dateInputFormat;

    /**
     * @return Specifies the input format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-input-format).
     * 
     */
    public Optional> dateInputFormat() {
        return Optional.ofNullable(this.dateInputFormat);
    }

    /**
     * Specifies the display format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-output-format).
     * 
     */
    @Import(name="dateOutputFormat")
    private @Nullable Output dateOutputFormat;

    /**
     * @return Specifies the display format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-output-format).
     * 
     */
    public Optional> dateOutputFormat() {
        return Optional.ofNullable(this.dateOutputFormat);
    }

    /**
     * Specifies whether to set the schema for unloaded Parquet files based on the logical column data types (i.e. the types in the unload SQL query or source table) or on the unloaded column values (i.e. the smallest data types and precision that support the values in the output columns of the unload SQL statement or source table). For more information, check [ENABLE*UNLOAD*PHYSICAL*TYPE*OPTIMIZATION docs](https://docs.snowflake.com/en/sql-reference/parameters#enable-unload-physical-type-optimization).
     * 
     */
    @Import(name="enableUnloadPhysicalTypeOptimization")
    private @Nullable Output enableUnloadPhysicalTypeOptimization;

    /**
     * @return Specifies whether to set the schema for unloaded Parquet files based on the logical column data types (i.e. the types in the unload SQL query or source table) or on the unloaded column values (i.e. the smallest data types and precision that support the values in the output columns of the unload SQL statement or source table). For more information, check [ENABLE*UNLOAD*PHYSICAL*TYPE*OPTIMIZATION docs](https://docs.snowflake.com/en/sql-reference/parameters#enable-unload-physical-type-optimization).
     * 
     */
    public Optional> enableUnloadPhysicalTypeOptimization() {
        return Optional.ofNullable(this.enableUnloadPhysicalTypeOptimization);
    }

    /**
     * Specifies the name of the notification integration used for error notifications. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`. For more information about this resource, see docs.
     * 
     */
    @Import(name="errorIntegration")
    private @Nullable Output errorIntegration;

    /**
     * @return Specifies the name of the notification integration used for error notifications. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`. For more information about this resource, see docs.
     * 
     */
    public Optional> errorIntegration() {
        return Optional.ofNullable(this.errorIntegration);
    }

    /**
     * Specifies whether to return an error when the [MERGE](https://docs.snowflake.com/en/sql-reference/sql/merge) command is used to update or delete a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_MERGE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-merge).
     * 
     */
    @Import(name="errorOnNondeterministicMerge")
    private @Nullable Output errorOnNondeterministicMerge;

    /**
     * @return Specifies whether to return an error when the [MERGE](https://docs.snowflake.com/en/sql-reference/sql/merge) command is used to update or delete a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_MERGE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-merge).
     * 
     */
    public Optional> errorOnNondeterministicMerge() {
        return Optional.ofNullable(this.errorOnNondeterministicMerge);
    }

    /**
     * Specifies whether to return an error when the [UPDATE](https://docs.snowflake.com/en/sql-reference/sql/update) command is used to update a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_UPDATE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-update).
     * 
     */
    @Import(name="errorOnNondeterministicUpdate")
    private @Nullable Output errorOnNondeterministicUpdate;

    /**
     * @return Specifies whether to return an error when the [UPDATE](https://docs.snowflake.com/en/sql-reference/sql/update) command is used to update a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_UPDATE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-update).
     * 
     */
    public Optional> errorOnNondeterministicUpdate() {
        return Optional.ofNullable(this.errorOnNondeterministicUpdate);
    }

    /**
     * Specifies the name of a root task that the finalizer task is associated with. Finalizer tasks run after all other tasks in the task graph run to completion. You can define the SQL of a finalizer task to handle notifications and the release and cleanup of resources that a task graph uses. For more information, see [Release and cleanup of task graphs](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-finalizer-task). Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    @Import(name="finalize")
    private @Nullable Output finalize;

    /**
     * @return Specifies the name of a root task that the finalizer task is associated with. Finalizer tasks run after all other tasks in the task graph run to completion. You can define the SQL of a finalizer task to handle notifications and the release and cleanup of resources that a task graph uses. For more information, see [Release and cleanup of task graphs](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-finalizer-task). Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    public Optional> finalize_() {
        return Optional.ofNullable(this.finalize);
    }

    /**
     * Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
     * 
     */
    @Import(name="fullyQualifiedName")
    private @Nullable Output fullyQualifiedName;

    /**
     * @return Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
     * 
     */
    public Optional> fullyQualifiedName() {
        return Optional.ofNullable(this.fullyQualifiedName);
    }

    /**
     * Display format for [GEOGRAPHY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geography). For more information, check [GEOGRAPHY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geography-output-format).
     * 
     */
    @Import(name="geographyOutputFormat")
    private @Nullable Output geographyOutputFormat;

    /**
     * @return Display format for [GEOGRAPHY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geography). For more information, check [GEOGRAPHY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geography-output-format).
     * 
     */
    public Optional> geographyOutputFormat() {
        return Optional.ofNullable(this.geographyOutputFormat);
    }

    /**
     * Display format for [GEOMETRY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geometry). For more information, check [GEOMETRY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geometry-output-format).
     * 
     */
    @Import(name="geometryOutputFormat")
    private @Nullable Output geometryOutputFormat;

    /**
     * @return Display format for [GEOMETRY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geometry). For more information, check [GEOMETRY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geometry-output-format).
     * 
     */
    public Optional> geometryOutputFormat() {
        return Optional.ofNullable(this.geometryOutputFormat);
    }

    /**
     * Specifies how JDBC processes TIMESTAMP*NTZ values. For more information, check *TREAT*TIMESTAMP*NTZ*AS*UTC docs[JDBC](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-treat-timestamp-ntz-as-utc).
     * 
     */
    @Import(name="jdbcTreatTimestampNtzAsUtc")
    private @Nullable Output jdbcTreatTimestampNtzAsUtc;

    /**
     * @return Specifies how JDBC processes TIMESTAMP*NTZ values. For more information, check *TREAT*TIMESTAMP*NTZ*AS*UTC docs[JDBC](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-treat-timestamp-ntz-as-utc).
     * 
     */
    public Optional> jdbcTreatTimestampNtzAsUtc() {
        return Optional.ofNullable(this.jdbcTreatTimestampNtzAsUtc);
    }

    /**
     * Specifies whether the JDBC Driver uses the time zone of the JVM or the time zone of the session (specified by the [TIMEZONE](https://docs.snowflake.com/en/sql-reference/parameters#label-timezone) parameter) for the getDate(), getTime(), and getTimestamp() methods of the ResultSet class. For more information, check [JDBC*USE*SESSION_TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-use-session-timezone).
     * 
     */
    @Import(name="jdbcUseSessionTimezone")
    private @Nullable Output jdbcUseSessionTimezone;

    /**
     * @return Specifies whether the JDBC Driver uses the time zone of the JVM or the time zone of the session (specified by the [TIMEZONE](https://docs.snowflake.com/en/sql-reference/parameters#label-timezone) parameter) for the getDate(), getTime(), and getTimestamp() methods of the ResultSet class. For more information, check [JDBC*USE*SESSION_TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-use-session-timezone).
     * 
     */
    public Optional> jdbcUseSessionTimezone() {
        return Optional.ofNullable(this.jdbcUseSessionTimezone);
    }

    /**
     * Specifies the number of blank spaces to indent each new element in JSON output in the session. Also specifies whether to insert newline characters after each element. For more information, check [JSON_INDENT docs](https://docs.snowflake.com/en/sql-reference/parameters#json-indent).
     * 
     */
    @Import(name="jsonIndent")
    private @Nullable Output jsonIndent;

    /**
     * @return Specifies the number of blank spaces to indent each new element in JSON output in the session. Also specifies whether to insert newline characters after each element. For more information, check [JSON_INDENT docs](https://docs.snowflake.com/en/sql-reference/parameters#json-indent).
     * 
     */
    public Optional> jsonIndent() {
        return Optional.ofNullable(this.jsonIndent);
    }

    /**
     * Number of seconds to wait while trying to lock a resource, before timing out and aborting the statement. For more information, check [LOCK_TIMEOUT docs](https://docs.snowflake.com/en/sql-reference/parameters#lock-timeout).
     * 
     */
    @Import(name="lockTimeout")
    private @Nullable Output lockTimeout;

    /**
     * @return Number of seconds to wait while trying to lock a resource, before timing out and aborting the statement. For more information, check [LOCK_TIMEOUT docs](https://docs.snowflake.com/en/sql-reference/parameters#lock-timeout).
     * 
     */
    public Optional> lockTimeout() {
        return Optional.ofNullable(this.lockTimeout);
    }

    /**
     * Specifies the severity level of messages that should be ingested and made available in the active event table. Messages at the specified level (and at more severe levels) are ingested. For more information about log levels, see [Setting log level](https://docs.snowflake.com/en/developer-guide/logging-tracing/logging-log-level). For more information, check [LOG_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#log-level).
     * 
     */
    @Import(name="logLevel")
    private @Nullable Output logLevel;

    /**
     * @return Specifies the severity level of messages that should be ingested and made available in the active event table. Messages at the specified level (and at more severe levels) are ingested. For more information about log levels, see [Setting log level](https://docs.snowflake.com/en/developer-guide/logging-tracing/logging-log-level). For more information, check [LOG_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#log-level).
     * 
     */
    public Optional> logLevel() {
        return Optional.ofNullable(this.logLevel);
    }

    /**
     * Number of statements to execute when using the multi-statement capability. For more information, check [MULTI*STATEMENT*COUNT docs](https://docs.snowflake.com/en/sql-reference/parameters#multi-statement-count).
     * 
     */
    @Import(name="multiStatementCount")
    private @Nullable Output multiStatementCount;

    /**
     * @return Number of statements to execute when using the multi-statement capability. For more information, check [MULTI*STATEMENT*COUNT docs](https://docs.snowflake.com/en/sql-reference/parameters#multi-statement-count).
     * 
     */
    public Optional> multiStatementCount() {
        return Optional.ofNullable(this.multiStatementCount);
    }

    /**
     * Specifies the identifier for the task; must be unique for the database and schema in which the task is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Specifies the identifier for the task; must be unique for the database and schema in which the task is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Specifies whether the ORDER or NOORDER property is set by default when you create a new sequence or add a new table column. The ORDER and NOORDER properties determine whether or not the values are generated for the sequence or auto-incremented column in [increasing or decreasing order](https://docs.snowflake.com/en/user-guide/querying-sequences.html#label-querying-sequences-increasing-values). For more information, check [NOORDER*SEQUENCE*AS_DEFAULT docs](https://docs.snowflake.com/en/sql-reference/parameters#noorder-sequence-as-default).
     * 
     */
    @Import(name="noorderSequenceAsDefault")
    private @Nullable Output noorderSequenceAsDefault;

    /**
     * @return Specifies whether the ORDER or NOORDER property is set by default when you create a new sequence or add a new table column. The ORDER and NOORDER properties determine whether or not the values are generated for the sequence or auto-incremented column in [increasing or decreasing order](https://docs.snowflake.com/en/user-guide/querying-sequences.html#label-querying-sequences-increasing-values). For more information, check [NOORDER*SEQUENCE*AS_DEFAULT docs](https://docs.snowflake.com/en/sql-reference/parameters#noorder-sequence-as-default).
     * 
     */
    public Optional> noorderSequenceAsDefault() {
        return Optional.ofNullable(this.noorderSequenceAsDefault);
    }

    /**
     * Specifies how ODBC processes columns that have a scale of zero (0). For more information, check [ODBC*TREAT*DECIMAL*AS*INT docs](https://docs.snowflake.com/en/sql-reference/parameters#odbc-treat-decimal-as-int).
     * 
     */
    @Import(name="odbcTreatDecimalAsInt")
    private @Nullable Output odbcTreatDecimalAsInt;

    /**
     * @return Specifies how ODBC processes columns that have a scale of zero (0). For more information, check [ODBC*TREAT*DECIMAL*AS*INT docs](https://docs.snowflake.com/en/sql-reference/parameters#odbc-treat-decimal-as-int).
     * 
     */
    public Optional> odbcTreatDecimalAsInt() {
        return Optional.ofNullable(this.odbcTreatDecimalAsInt);
    }

    /**
     * Outputs the result of `SHOW PARAMETERS IN TASK` for the given task.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output> parameters;

    /**
     * @return Outputs the result of `SHOW PARAMETERS IN TASK` for the given task.
     * 
     */
    public Optional>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * Optional string that can be used to tag queries and other SQL statements executed within a session. The tags are displayed in the output of the [QUERY*HISTORY, QUERY*HISTORY*BY**](https://docs.snowflake.com/en/sql-reference/functions/query_history) functions. For more information, check [QUERY_TAG docs](https://docs.snowflake.com/en/sql-reference/parameters#query-tag).
     * 
     */
    @Import(name="queryTag")
    private @Nullable Output queryTag;

    /**
     * @return Optional string that can be used to tag queries and other SQL statements executed within a session. The tags are displayed in the output of the [QUERY*HISTORY, QUERY*HISTORY*BY**](https://docs.snowflake.com/en/sql-reference/functions/query_history) functions. For more information, check [QUERY_TAG docs](https://docs.snowflake.com/en/sql-reference/parameters#query-tag).
     * 
     */
    public Optional> queryTag() {
        return Optional.ofNullable(this.queryTag);
    }

    /**
     * Specifies whether letters in double-quoted object identifiers are stored and resolved as uppercase letters. By default, Snowflake preserves the case of alphabetic characters when storing and resolving double-quoted identifiers (see [Identifier resolution](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing)). You can use this parameter in situations in which [third-party applications always use double quotes around identifiers](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing-parameter). For more information, check [QUOTED*IDENTIFIERS*IGNORE_CASE docs](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
     * 
     */
    @Import(name="quotedIdentifiersIgnoreCase")
    private @Nullable Output quotedIdentifiersIgnoreCase;

    /**
     * @return Specifies whether letters in double-quoted object identifiers are stored and resolved as uppercase letters. By default, Snowflake preserves the case of alphabetic characters when storing and resolving double-quoted identifiers (see [Identifier resolution](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing)). You can use this parameter in situations in which [third-party applications always use double quotes around identifiers](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing-parameter). For more information, check [QUOTED*IDENTIFIERS*IGNORE_CASE docs](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
     * 
     */
    public Optional> quotedIdentifiersIgnoreCase() {
        return Optional.ofNullable(this.quotedIdentifiersIgnoreCase);
    }

    /**
     * Specifies the maximum number of rows returned in a result set. A value of 0 specifies no maximum. For more information, check [ROWS*PER*RESULTSET docs](https://docs.snowflake.com/en/sql-reference/parameters#rows-per-resultset).
     * 
     */
    @Import(name="rowsPerResultset")
    private @Nullable Output rowsPerResultset;

    /**
     * @return Specifies the maximum number of rows returned in a result set. A value of 0 specifies no maximum. For more information, check [ROWS*PER*RESULTSET docs](https://docs.snowflake.com/en/sql-reference/parameters#rows-per-resultset).
     * 
     */
    public Optional> rowsPerResultset() {
        return Optional.ofNullable(this.rowsPerResultset);
    }

    /**
     * Specifies the DNS name of an Amazon S3 interface endpoint. Requests sent to the internal stage of an account via [AWS PrivateLink for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) use this endpoint to connect. For more information, see [Accessing Internal stages with dedicated interface endpoints](https://docs.snowflake.com/en/user-guide/private-internal-stages-aws.html#label-aws-privatelink-internal-stage-network-isolation). For more information, check [S3*STAGE*VPCE*DNS*NAME docs](https://docs.snowflake.com/en/sql-reference/parameters#s3-stage-vpce-dns-name).
     * 
     */
    @Import(name="s3StageVpceDnsName")
    private @Nullable Output s3StageVpceDnsName;

    /**
     * @return Specifies the DNS name of an Amazon S3 interface endpoint. Requests sent to the internal stage of an account via [AWS PrivateLink for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) use this endpoint to connect. For more information, see [Accessing Internal stages with dedicated interface endpoints](https://docs.snowflake.com/en/user-guide/private-internal-stages-aws.html#label-aws-privatelink-internal-stage-network-isolation). For more information, check [S3*STAGE*VPCE*DNS*NAME docs](https://docs.snowflake.com/en/sql-reference/parameters#s3-stage-vpce-dns-name).
     * 
     */
    public Optional> s3StageVpceDnsName() {
        return Optional.ofNullable(this.s3StageVpceDnsName);
    }

    /**
     * The schedule for periodically running the task. This can be a cron or interval in minutes. (Conflicts with finalize and after; when set, one of the sub-fields `minutes` or `using_cron` should be set)
     * 
     */
    @Import(name="schedule")
    private @Nullable Output schedule;

    /**
     * @return The schedule for periodically running the task. This can be a cron or interval in minutes. (Conflicts with finalize and after; when set, one of the sub-fields `minutes` or `using_cron` should be set)
     * 
     */
    public Optional> schedule() {
        return Optional.ofNullable(this.schedule);
    }

    /**
     * The schema in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    @Import(name="schema")
    private @Nullable Output schema;

    /**
     * @return The schema in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
     * 
     */
    public Optional> schema() {
        return Optional.ofNullable(this.schema);
    }

    /**
     * Specifies the path to search to resolve unqualified object names in queries. For more information, see [Name resolution in queries](https://docs.snowflake.com/en/sql-reference/name-resolution.html#label-object-name-resolution-search-path). Comma-separated list of identifiers. An identifier can be a fully or partially qualified schema name. For more information, check [SEARCH_PATH docs](https://docs.snowflake.com/en/sql-reference/parameters#search-path).
     * 
     */
    @Import(name="searchPath")
    private @Nullable Output searchPath;

    /**
     * @return Specifies the path to search to resolve unqualified object names in queries. For more information, see [Name resolution in queries](https://docs.snowflake.com/en/sql-reference/name-resolution.html#label-object-name-resolution-search-path). Comma-separated list of identifiers. An identifier can be a fully or partially qualified schema name. For more information, check [SEARCH_PATH docs](https://docs.snowflake.com/en/sql-reference/parameters#search-path).
     * 
     */
    public Optional> searchPath() {
        return Optional.ofNullable(this.searchPath);
    }

    /**
     * Outputs the result of `SHOW TASKS` for the given task.
     * 
     */
    @Import(name="showOutputs")
    private @Nullable Output> showOutputs;

    /**
     * @return Outputs the result of `SHOW TASKS` for the given task.
     * 
     */
    public Optional>> showOutputs() {
        return Optional.ofNullable(this.showOutputs);
    }

    /**
     * Any single SQL statement, or a call to a stored procedure, executed when the task runs.
     * 
     */
    @Import(name="sqlStatement")
    private @Nullable Output sqlStatement;

    /**
     * @return Any single SQL statement, or a call to a stored procedure, executed when the task runs.
     * 
     */
    public Optional> sqlStatement() {
        return Optional.ofNullable(this.sqlStatement);
    }

    /**
     * Specifies if the task should be started or suspended.
     * 
     */
    @Import(name="started")
    private @Nullable Output started;

    /**
     * @return Specifies if the task should be started or suspended.
     * 
     */
    public Optional> started() {
        return Optional.ofNullable(this.started);
    }

    /**
     * Amount of time, in seconds, a SQL statement (query, DDL, DML, etc.) remains queued for a warehouse before it is canceled by the system. This parameter can be used in conjunction with the [MAX*CONCURRENCY*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters#label-max-concurrency-level) parameter to ensure a warehouse is never backlogged. For more information, check [STATEMENT*QUEUED*TIMEOUT*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-queued-timeout-in-seconds).
     * 
     */
    @Import(name="statementQueuedTimeoutInSeconds")
    private @Nullable Output statementQueuedTimeoutInSeconds;

    /**
     * @return Amount of time, in seconds, a SQL statement (query, DDL, DML, etc.) remains queued for a warehouse before it is canceled by the system. This parameter can be used in conjunction with the [MAX*CONCURRENCY*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters#label-max-concurrency-level) parameter to ensure a warehouse is never backlogged. For more information, check [STATEMENT*QUEUED*TIMEOUT*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-queued-timeout-in-seconds).
     * 
     */
    public Optional> statementQueuedTimeoutInSeconds() {
        return Optional.ofNullable(this.statementQueuedTimeoutInSeconds);
    }

    /**
     * Amount of time, in seconds, after which a running SQL statement (query, DDL, DML, etc.) is canceled by the system. For more information, check [STATEMENT*TIMEOUT*IN_SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-timeout-in-seconds).
     * 
     */
    @Import(name="statementTimeoutInSeconds")
    private @Nullable Output statementTimeoutInSeconds;

    /**
     * @return Amount of time, in seconds, after which a running SQL statement (query, DDL, DML, etc.) is canceled by the system. For more information, check [STATEMENT*TIMEOUT*IN_SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-timeout-in-seconds).
     * 
     */
    public Optional> statementTimeoutInSeconds() {
        return Optional.ofNullable(this.statementTimeoutInSeconds);
    }

    /**
     * This parameter specifies whether JSON output in a session is compatible with the general standard (as described by [http://json.org](http://json.org)). By design, Snowflake allows JSON input that contains non-standard values; however, these non-standard values might result in Snowflake outputting JSON that is incompatible with other platforms and languages. This parameter, when enabled, ensures that Snowflake outputs valid/compatible JSON. For more information, check [STRICT*JSON*OUTPUT docs](https://docs.snowflake.com/en/sql-reference/parameters#strict-json-output).
     * 
     */
    @Import(name="strictJsonOutput")
    private @Nullable Output strictJsonOutput;

    /**
     * @return This parameter specifies whether JSON output in a session is compatible with the general standard (as described by [http://json.org](http://json.org)). By design, Snowflake allows JSON input that contains non-standard values; however, these non-standard values might result in Snowflake outputting JSON that is incompatible with other platforms and languages. This parameter, when enabled, ensures that Snowflake outputs valid/compatible JSON. For more information, check [STRICT*JSON*OUTPUT docs](https://docs.snowflake.com/en/sql-reference/parameters#strict-json-output).
     * 
     */
    public Optional> strictJsonOutput() {
        return Optional.ofNullable(this.strictJsonOutput);
    }

    /**
     * Specifies the number of consecutive failed task runs after which the current task is suspended automatically. The default is 0 (no automatic suspension). For more information, check [SUSPEND*TASK*AFTER*NUM*FAILURES docs](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
     * 
     */
    @Import(name="suspendTaskAfterNumFailures")
    private @Nullable Output suspendTaskAfterNumFailures;

    /**
     * @return Specifies the number of consecutive failed task runs after which the current task is suspended automatically. The default is 0 (no automatic suspension). For more information, check [SUSPEND*TASK*AFTER*NUM*FAILURES docs](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
     * 
     */
    public Optional> suspendTaskAfterNumFailures() {
        return Optional.ofNullable(this.suspendTaskAfterNumFailures);
    }

    /**
     * Specifies the number of automatic task graph retry attempts. If any task graphs complete in a FAILED state, Snowflake can automatically retry the task graphs from the last task in the graph that failed. For more information, check [TASK*AUTO*RETRY_ATTEMPTS docs](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
     * 
     */
    @Import(name="taskAutoRetryAttempts")
    private @Nullable Output taskAutoRetryAttempts;

    /**
     * @return Specifies the number of automatic task graph retry attempts. If any task graphs complete in a FAILED state, Snowflake can automatically retry the task graphs from the last task in the graph that failed. For more information, check [TASK*AUTO*RETRY_ATTEMPTS docs](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
     * 
     */
    public Optional> taskAutoRetryAttempts() {
        return Optional.ofNullable(this.taskAutoRetryAttempts);
    }

    /**
     * Specifies the input format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported time format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of times stored in the system during the session). For more information, check [TIME*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-input-format).
     * 
     */
    @Import(name="timeInputFormat")
    private @Nullable Output timeInputFormat;

    /**
     * @return Specifies the input format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported time format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of times stored in the system during the session). For more information, check [TIME*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-input-format).
     * 
     */
    public Optional> timeInputFormat() {
        return Optional.ofNullable(this.timeInputFormat);
    }

    /**
     * Specifies the display format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIME*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-output-format).
     * 
     */
    @Import(name="timeOutputFormat")
    private @Nullable Output timeOutputFormat;

    /**
     * @return Specifies the display format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIME*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-output-format).
     * 
     */
    public Optional> timeOutputFormat() {
        return Optional.ofNullable(this.timeOutputFormat);
    }

    /**
     * Specifies whether the [DATEADD](https://docs.snowflake.com/en/sql-reference/functions/dateadd) function (and its aliases) always consider a day to be exactly 24 hours for expressions that span multiple days. For more information, check [TIMESTAMP*DAY*IS*ALWAYS*24H docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-day-is-always-24h).
     * 
     */
    @Import(name="timestampDayIsAlways24h")
    private @Nullable Output timestampDayIsAlways24h;

    /**
     * @return Specifies whether the [DATEADD](https://docs.snowflake.com/en/sql-reference/functions/dateadd) function (and its aliases) always consider a day to be exactly 24 hours for expressions that span multiple days. For more information, check [TIMESTAMP*DAY*IS*ALWAYS*24H docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-day-is-always-24h).
     * 
     */
    public Optional> timestampDayIsAlways24h() {
        return Optional.ofNullable(this.timestampDayIsAlways24h);
    }

    /**
     * Specifies the input format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported timestamp format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of timestamps stored in the system during the session). For more information, check [TIMESTAMP*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-input-format).
     * 
     */
    @Import(name="timestampInputFormat")
    private @Nullable Output timestampInputFormat;

    /**
     * @return Specifies the input format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported timestamp format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of timestamps stored in the system during the session). For more information, check [TIMESTAMP*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-input-format).
     * 
     */
    public Optional> timestampInputFormat() {
        return Optional.ofNullable(this.timestampInputFormat);
    }

    /**
     * Specifies the display format for the TIMESTAMP*LTZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*LTZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ltz-output-format).
     * 
     */
    @Import(name="timestampLtzOutputFormat")
    private @Nullable Output timestampLtzOutputFormat;

    /**
     * @return Specifies the display format for the TIMESTAMP*LTZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*LTZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ltz-output-format).
     * 
     */
    public Optional> timestampLtzOutputFormat() {
        return Optional.ofNullable(this.timestampLtzOutputFormat);
    }

    /**
     * Specifies the display format for the TIMESTAMP*NTZ data type. For more information, check *NTZ*OUTPUT*FORMAT docs[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ntz-output-format).
     * 
     */
    @Import(name="timestampNtzOutputFormat")
    private @Nullable Output timestampNtzOutputFormat;

    /**
     * @return Specifies the display format for the TIMESTAMP*NTZ data type. For more information, check *NTZ*OUTPUT*FORMAT docs[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ntz-output-format).
     * 
     */
    public Optional> timestampNtzOutputFormat() {
        return Optional.ofNullable(this.timestampNtzOutputFormat);
    }

    /**
     * Specifies the display format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-output-format).
     * 
     */
    @Import(name="timestampOutputFormat")
    private @Nullable Output timestampOutputFormat;

    /**
     * @return Specifies the display format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-output-format).
     * 
     */
    public Optional> timestampOutputFormat() {
        return Optional.ofNullable(this.timestampOutputFormat);
    }

    /**
     * Specifies the TIMESTAMP** variation that the TIMESTAMP data type alias maps to. For more information, check [TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-type-mapping).
     * 
     */
    @Import(name="timestampTypeMapping")
    private @Nullable Output timestampTypeMapping;

    /**
     * @return Specifies the TIMESTAMP** variation that the TIMESTAMP data type alias maps to. For more information, check [TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-type-mapping).
     * 
     */
    public Optional> timestampTypeMapping() {
        return Optional.ofNullable(this.timestampTypeMapping);
    }

    /**
     * Specifies the display format for the TIMESTAMP*TZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*TZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-tz-output-format).
     * 
     */
    @Import(name="timestampTzOutputFormat")
    private @Nullable Output timestampTzOutputFormat;

    /**
     * @return Specifies the display format for the TIMESTAMP*TZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*TZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-tz-output-format).
     * 
     */
    public Optional> timestampTzOutputFormat() {
        return Optional.ofNullable(this.timestampTzOutputFormat);
    }

    /**
     * Specifies the time zone for the session. You can specify a [time zone name](https://data.iana.org/time-zones/tzdb-2021a/zone1970.tab) or a [link name](https://data.iana.org/time-zones/tzdb-2021a/backward) from release 2021a of the [IANA Time Zone Database](https://www.iana.org/time-zones) (e.g. America/Los_Angeles, Europe/London, UTC, Etc/GMT, etc.). For more information, check [TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#timezone).
     * 
     */
    @Import(name="timezone")
    private @Nullable Output timezone;

    /**
     * @return Specifies the time zone for the session. You can specify a [time zone name](https://data.iana.org/time-zones/tzdb-2021a/zone1970.tab) or a [link name](https://data.iana.org/time-zones/tzdb-2021a/backward) from release 2021a of the [IANA Time Zone Database](https://www.iana.org/time-zones) (e.g. America/Los_Angeles, Europe/London, UTC, Etc/GMT, etc.). For more information, check [TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#timezone).
     * 
     */
    public Optional> timezone() {
        return Optional.ofNullable(this.timezone);
    }

    /**
     * Controls how trace events are ingested into the event table. For more information about trace levels, see [Setting trace level](https://docs.snowflake.com/en/developer-guide/logging-tracing/tracing-trace-level). For more information, check [TRACE_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#trace-level).
     * 
     */
    @Import(name="traceLevel")
    private @Nullable Output traceLevel;

    /**
     * @return Controls how trace events are ingested into the event table. For more information about trace levels, see [Setting trace level](https://docs.snowflake.com/en/developer-guide/logging-tracing/tracing-trace-level). For more information, check [TRACE_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#trace-level).
     * 
     */
    public Optional> traceLevel() {
        return Optional.ofNullable(this.traceLevel);
    }

    /**
     * Specifies the action to perform when a statement issued within a non-autocommit transaction returns with an error. For more information, check [TRANSACTION*ABORT*ON_ERROR docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-abort-on-error).
     * 
     */
    @Import(name="transactionAbortOnError")
    private @Nullable Output transactionAbortOnError;

    /**
     * @return Specifies the action to perform when a statement issued within a non-autocommit transaction returns with an error. For more information, check [TRANSACTION*ABORT*ON_ERROR docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-abort-on-error).
     * 
     */
    public Optional> transactionAbortOnError() {
        return Optional.ofNullable(this.transactionAbortOnError);
    }

    /**
     * Specifies the isolation level for transactions in the user session. For more information, check [TRANSACTION*DEFAULT*ISOLATION_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-default-isolation-level).
     * 
     */
    @Import(name="transactionDefaultIsolationLevel")
    private @Nullable Output transactionDefaultIsolationLevel;

    /**
     * @return Specifies the isolation level for transactions in the user session. For more information, check [TRANSACTION*DEFAULT*ISOLATION_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-default-isolation-level).
     * 
     */
    public Optional> transactionDefaultIsolationLevel() {
        return Optional.ofNullable(this.transactionDefaultIsolationLevel);
    }

    /**
     * Specifies the “century start” year for 2-digit years (i.e. the earliest year such dates can represent). This parameter prevents ambiguous dates when importing or converting data with the `YY` date format component (i.e. years represented as 2 digits). For more information, check [TWO*DIGIT*CENTURY_START docs](https://docs.snowflake.com/en/sql-reference/parameters#two-digit-century-start).
     * 
     */
    @Import(name="twoDigitCenturyStart")
    private @Nullable Output twoDigitCenturyStart;

    /**
     * @return Specifies the “century start” year for 2-digit years (i.e. the earliest year such dates can represent). This parameter prevents ambiguous dates when importing or converting data with the `YY` date format component (i.e. years represented as 2 digits). For more information, check [TWO*DIGIT*CENTURY_START docs](https://docs.snowflake.com/en/sql-reference/parameters#two-digit-century-start).
     * 
     */
    public Optional> twoDigitCenturyStart() {
        return Optional.ofNullable(this.twoDigitCenturyStart);
    }

    /**
     * Determines if an unsupported (i.e. non-default) value specified for a constraint property returns an error. For more information, check [UNSUPPORTED*DDL*ACTION docs](https://docs.snowflake.com/en/sql-reference/parameters#unsupported-ddl-action).
     * 
     */
    @Import(name="unsupportedDdlAction")
    private @Nullable Output unsupportedDdlAction;

    /**
     * @return Determines if an unsupported (i.e. non-default) value specified for a constraint property returns an error. For more information, check [UNSUPPORTED*DDL*ACTION docs](https://docs.snowflake.com/en/sql-reference/parameters#unsupported-ddl-action).
     * 
     */
    public Optional> unsupportedDdlAction() {
        return Optional.ofNullable(this.unsupportedDdlAction);
    }

    /**
     * Specifies whether to reuse persisted query results, if available, when a matching query is submitted. For more information, check [USE*CACHED*RESULT docs](https://docs.snowflake.com/en/sql-reference/parameters#use-cached-result).
     * 
     */
    @Import(name="useCachedResult")
    private @Nullable Output useCachedResult;

    /**
     * @return Specifies whether to reuse persisted query results, if available, when a matching query is submitted. For more information, check [USE*CACHED*RESULT docs](https://docs.snowflake.com/en/sql-reference/parameters#use-cached-result).
     * 
     */
    public Optional> useCachedResult() {
        return Optional.ofNullable(this.useCachedResult);
    }

    /**
     * Specifies the size of the compute resources to provision for the first run of the task, before a task history is available for Snowflake to determine an ideal size. Once a task has successfully completed a few runs, Snowflake ignores this parameter setting. Valid values are (case-insensitive): %s. (Conflicts with warehouse). For more information about warehouses, see docs. For more information, check [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
     * 
     */
    @Import(name="userTaskManagedInitialWarehouseSize")
    private @Nullable Output userTaskManagedInitialWarehouseSize;

    /**
     * @return Specifies the size of the compute resources to provision for the first run of the task, before a task history is available for Snowflake to determine an ideal size. Once a task has successfully completed a few runs, Snowflake ignores this parameter setting. Valid values are (case-insensitive): %s. (Conflicts with warehouse). For more information about warehouses, see docs. For more information, check [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
     * 
     */
    public Optional> userTaskManagedInitialWarehouseSize() {
        return Optional.ofNullable(this.userTaskManagedInitialWarehouseSize);
    }

    /**
     * Minimum amount of time between Triggered Task executions in seconds For more information, check [USER*TASK*MINIMUM*TRIGGER*INTERVAL*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-minimum-trigger-interval-in-seconds).
     * 
     */
    @Import(name="userTaskMinimumTriggerIntervalInSeconds")
    private @Nullable Output userTaskMinimumTriggerIntervalInSeconds;

    /**
     * @return Minimum amount of time between Triggered Task executions in seconds For more information, check [USER*TASK*MINIMUM*TRIGGER*INTERVAL*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-minimum-trigger-interval-in-seconds).
     * 
     */
    public Optional> userTaskMinimumTriggerIntervalInSeconds() {
        return Optional.ofNullable(this.userTaskMinimumTriggerIntervalInSeconds);
    }

    /**
     * Specifies the time limit on a single run of the task before it times out (in milliseconds). For more information, check [USER*TASK*TIMEOUT_MS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
     * 
     */
    @Import(name="userTaskTimeoutMs")
    private @Nullable Output userTaskTimeoutMs;

    /**
     * @return Specifies the time limit on a single run of the task before it times out (in milliseconds). For more information, check [USER*TASK*TIMEOUT_MS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
     * 
     */
    public Optional> userTaskTimeoutMs() {
        return Optional.ofNullable(this.userTaskTimeoutMs);
    }

    /**
     * The warehouse the task will use. Omit this parameter to use Snowflake-managed compute resources for runs of this task. Due to Snowflake limitations warehouse identifier can consist of only upper-cased letters. (Conflicts with user*task*managed*initial*warehouse_size) For more information about this resource, see docs.
     * 
     */
    @Import(name="warehouse")
    private @Nullable Output warehouse;

    /**
     * @return The warehouse the task will use. Omit this parameter to use Snowflake-managed compute resources for runs of this task. Due to Snowflake limitations warehouse identifier can consist of only upper-cased letters. (Conflicts with user*task*managed*initial*warehouse_size) For more information about this resource, see docs.
     * 
     */
    public Optional> warehouse() {
        return Optional.ofNullable(this.warehouse);
    }

    /**
     * Specifies how the weeks in a given year are computed. `0`: The semantics used are equivalent to the ISO semantics, in which a week belongs to a given year if at least 4 days of that week are in that year. `1`: January 1 is included in the first week of the year and December 31 is included in the last week of the year. For more information, check [WEEK*OF*YEAR_POLICY docs](https://docs.snowflake.com/en/sql-reference/parameters#week-of-year-policy).
     * 
     */
    @Import(name="weekOfYearPolicy")
    private @Nullable Output weekOfYearPolicy;

    /**
     * @return Specifies how the weeks in a given year are computed. `0`: The semantics used are equivalent to the ISO semantics, in which a week belongs to a given year if at least 4 days of that week are in that year. `1`: January 1 is included in the first week of the year and December 31 is included in the last week of the year. For more information, check [WEEK*OF*YEAR_POLICY docs](https://docs.snowflake.com/en/sql-reference/parameters#week-of-year-policy).
     * 
     */
    public Optional> weekOfYearPolicy() {
        return Optional.ofNullable(this.weekOfYearPolicy);
    }

    /**
     * Specifies the first day of the week (used by week-related date functions). `0`: Legacy Snowflake behavior is used (i.e. ISO-like semantics). `1` (Monday) to `7` (Sunday): All the week-related functions use weeks that start on the specified day of the week. For more information, check [WEEK_START docs](https://docs.snowflake.com/en/sql-reference/parameters#week-start).
     * 
     */
    @Import(name="weekStart")
    private @Nullable Output weekStart;

    /**
     * @return Specifies the first day of the week (used by week-related date functions). `0`: Legacy Snowflake behavior is used (i.e. ISO-like semantics). `1` (Monday) to `7` (Sunday): All the week-related functions use weeks that start on the specified day of the week. For more information, check [WEEK_START docs](https://docs.snowflake.com/en/sql-reference/parameters#week-start).
     * 
     */
    public Optional> weekStart() {
        return Optional.ofNullable(this.weekStart);
    }

    /**
     * Specifies a Boolean SQL expression; multiple conditions joined with AND/OR are supported. When a task is triggered (based on its SCHEDULE or AFTER setting), it validates the conditions of the expression to determine whether to execute. If the conditions of the expression are not met, then the task skips the current run. Any tasks that identify this task as a predecessor also don’t run.
     * 
     */
    @Import(name="when")
    private @Nullable Output when;

    /**
     * @return Specifies a Boolean SQL expression; multiple conditions joined with AND/OR are supported. When a task is triggered (based on its SCHEDULE or AFTER setting), it validates the conditions of the expression to determine whether to execute. If the conditions of the expression are not met, then the task skips the current run. Any tasks that identify this task as a predecessor also don’t run.
     * 
     */
    public Optional> when() {
        return Optional.ofNullable(this.when);
    }

    private TaskState() {}

    private TaskState(TaskState $) {
        this.abortDetachedQuery = $.abortDetachedQuery;
        this.afters = $.afters;
        this.allowOverlappingExecution = $.allowOverlappingExecution;
        this.autocommit = $.autocommit;
        this.binaryInputFormat = $.binaryInputFormat;
        this.binaryOutputFormat = $.binaryOutputFormat;
        this.clientMemoryLimit = $.clientMemoryLimit;
        this.clientMetadataRequestUseConnectionCtx = $.clientMetadataRequestUseConnectionCtx;
        this.clientPrefetchThreads = $.clientPrefetchThreads;
        this.clientResultChunkSize = $.clientResultChunkSize;
        this.clientResultColumnCaseInsensitive = $.clientResultColumnCaseInsensitive;
        this.clientSessionKeepAlive = $.clientSessionKeepAlive;
        this.clientSessionKeepAliveHeartbeatFrequency = $.clientSessionKeepAliveHeartbeatFrequency;
        this.clientTimestampTypeMapping = $.clientTimestampTypeMapping;
        this.comment = $.comment;
        this.config = $.config;
        this.database = $.database;
        this.dateInputFormat = $.dateInputFormat;
        this.dateOutputFormat = $.dateOutputFormat;
        this.enableUnloadPhysicalTypeOptimization = $.enableUnloadPhysicalTypeOptimization;
        this.errorIntegration = $.errorIntegration;
        this.errorOnNondeterministicMerge = $.errorOnNondeterministicMerge;
        this.errorOnNondeterministicUpdate = $.errorOnNondeterministicUpdate;
        this.finalize = $.finalize;
        this.fullyQualifiedName = $.fullyQualifiedName;
        this.geographyOutputFormat = $.geographyOutputFormat;
        this.geometryOutputFormat = $.geometryOutputFormat;
        this.jdbcTreatTimestampNtzAsUtc = $.jdbcTreatTimestampNtzAsUtc;
        this.jdbcUseSessionTimezone = $.jdbcUseSessionTimezone;
        this.jsonIndent = $.jsonIndent;
        this.lockTimeout = $.lockTimeout;
        this.logLevel = $.logLevel;
        this.multiStatementCount = $.multiStatementCount;
        this.name = $.name;
        this.noorderSequenceAsDefault = $.noorderSequenceAsDefault;
        this.odbcTreatDecimalAsInt = $.odbcTreatDecimalAsInt;
        this.parameters = $.parameters;
        this.queryTag = $.queryTag;
        this.quotedIdentifiersIgnoreCase = $.quotedIdentifiersIgnoreCase;
        this.rowsPerResultset = $.rowsPerResultset;
        this.s3StageVpceDnsName = $.s3StageVpceDnsName;
        this.schedule = $.schedule;
        this.schema = $.schema;
        this.searchPath = $.searchPath;
        this.showOutputs = $.showOutputs;
        this.sqlStatement = $.sqlStatement;
        this.started = $.started;
        this.statementQueuedTimeoutInSeconds = $.statementQueuedTimeoutInSeconds;
        this.statementTimeoutInSeconds = $.statementTimeoutInSeconds;
        this.strictJsonOutput = $.strictJsonOutput;
        this.suspendTaskAfterNumFailures = $.suspendTaskAfterNumFailures;
        this.taskAutoRetryAttempts = $.taskAutoRetryAttempts;
        this.timeInputFormat = $.timeInputFormat;
        this.timeOutputFormat = $.timeOutputFormat;
        this.timestampDayIsAlways24h = $.timestampDayIsAlways24h;
        this.timestampInputFormat = $.timestampInputFormat;
        this.timestampLtzOutputFormat = $.timestampLtzOutputFormat;
        this.timestampNtzOutputFormat = $.timestampNtzOutputFormat;
        this.timestampOutputFormat = $.timestampOutputFormat;
        this.timestampTypeMapping = $.timestampTypeMapping;
        this.timestampTzOutputFormat = $.timestampTzOutputFormat;
        this.timezone = $.timezone;
        this.traceLevel = $.traceLevel;
        this.transactionAbortOnError = $.transactionAbortOnError;
        this.transactionDefaultIsolationLevel = $.transactionDefaultIsolationLevel;
        this.twoDigitCenturyStart = $.twoDigitCenturyStart;
        this.unsupportedDdlAction = $.unsupportedDdlAction;
        this.useCachedResult = $.useCachedResult;
        this.userTaskManagedInitialWarehouseSize = $.userTaskManagedInitialWarehouseSize;
        this.userTaskMinimumTriggerIntervalInSeconds = $.userTaskMinimumTriggerIntervalInSeconds;
        this.userTaskTimeoutMs = $.userTaskTimeoutMs;
        this.warehouse = $.warehouse;
        this.weekOfYearPolicy = $.weekOfYearPolicy;
        this.weekStart = $.weekStart;
        this.when = $.when;
    }

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

    public static final class Builder {
        private TaskState $;

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

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

        /**
         * @param abortDetachedQuery Specifies the action that Snowflake performs for in-progress queries if connectivity is lost due to abrupt termination of a session (e.g. network outage, browser termination, service interruption). For more information, check [ABORT*DETACHED*QUERY docs](https://docs.snowflake.com/en/sql-reference/parameters#abort-detached-query).
         * 
         * @return builder
         * 
         */
        public Builder abortDetachedQuery(@Nullable Output abortDetachedQuery) {
            $.abortDetachedQuery = abortDetachedQuery;
            return this;
        }

        /**
         * @param abortDetachedQuery Specifies the action that Snowflake performs for in-progress queries if connectivity is lost due to abrupt termination of a session (e.g. network outage, browser termination, service interruption). For more information, check [ABORT*DETACHED*QUERY docs](https://docs.snowflake.com/en/sql-reference/parameters#abort-detached-query).
         * 
         * @return builder
         * 
         */
        public Builder abortDetachedQuery(Boolean abortDetachedQuery) {
            return abortDetachedQuery(Output.of(abortDetachedQuery));
        }

        /**
         * @param afters Specifies one or more predecessor tasks for the current task. Use this option to [create a DAG](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-task-dag) of tasks or add this task to an existing DAG. A DAG is a series of tasks that starts with a scheduled root task and is linked together by dependencies. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder afters(@Nullable Output> afters) {
            $.afters = afters;
            return this;
        }

        /**
         * @param afters Specifies one or more predecessor tasks for the current task. Use this option to [create a DAG](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-task-dag) of tasks or add this task to an existing DAG. A DAG is a series of tasks that starts with a scheduled root task and is linked together by dependencies. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder afters(List afters) {
            return afters(Output.of(afters));
        }

        /**
         * @param afters Specifies one or more predecessor tasks for the current task. Use this option to [create a DAG](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-task-dag) of tasks or add this task to an existing DAG. A DAG is a series of tasks that starts with a scheduled root task and is linked together by dependencies. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder afters(String... afters) {
            return afters(List.of(afters));
        }

        /**
         * @param allowOverlappingExecution By default, Snowflake ensures that only one instance of a particular DAG is allowed to run at a time, setting the parameter value to TRUE permits DAG runs to overlap. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
         * 
         * @return builder
         * 
         */
        public Builder allowOverlappingExecution(@Nullable Output allowOverlappingExecution) {
            $.allowOverlappingExecution = allowOverlappingExecution;
            return this;
        }

        /**
         * @param allowOverlappingExecution By default, Snowflake ensures that only one instance of a particular DAG is allowed to run at a time, setting the parameter value to TRUE permits DAG runs to overlap. Available options are: "true" or "false". When the value is not set in the configuration the provider will put "default" there which means to use the Snowflake default for this value.
         * 
         * @return builder
         * 
         */
        public Builder allowOverlappingExecution(String allowOverlappingExecution) {
            return allowOverlappingExecution(Output.of(allowOverlappingExecution));
        }

        /**
         * @param autocommit Specifies whether autocommit is enabled for the session. Autocommit determines whether a DML statement, when executed without an active transaction, is automatically committed after the statement successfully completes. For more information, see [Transactions](https://docs.snowflake.com/en/sql-reference/transactions). For more information, check [AUTOCOMMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#autocommit).
         * 
         * @return builder
         * 
         */
        public Builder autocommit(@Nullable Output autocommit) {
            $.autocommit = autocommit;
            return this;
        }

        /**
         * @param autocommit Specifies whether autocommit is enabled for the session. Autocommit determines whether a DML statement, when executed without an active transaction, is automatically committed after the statement successfully completes. For more information, see [Transactions](https://docs.snowflake.com/en/sql-reference/transactions). For more information, check [AUTOCOMMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#autocommit).
         * 
         * @return builder
         * 
         */
        public Builder autocommit(Boolean autocommit) {
            return autocommit(Output.of(autocommit));
        }

        /**
         * @param binaryInputFormat The format of VARCHAR values passed as input to VARCHAR-to-BINARY conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-input-format).
         * 
         * @return builder
         * 
         */
        public Builder binaryInputFormat(@Nullable Output binaryInputFormat) {
            $.binaryInputFormat = binaryInputFormat;
            return this;
        }

        /**
         * @param binaryInputFormat The format of VARCHAR values passed as input to VARCHAR-to-BINARY conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-input-format).
         * 
         * @return builder
         * 
         */
        public Builder binaryInputFormat(String binaryInputFormat) {
            return binaryInputFormat(Output.of(binaryInputFormat));
        }

        /**
         * @param binaryOutputFormat The format for VARCHAR values returned as output by BINARY-to-VARCHAR conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-output-format).
         * 
         * @return builder
         * 
         */
        public Builder binaryOutputFormat(@Nullable Output binaryOutputFormat) {
            $.binaryOutputFormat = binaryOutputFormat;
            return this;
        }

        /**
         * @param binaryOutputFormat The format for VARCHAR values returned as output by BINARY-to-VARCHAR conversion functions. For more information, see [Binary input and output](https://docs.snowflake.com/en/sql-reference/binary-input-output). For more information, check [BINARY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#binary-output-format).
         * 
         * @return builder
         * 
         */
        public Builder binaryOutputFormat(String binaryOutputFormat) {
            return binaryOutputFormat(Output.of(binaryOutputFormat));
        }

        /**
         * @param clientMemoryLimit Parameter that specifies the maximum amount of memory the JDBC driver or ODBC driver should use for the result set from queries (in MB). For more information, check [CLIENT*MEMORY*LIMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#client-memory-limit).
         * 
         * @return builder
         * 
         */
        public Builder clientMemoryLimit(@Nullable Output clientMemoryLimit) {
            $.clientMemoryLimit = clientMemoryLimit;
            return this;
        }

        /**
         * @param clientMemoryLimit Parameter that specifies the maximum amount of memory the JDBC driver or ODBC driver should use for the result set from queries (in MB). For more information, check [CLIENT*MEMORY*LIMIT docs](https://docs.snowflake.com/en/sql-reference/parameters#client-memory-limit).
         * 
         * @return builder
         * 
         */
        public Builder clientMemoryLimit(Integer clientMemoryLimit) {
            return clientMemoryLimit(Output.of(clientMemoryLimit));
        }

        /**
         * @param clientMetadataRequestUseConnectionCtx For specific ODBC functions and JDBC methods, this parameter can change the default search scope from all databases/schemas to the current database/schema. The narrower search typically returns fewer rows and executes more quickly. For more information, check [CLIENT*METADATA*REQUEST*USE*CONNECTION_CTX docs](https://docs.snowflake.com/en/sql-reference/parameters#client-metadata-request-use-connection-ctx).
         * 
         * @return builder
         * 
         */
        public Builder clientMetadataRequestUseConnectionCtx(@Nullable Output clientMetadataRequestUseConnectionCtx) {
            $.clientMetadataRequestUseConnectionCtx = clientMetadataRequestUseConnectionCtx;
            return this;
        }

        /**
         * @param clientMetadataRequestUseConnectionCtx For specific ODBC functions and JDBC methods, this parameter can change the default search scope from all databases/schemas to the current database/schema. The narrower search typically returns fewer rows and executes more quickly. For more information, check [CLIENT*METADATA*REQUEST*USE*CONNECTION_CTX docs](https://docs.snowflake.com/en/sql-reference/parameters#client-metadata-request-use-connection-ctx).
         * 
         * @return builder
         * 
         */
        public Builder clientMetadataRequestUseConnectionCtx(Boolean clientMetadataRequestUseConnectionCtx) {
            return clientMetadataRequestUseConnectionCtx(Output.of(clientMetadataRequestUseConnectionCtx));
        }

        /**
         * @param clientPrefetchThreads Parameter that specifies the number of threads used by the client to pre-fetch large result sets. The driver will attempt to honor the parameter value, but defines the minimum and maximum values (depending on your system’s resources) to improve performance. For more information, check [CLIENT*PREFETCH*THREADS docs](https://docs.snowflake.com/en/sql-reference/parameters#client-prefetch-threads).
         * 
         * @return builder
         * 
         */
        public Builder clientPrefetchThreads(@Nullable Output clientPrefetchThreads) {
            $.clientPrefetchThreads = clientPrefetchThreads;
            return this;
        }

        /**
         * @param clientPrefetchThreads Parameter that specifies the number of threads used by the client to pre-fetch large result sets. The driver will attempt to honor the parameter value, but defines the minimum and maximum values (depending on your system’s resources) to improve performance. For more information, check [CLIENT*PREFETCH*THREADS docs](https://docs.snowflake.com/en/sql-reference/parameters#client-prefetch-threads).
         * 
         * @return builder
         * 
         */
        public Builder clientPrefetchThreads(Integer clientPrefetchThreads) {
            return clientPrefetchThreads(Output.of(clientPrefetchThreads));
        }

        /**
         * @param clientResultChunkSize Parameter that specifies the maximum size of each set (or chunk) of query results to download (in MB). The JDBC driver downloads query results in chunks. For more information, check [CLIENT*RESULT*CHUNK_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-chunk-size).
         * 
         * @return builder
         * 
         */
        public Builder clientResultChunkSize(@Nullable Output clientResultChunkSize) {
            $.clientResultChunkSize = clientResultChunkSize;
            return this;
        }

        /**
         * @param clientResultChunkSize Parameter that specifies the maximum size of each set (or chunk) of query results to download (in MB). The JDBC driver downloads query results in chunks. For more information, check [CLIENT*RESULT*CHUNK_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-chunk-size).
         * 
         * @return builder
         * 
         */
        public Builder clientResultChunkSize(Integer clientResultChunkSize) {
            return clientResultChunkSize(Output.of(clientResultChunkSize));
        }

        /**
         * @param clientResultColumnCaseInsensitive Parameter that indicates whether to match column name case-insensitively in ResultSet.get* methods in JDBC. For more information, check [CLIENT*RESULT*COLUMN*CASE*INSENSITIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-column-case-insensitive).
         * 
         * @return builder
         * 
         */
        public Builder clientResultColumnCaseInsensitive(@Nullable Output clientResultColumnCaseInsensitive) {
            $.clientResultColumnCaseInsensitive = clientResultColumnCaseInsensitive;
            return this;
        }

        /**
         * @param clientResultColumnCaseInsensitive Parameter that indicates whether to match column name case-insensitively in ResultSet.get* methods in JDBC. For more information, check [CLIENT*RESULT*COLUMN*CASE*INSENSITIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-result-column-case-insensitive).
         * 
         * @return builder
         * 
         */
        public Builder clientResultColumnCaseInsensitive(Boolean clientResultColumnCaseInsensitive) {
            return clientResultColumnCaseInsensitive(Output.of(clientResultColumnCaseInsensitive));
        }

        /**
         * @param clientSessionKeepAlive Parameter that indicates whether to force a user to log in again after a period of inactivity in the session. For more information, check [CLIENT*SESSION*KEEP_ALIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive).
         * 
         * @return builder
         * 
         */
        public Builder clientSessionKeepAlive(@Nullable Output clientSessionKeepAlive) {
            $.clientSessionKeepAlive = clientSessionKeepAlive;
            return this;
        }

        /**
         * @param clientSessionKeepAlive Parameter that indicates whether to force a user to log in again after a period of inactivity in the session. For more information, check [CLIENT*SESSION*KEEP_ALIVE docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive).
         * 
         * @return builder
         * 
         */
        public Builder clientSessionKeepAlive(Boolean clientSessionKeepAlive) {
            return clientSessionKeepAlive(Output.of(clientSessionKeepAlive));
        }

        /**
         * @param clientSessionKeepAliveHeartbeatFrequency Number of seconds in-between client attempts to update the token for the session. For more information, check [CLIENT*SESSION*KEEP*ALIVE*HEARTBEAT_FREQUENCY docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive-heartbeat-frequency).
         * 
         * @return builder
         * 
         */
        public Builder clientSessionKeepAliveHeartbeatFrequency(@Nullable Output clientSessionKeepAliveHeartbeatFrequency) {
            $.clientSessionKeepAliveHeartbeatFrequency = clientSessionKeepAliveHeartbeatFrequency;
            return this;
        }

        /**
         * @param clientSessionKeepAliveHeartbeatFrequency Number of seconds in-between client attempts to update the token for the session. For more information, check [CLIENT*SESSION*KEEP*ALIVE*HEARTBEAT_FREQUENCY docs](https://docs.snowflake.com/en/sql-reference/parameters#client-session-keep-alive-heartbeat-frequency).
         * 
         * @return builder
         * 
         */
        public Builder clientSessionKeepAliveHeartbeatFrequency(Integer clientSessionKeepAliveHeartbeatFrequency) {
            return clientSessionKeepAliveHeartbeatFrequency(Output.of(clientSessionKeepAliveHeartbeatFrequency));
        }

        /**
         * @param clientTimestampTypeMapping Specifies the [TIMESTAMP_* variation](https://docs.snowflake.com/en/sql-reference/data-types-datetime.html#label-datatypes-timestamp-variations) to use when binding timestamp variables for JDBC or ODBC applications that use the bind API to load data. For more information, check [CLIENT*TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#client-timestamp-type-mapping).
         * 
         * @return builder
         * 
         */
        public Builder clientTimestampTypeMapping(@Nullable Output clientTimestampTypeMapping) {
            $.clientTimestampTypeMapping = clientTimestampTypeMapping;
            return this;
        }

        /**
         * @param clientTimestampTypeMapping Specifies the [TIMESTAMP_* variation](https://docs.snowflake.com/en/sql-reference/data-types-datetime.html#label-datatypes-timestamp-variations) to use when binding timestamp variables for JDBC or ODBC applications that use the bind API to load data. For more information, check [CLIENT*TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#client-timestamp-type-mapping).
         * 
         * @return builder
         * 
         */
        public Builder clientTimestampTypeMapping(String clientTimestampTypeMapping) {
            return clientTimestampTypeMapping(Output.of(clientTimestampTypeMapping));
        }

        /**
         * @param comment Specifies a comment for the task.
         * 
         * @return builder
         * 
         */
        public Builder comment(@Nullable Output comment) {
            $.comment = comment;
            return this;
        }

        /**
         * @param comment Specifies a comment for the task.
         * 
         * @return builder
         * 
         */
        public Builder comment(String comment) {
            return comment(Output.of(comment));
        }

        /**
         * @param config Specifies a string representation of key value pairs that can be accessed by all tasks in the task graph. Must be in JSON format.
         * 
         * @return builder
         * 
         */
        public Builder config(@Nullable Output config) {
            $.config = config;
            return this;
        }

        /**
         * @param config Specifies a string representation of key value pairs that can be accessed by all tasks in the task graph. Must be in JSON format.
         * 
         * @return builder
         * 
         */
        public Builder config(String config) {
            return config(Output.of(config));
        }

        /**
         * @param database The database in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder database(@Nullable Output database) {
            $.database = database;
            return this;
        }

        /**
         * @param database The database in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder database(String database) {
            return database(Output.of(database));
        }

        /**
         * @param dateInputFormat Specifies the input format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-input-format).
         * 
         * @return builder
         * 
         */
        public Builder dateInputFormat(@Nullable Output dateInputFormat) {
            $.dateInputFormat = dateInputFormat;
            return this;
        }

        /**
         * @param dateInputFormat Specifies the input format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-input-format).
         * 
         * @return builder
         * 
         */
        public Builder dateInputFormat(String dateInputFormat) {
            return dateInputFormat(Output.of(dateInputFormat));
        }

        /**
         * @param dateOutputFormat Specifies the display format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-output-format).
         * 
         * @return builder
         * 
         */
        public Builder dateOutputFormat(@Nullable Output dateOutputFormat) {
            $.dateOutputFormat = dateOutputFormat;
            return this;
        }

        /**
         * @param dateOutputFormat Specifies the display format for the DATE data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [DATE*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#date-output-format).
         * 
         * @return builder
         * 
         */
        public Builder dateOutputFormat(String dateOutputFormat) {
            return dateOutputFormat(Output.of(dateOutputFormat));
        }

        /**
         * @param enableUnloadPhysicalTypeOptimization Specifies whether to set the schema for unloaded Parquet files based on the logical column data types (i.e. the types in the unload SQL query or source table) or on the unloaded column values (i.e. the smallest data types and precision that support the values in the output columns of the unload SQL statement or source table). For more information, check [ENABLE*UNLOAD*PHYSICAL*TYPE*OPTIMIZATION docs](https://docs.snowflake.com/en/sql-reference/parameters#enable-unload-physical-type-optimization).
         * 
         * @return builder
         * 
         */
        public Builder enableUnloadPhysicalTypeOptimization(@Nullable Output enableUnloadPhysicalTypeOptimization) {
            $.enableUnloadPhysicalTypeOptimization = enableUnloadPhysicalTypeOptimization;
            return this;
        }

        /**
         * @param enableUnloadPhysicalTypeOptimization Specifies whether to set the schema for unloaded Parquet files based on the logical column data types (i.e. the types in the unload SQL query or source table) or on the unloaded column values (i.e. the smallest data types and precision that support the values in the output columns of the unload SQL statement or source table). For more information, check [ENABLE*UNLOAD*PHYSICAL*TYPE*OPTIMIZATION docs](https://docs.snowflake.com/en/sql-reference/parameters#enable-unload-physical-type-optimization).
         * 
         * @return builder
         * 
         */
        public Builder enableUnloadPhysicalTypeOptimization(Boolean enableUnloadPhysicalTypeOptimization) {
            return enableUnloadPhysicalTypeOptimization(Output.of(enableUnloadPhysicalTypeOptimization));
        }

        /**
         * @param errorIntegration Specifies the name of the notification integration used for error notifications. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`. For more information about this resource, see docs.
         * 
         * @return builder
         * 
         */
        public Builder errorIntegration(@Nullable Output errorIntegration) {
            $.errorIntegration = errorIntegration;
            return this;
        }

        /**
         * @param errorIntegration Specifies the name of the notification integration used for error notifications. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`. For more information about this resource, see docs.
         * 
         * @return builder
         * 
         */
        public Builder errorIntegration(String errorIntegration) {
            return errorIntegration(Output.of(errorIntegration));
        }

        /**
         * @param errorOnNondeterministicMerge Specifies whether to return an error when the [MERGE](https://docs.snowflake.com/en/sql-reference/sql/merge) command is used to update or delete a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_MERGE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-merge).
         * 
         * @return builder
         * 
         */
        public Builder errorOnNondeterministicMerge(@Nullable Output errorOnNondeterministicMerge) {
            $.errorOnNondeterministicMerge = errorOnNondeterministicMerge;
            return this;
        }

        /**
         * @param errorOnNondeterministicMerge Specifies whether to return an error when the [MERGE](https://docs.snowflake.com/en/sql-reference/sql/merge) command is used to update or delete a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_MERGE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-merge).
         * 
         * @return builder
         * 
         */
        public Builder errorOnNondeterministicMerge(Boolean errorOnNondeterministicMerge) {
            return errorOnNondeterministicMerge(Output.of(errorOnNondeterministicMerge));
        }

        /**
         * @param errorOnNondeterministicUpdate Specifies whether to return an error when the [UPDATE](https://docs.snowflake.com/en/sql-reference/sql/update) command is used to update a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_UPDATE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-update).
         * 
         * @return builder
         * 
         */
        public Builder errorOnNondeterministicUpdate(@Nullable Output errorOnNondeterministicUpdate) {
            $.errorOnNondeterministicUpdate = errorOnNondeterministicUpdate;
            return this;
        }

        /**
         * @param errorOnNondeterministicUpdate Specifies whether to return an error when the [UPDATE](https://docs.snowflake.com/en/sql-reference/sql/update) command is used to update a target row that joins multiple source rows and the system cannot determine the action to perform on the target row. For more information, check [ERROR*ON*NONDETERMINISTIC_UPDATE docs](https://docs.snowflake.com/en/sql-reference/parameters#error-on-nondeterministic-update).
         * 
         * @return builder
         * 
         */
        public Builder errorOnNondeterministicUpdate(Boolean errorOnNondeterministicUpdate) {
            return errorOnNondeterministicUpdate(Output.of(errorOnNondeterministicUpdate));
        }

        /**
         * @param finalize Specifies the name of a root task that the finalizer task is associated with. Finalizer tasks run after all other tasks in the task graph run to completion. You can define the SQL of a finalizer task to handle notifications and the release and cleanup of resources that a task graph uses. For more information, see [Release and cleanup of task graphs](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-finalizer-task). Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder finalize_(@Nullable Output finalize) {
            $.finalize = finalize;
            return this;
        }

        /**
         * @param finalize Specifies the name of a root task that the finalizer task is associated with. Finalizer tasks run after all other tasks in the task graph run to completion. You can define the SQL of a finalizer task to handle notifications and the release and cleanup of resources that a task graph uses. For more information, see [Release and cleanup of task graphs](https://docs.snowflake.com/en/user-guide/tasks-graphs.html#label-finalizer-task). Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder finalize_(String finalize) {
            return finalize_(Output.of(finalize));
        }

        /**
         * @param fullyQualifiedName Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
         * 
         * @return builder
         * 
         */
        public Builder fullyQualifiedName(@Nullable Output fullyQualifiedName) {
            $.fullyQualifiedName = fullyQualifiedName;
            return this;
        }

        /**
         * @param fullyQualifiedName Fully qualified name of the resource. For more information, see [object name resolution](https://docs.snowflake.com/en/sql-reference/name-resolution).
         * 
         * @return builder
         * 
         */
        public Builder fullyQualifiedName(String fullyQualifiedName) {
            return fullyQualifiedName(Output.of(fullyQualifiedName));
        }

        /**
         * @param geographyOutputFormat Display format for [GEOGRAPHY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geography). For more information, check [GEOGRAPHY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geography-output-format).
         * 
         * @return builder
         * 
         */
        public Builder geographyOutputFormat(@Nullable Output geographyOutputFormat) {
            $.geographyOutputFormat = geographyOutputFormat;
            return this;
        }

        /**
         * @param geographyOutputFormat Display format for [GEOGRAPHY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geography). For more information, check [GEOGRAPHY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geography-output-format).
         * 
         * @return builder
         * 
         */
        public Builder geographyOutputFormat(String geographyOutputFormat) {
            return geographyOutputFormat(Output.of(geographyOutputFormat));
        }

        /**
         * @param geometryOutputFormat Display format for [GEOMETRY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geometry). For more information, check [GEOMETRY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geometry-output-format).
         * 
         * @return builder
         * 
         */
        public Builder geometryOutputFormat(@Nullable Output geometryOutputFormat) {
            $.geometryOutputFormat = geometryOutputFormat;
            return this;
        }

        /**
         * @param geometryOutputFormat Display format for [GEOMETRY values](https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#label-data-types-geometry). For more information, check [GEOMETRY*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#geometry-output-format).
         * 
         * @return builder
         * 
         */
        public Builder geometryOutputFormat(String geometryOutputFormat) {
            return geometryOutputFormat(Output.of(geometryOutputFormat));
        }

        /**
         * @param jdbcTreatTimestampNtzAsUtc Specifies how JDBC processes TIMESTAMP*NTZ values. For more information, check *TREAT*TIMESTAMP*NTZ*AS*UTC docs[JDBC](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-treat-timestamp-ntz-as-utc).
         * 
         * @return builder
         * 
         */
        public Builder jdbcTreatTimestampNtzAsUtc(@Nullable Output jdbcTreatTimestampNtzAsUtc) {
            $.jdbcTreatTimestampNtzAsUtc = jdbcTreatTimestampNtzAsUtc;
            return this;
        }

        /**
         * @param jdbcTreatTimestampNtzAsUtc Specifies how JDBC processes TIMESTAMP*NTZ values. For more information, check *TREAT*TIMESTAMP*NTZ*AS*UTC docs[JDBC](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-treat-timestamp-ntz-as-utc).
         * 
         * @return builder
         * 
         */
        public Builder jdbcTreatTimestampNtzAsUtc(Boolean jdbcTreatTimestampNtzAsUtc) {
            return jdbcTreatTimestampNtzAsUtc(Output.of(jdbcTreatTimestampNtzAsUtc));
        }

        /**
         * @param jdbcUseSessionTimezone Specifies whether the JDBC Driver uses the time zone of the JVM or the time zone of the session (specified by the [TIMEZONE](https://docs.snowflake.com/en/sql-reference/parameters#label-timezone) parameter) for the getDate(), getTime(), and getTimestamp() methods of the ResultSet class. For more information, check [JDBC*USE*SESSION_TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-use-session-timezone).
         * 
         * @return builder
         * 
         */
        public Builder jdbcUseSessionTimezone(@Nullable Output jdbcUseSessionTimezone) {
            $.jdbcUseSessionTimezone = jdbcUseSessionTimezone;
            return this;
        }

        /**
         * @param jdbcUseSessionTimezone Specifies whether the JDBC Driver uses the time zone of the JVM or the time zone of the session (specified by the [TIMEZONE](https://docs.snowflake.com/en/sql-reference/parameters#label-timezone) parameter) for the getDate(), getTime(), and getTimestamp() methods of the ResultSet class. For more information, check [JDBC*USE*SESSION_TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#jdbc-use-session-timezone).
         * 
         * @return builder
         * 
         */
        public Builder jdbcUseSessionTimezone(Boolean jdbcUseSessionTimezone) {
            return jdbcUseSessionTimezone(Output.of(jdbcUseSessionTimezone));
        }

        /**
         * @param jsonIndent Specifies the number of blank spaces to indent each new element in JSON output in the session. Also specifies whether to insert newline characters after each element. For more information, check [JSON_INDENT docs](https://docs.snowflake.com/en/sql-reference/parameters#json-indent).
         * 
         * @return builder
         * 
         */
        public Builder jsonIndent(@Nullable Output jsonIndent) {
            $.jsonIndent = jsonIndent;
            return this;
        }

        /**
         * @param jsonIndent Specifies the number of blank spaces to indent each new element in JSON output in the session. Also specifies whether to insert newline characters after each element. For more information, check [JSON_INDENT docs](https://docs.snowflake.com/en/sql-reference/parameters#json-indent).
         * 
         * @return builder
         * 
         */
        public Builder jsonIndent(Integer jsonIndent) {
            return jsonIndent(Output.of(jsonIndent));
        }

        /**
         * @param lockTimeout Number of seconds to wait while trying to lock a resource, before timing out and aborting the statement. For more information, check [LOCK_TIMEOUT docs](https://docs.snowflake.com/en/sql-reference/parameters#lock-timeout).
         * 
         * @return builder
         * 
         */
        public Builder lockTimeout(@Nullable Output lockTimeout) {
            $.lockTimeout = lockTimeout;
            return this;
        }

        /**
         * @param lockTimeout Number of seconds to wait while trying to lock a resource, before timing out and aborting the statement. For more information, check [LOCK_TIMEOUT docs](https://docs.snowflake.com/en/sql-reference/parameters#lock-timeout).
         * 
         * @return builder
         * 
         */
        public Builder lockTimeout(Integer lockTimeout) {
            return lockTimeout(Output.of(lockTimeout));
        }

        /**
         * @param logLevel Specifies the severity level of messages that should be ingested and made available in the active event table. Messages at the specified level (and at more severe levels) are ingested. For more information about log levels, see [Setting log level](https://docs.snowflake.com/en/developer-guide/logging-tracing/logging-log-level). For more information, check [LOG_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#log-level).
         * 
         * @return builder
         * 
         */
        public Builder logLevel(@Nullable Output logLevel) {
            $.logLevel = logLevel;
            return this;
        }

        /**
         * @param logLevel Specifies the severity level of messages that should be ingested and made available in the active event table. Messages at the specified level (and at more severe levels) are ingested. For more information about log levels, see [Setting log level](https://docs.snowflake.com/en/developer-guide/logging-tracing/logging-log-level). For more information, check [LOG_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#log-level).
         * 
         * @return builder
         * 
         */
        public Builder logLevel(String logLevel) {
            return logLevel(Output.of(logLevel));
        }

        /**
         * @param multiStatementCount Number of statements to execute when using the multi-statement capability. For more information, check [MULTI*STATEMENT*COUNT docs](https://docs.snowflake.com/en/sql-reference/parameters#multi-statement-count).
         * 
         * @return builder
         * 
         */
        public Builder multiStatementCount(@Nullable Output multiStatementCount) {
            $.multiStatementCount = multiStatementCount;
            return this;
        }

        /**
         * @param multiStatementCount Number of statements to execute when using the multi-statement capability. For more information, check [MULTI*STATEMENT*COUNT docs](https://docs.snowflake.com/en/sql-reference/parameters#multi-statement-count).
         * 
         * @return builder
         * 
         */
        public Builder multiStatementCount(Integer multiStatementCount) {
            return multiStatementCount(Output.of(multiStatementCount));
        }

        /**
         * @param name Specifies the identifier for the task; must be unique for the database and schema in which the task is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the identifier for the task; must be unique for the database and schema in which the task is created. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param noorderSequenceAsDefault Specifies whether the ORDER or NOORDER property is set by default when you create a new sequence or add a new table column. The ORDER and NOORDER properties determine whether or not the values are generated for the sequence or auto-incremented column in [increasing or decreasing order](https://docs.snowflake.com/en/user-guide/querying-sequences.html#label-querying-sequences-increasing-values). For more information, check [NOORDER*SEQUENCE*AS_DEFAULT docs](https://docs.snowflake.com/en/sql-reference/parameters#noorder-sequence-as-default).
         * 
         * @return builder
         * 
         */
        public Builder noorderSequenceAsDefault(@Nullable Output noorderSequenceAsDefault) {
            $.noorderSequenceAsDefault = noorderSequenceAsDefault;
            return this;
        }

        /**
         * @param noorderSequenceAsDefault Specifies whether the ORDER or NOORDER property is set by default when you create a new sequence or add a new table column. The ORDER and NOORDER properties determine whether or not the values are generated for the sequence or auto-incremented column in [increasing or decreasing order](https://docs.snowflake.com/en/user-guide/querying-sequences.html#label-querying-sequences-increasing-values). For more information, check [NOORDER*SEQUENCE*AS_DEFAULT docs](https://docs.snowflake.com/en/sql-reference/parameters#noorder-sequence-as-default).
         * 
         * @return builder
         * 
         */
        public Builder noorderSequenceAsDefault(Boolean noorderSequenceAsDefault) {
            return noorderSequenceAsDefault(Output.of(noorderSequenceAsDefault));
        }

        /**
         * @param odbcTreatDecimalAsInt Specifies how ODBC processes columns that have a scale of zero (0). For more information, check [ODBC*TREAT*DECIMAL*AS*INT docs](https://docs.snowflake.com/en/sql-reference/parameters#odbc-treat-decimal-as-int).
         * 
         * @return builder
         * 
         */
        public Builder odbcTreatDecimalAsInt(@Nullable Output odbcTreatDecimalAsInt) {
            $.odbcTreatDecimalAsInt = odbcTreatDecimalAsInt;
            return this;
        }

        /**
         * @param odbcTreatDecimalAsInt Specifies how ODBC processes columns that have a scale of zero (0). For more information, check [ODBC*TREAT*DECIMAL*AS*INT docs](https://docs.snowflake.com/en/sql-reference/parameters#odbc-treat-decimal-as-int).
         * 
         * @return builder
         * 
         */
        public Builder odbcTreatDecimalAsInt(Boolean odbcTreatDecimalAsInt) {
            return odbcTreatDecimalAsInt(Output.of(odbcTreatDecimalAsInt));
        }

        /**
         * @param parameters Outputs the result of `SHOW PARAMETERS IN TASK` for the given task.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters Outputs the result of `SHOW PARAMETERS IN TASK` for the given task.
         * 
         * @return builder
         * 
         */
        public Builder parameters(List parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param parameters Outputs the result of `SHOW PARAMETERS IN TASK` for the given task.
         * 
         * @return builder
         * 
         */
        public Builder parameters(TaskParameterArgs... parameters) {
            return parameters(List.of(parameters));
        }

        /**
         * @param queryTag Optional string that can be used to tag queries and other SQL statements executed within a session. The tags are displayed in the output of the [QUERY*HISTORY, QUERY*HISTORY*BY**](https://docs.snowflake.com/en/sql-reference/functions/query_history) functions. For more information, check [QUERY_TAG docs](https://docs.snowflake.com/en/sql-reference/parameters#query-tag).
         * 
         * @return builder
         * 
         */
        public Builder queryTag(@Nullable Output queryTag) {
            $.queryTag = queryTag;
            return this;
        }

        /**
         * @param queryTag Optional string that can be used to tag queries and other SQL statements executed within a session. The tags are displayed in the output of the [QUERY*HISTORY, QUERY*HISTORY*BY**](https://docs.snowflake.com/en/sql-reference/functions/query_history) functions. For more information, check [QUERY_TAG docs](https://docs.snowflake.com/en/sql-reference/parameters#query-tag).
         * 
         * @return builder
         * 
         */
        public Builder queryTag(String queryTag) {
            return queryTag(Output.of(queryTag));
        }

        /**
         * @param quotedIdentifiersIgnoreCase Specifies whether letters in double-quoted object identifiers are stored and resolved as uppercase letters. By default, Snowflake preserves the case of alphabetic characters when storing and resolving double-quoted identifiers (see [Identifier resolution](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing)). You can use this parameter in situations in which [third-party applications always use double quotes around identifiers](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing-parameter). For more information, check [QUOTED*IDENTIFIERS*IGNORE_CASE docs](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
         * 
         * @return builder
         * 
         */
        public Builder quotedIdentifiersIgnoreCase(@Nullable Output quotedIdentifiersIgnoreCase) {
            $.quotedIdentifiersIgnoreCase = quotedIdentifiersIgnoreCase;
            return this;
        }

        /**
         * @param quotedIdentifiersIgnoreCase Specifies whether letters in double-quoted object identifiers are stored and resolved as uppercase letters. By default, Snowflake preserves the case of alphabetic characters when storing and resolving double-quoted identifiers (see [Identifier resolution](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing)). You can use this parameter in situations in which [third-party applications always use double quotes around identifiers](https://docs.snowflake.com/en/sql-reference/identifiers-syntax.html#label-identifier-casing-parameter). For more information, check [QUOTED*IDENTIFIERS*IGNORE_CASE docs](https://docs.snowflake.com/en/sql-reference/parameters#quoted-identifiers-ignore-case).
         * 
         * @return builder
         * 
         */
        public Builder quotedIdentifiersIgnoreCase(Boolean quotedIdentifiersIgnoreCase) {
            return quotedIdentifiersIgnoreCase(Output.of(quotedIdentifiersIgnoreCase));
        }

        /**
         * @param rowsPerResultset Specifies the maximum number of rows returned in a result set. A value of 0 specifies no maximum. For more information, check [ROWS*PER*RESULTSET docs](https://docs.snowflake.com/en/sql-reference/parameters#rows-per-resultset).
         * 
         * @return builder
         * 
         */
        public Builder rowsPerResultset(@Nullable Output rowsPerResultset) {
            $.rowsPerResultset = rowsPerResultset;
            return this;
        }

        /**
         * @param rowsPerResultset Specifies the maximum number of rows returned in a result set. A value of 0 specifies no maximum. For more information, check [ROWS*PER*RESULTSET docs](https://docs.snowflake.com/en/sql-reference/parameters#rows-per-resultset).
         * 
         * @return builder
         * 
         */
        public Builder rowsPerResultset(Integer rowsPerResultset) {
            return rowsPerResultset(Output.of(rowsPerResultset));
        }

        /**
         * @param s3StageVpceDnsName Specifies the DNS name of an Amazon S3 interface endpoint. Requests sent to the internal stage of an account via [AWS PrivateLink for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) use this endpoint to connect. For more information, see [Accessing Internal stages with dedicated interface endpoints](https://docs.snowflake.com/en/user-guide/private-internal-stages-aws.html#label-aws-privatelink-internal-stage-network-isolation). For more information, check [S3*STAGE*VPCE*DNS*NAME docs](https://docs.snowflake.com/en/sql-reference/parameters#s3-stage-vpce-dns-name).
         * 
         * @return builder
         * 
         */
        public Builder s3StageVpceDnsName(@Nullable Output s3StageVpceDnsName) {
            $.s3StageVpceDnsName = s3StageVpceDnsName;
            return this;
        }

        /**
         * @param s3StageVpceDnsName Specifies the DNS name of an Amazon S3 interface endpoint. Requests sent to the internal stage of an account via [AWS PrivateLink for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) use this endpoint to connect. For more information, see [Accessing Internal stages with dedicated interface endpoints](https://docs.snowflake.com/en/user-guide/private-internal-stages-aws.html#label-aws-privatelink-internal-stage-network-isolation). For more information, check [S3*STAGE*VPCE*DNS*NAME docs](https://docs.snowflake.com/en/sql-reference/parameters#s3-stage-vpce-dns-name).
         * 
         * @return builder
         * 
         */
        public Builder s3StageVpceDnsName(String s3StageVpceDnsName) {
            return s3StageVpceDnsName(Output.of(s3StageVpceDnsName));
        }

        /**
         * @param schedule The schedule for periodically running the task. This can be a cron or interval in minutes. (Conflicts with finalize and after; when set, one of the sub-fields `minutes` or `using_cron` should be set)
         * 
         * @return builder
         * 
         */
        public Builder schedule(@Nullable Output schedule) {
            $.schedule = schedule;
            return this;
        }

        /**
         * @param schedule The schedule for periodically running the task. This can be a cron or interval in minutes. (Conflicts with finalize and after; when set, one of the sub-fields `minutes` or `using_cron` should be set)
         * 
         * @return builder
         * 
         */
        public Builder schedule(TaskScheduleArgs schedule) {
            return schedule(Output.of(schedule));
        }

        /**
         * @param schema The schema in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder schema(@Nullable Output schema) {
            $.schema = schema;
            return this;
        }

        /**
         * @param schema The schema in which to create the task. Due to technical limitations (read more here), avoid using the following characters: `|`, `.`, `"`.
         * 
         * @return builder
         * 
         */
        public Builder schema(String schema) {
            return schema(Output.of(schema));
        }

        /**
         * @param searchPath Specifies the path to search to resolve unqualified object names in queries. For more information, see [Name resolution in queries](https://docs.snowflake.com/en/sql-reference/name-resolution.html#label-object-name-resolution-search-path). Comma-separated list of identifiers. An identifier can be a fully or partially qualified schema name. For more information, check [SEARCH_PATH docs](https://docs.snowflake.com/en/sql-reference/parameters#search-path).
         * 
         * @return builder
         * 
         */
        public Builder searchPath(@Nullable Output searchPath) {
            $.searchPath = searchPath;
            return this;
        }

        /**
         * @param searchPath Specifies the path to search to resolve unqualified object names in queries. For more information, see [Name resolution in queries](https://docs.snowflake.com/en/sql-reference/name-resolution.html#label-object-name-resolution-search-path). Comma-separated list of identifiers. An identifier can be a fully or partially qualified schema name. For more information, check [SEARCH_PATH docs](https://docs.snowflake.com/en/sql-reference/parameters#search-path).
         * 
         * @return builder
         * 
         */
        public Builder searchPath(String searchPath) {
            return searchPath(Output.of(searchPath));
        }

        /**
         * @param showOutputs Outputs the result of `SHOW TASKS` for the given task.
         * 
         * @return builder
         * 
         */
        public Builder showOutputs(@Nullable Output> showOutputs) {
            $.showOutputs = showOutputs;
            return this;
        }

        /**
         * @param showOutputs Outputs the result of `SHOW TASKS` for the given task.
         * 
         * @return builder
         * 
         */
        public Builder showOutputs(List showOutputs) {
            return showOutputs(Output.of(showOutputs));
        }

        /**
         * @param showOutputs Outputs the result of `SHOW TASKS` for the given task.
         * 
         * @return builder
         * 
         */
        public Builder showOutputs(TaskShowOutputArgs... showOutputs) {
            return showOutputs(List.of(showOutputs));
        }

        /**
         * @param sqlStatement Any single SQL statement, or a call to a stored procedure, executed when the task runs.
         * 
         * @return builder
         * 
         */
        public Builder sqlStatement(@Nullable Output sqlStatement) {
            $.sqlStatement = sqlStatement;
            return this;
        }

        /**
         * @param sqlStatement Any single SQL statement, or a call to a stored procedure, executed when the task runs.
         * 
         * @return builder
         * 
         */
        public Builder sqlStatement(String sqlStatement) {
            return sqlStatement(Output.of(sqlStatement));
        }

        /**
         * @param started Specifies if the task should be started or suspended.
         * 
         * @return builder
         * 
         */
        public Builder started(@Nullable Output started) {
            $.started = started;
            return this;
        }

        /**
         * @param started Specifies if the task should be started or suspended.
         * 
         * @return builder
         * 
         */
        public Builder started(Boolean started) {
            return started(Output.of(started));
        }

        /**
         * @param statementQueuedTimeoutInSeconds Amount of time, in seconds, a SQL statement (query, DDL, DML, etc.) remains queued for a warehouse before it is canceled by the system. This parameter can be used in conjunction with the [MAX*CONCURRENCY*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters#label-max-concurrency-level) parameter to ensure a warehouse is never backlogged. For more information, check [STATEMENT*QUEUED*TIMEOUT*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-queued-timeout-in-seconds).
         * 
         * @return builder
         * 
         */
        public Builder statementQueuedTimeoutInSeconds(@Nullable Output statementQueuedTimeoutInSeconds) {
            $.statementQueuedTimeoutInSeconds = statementQueuedTimeoutInSeconds;
            return this;
        }

        /**
         * @param statementQueuedTimeoutInSeconds Amount of time, in seconds, a SQL statement (query, DDL, DML, etc.) remains queued for a warehouse before it is canceled by the system. This parameter can be used in conjunction with the [MAX*CONCURRENCY*LEVEL](https://docs.snowflake.com/en/sql-reference/parameters#label-max-concurrency-level) parameter to ensure a warehouse is never backlogged. For more information, check [STATEMENT*QUEUED*TIMEOUT*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-queued-timeout-in-seconds).
         * 
         * @return builder
         * 
         */
        public Builder statementQueuedTimeoutInSeconds(Integer statementQueuedTimeoutInSeconds) {
            return statementQueuedTimeoutInSeconds(Output.of(statementQueuedTimeoutInSeconds));
        }

        /**
         * @param statementTimeoutInSeconds Amount of time, in seconds, after which a running SQL statement (query, DDL, DML, etc.) is canceled by the system. For more information, check [STATEMENT*TIMEOUT*IN_SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-timeout-in-seconds).
         * 
         * @return builder
         * 
         */
        public Builder statementTimeoutInSeconds(@Nullable Output statementTimeoutInSeconds) {
            $.statementTimeoutInSeconds = statementTimeoutInSeconds;
            return this;
        }

        /**
         * @param statementTimeoutInSeconds Amount of time, in seconds, after which a running SQL statement (query, DDL, DML, etc.) is canceled by the system. For more information, check [STATEMENT*TIMEOUT*IN_SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#statement-timeout-in-seconds).
         * 
         * @return builder
         * 
         */
        public Builder statementTimeoutInSeconds(Integer statementTimeoutInSeconds) {
            return statementTimeoutInSeconds(Output.of(statementTimeoutInSeconds));
        }

        /**
         * @param strictJsonOutput This parameter specifies whether JSON output in a session is compatible with the general standard (as described by [http://json.org](http://json.org)). By design, Snowflake allows JSON input that contains non-standard values; however, these non-standard values might result in Snowflake outputting JSON that is incompatible with other platforms and languages. This parameter, when enabled, ensures that Snowflake outputs valid/compatible JSON. For more information, check [STRICT*JSON*OUTPUT docs](https://docs.snowflake.com/en/sql-reference/parameters#strict-json-output).
         * 
         * @return builder
         * 
         */
        public Builder strictJsonOutput(@Nullable Output strictJsonOutput) {
            $.strictJsonOutput = strictJsonOutput;
            return this;
        }

        /**
         * @param strictJsonOutput This parameter specifies whether JSON output in a session is compatible with the general standard (as described by [http://json.org](http://json.org)). By design, Snowflake allows JSON input that contains non-standard values; however, these non-standard values might result in Snowflake outputting JSON that is incompatible with other platforms and languages. This parameter, when enabled, ensures that Snowflake outputs valid/compatible JSON. For more information, check [STRICT*JSON*OUTPUT docs](https://docs.snowflake.com/en/sql-reference/parameters#strict-json-output).
         * 
         * @return builder
         * 
         */
        public Builder strictJsonOutput(Boolean strictJsonOutput) {
            return strictJsonOutput(Output.of(strictJsonOutput));
        }

        /**
         * @param suspendTaskAfterNumFailures Specifies the number of consecutive failed task runs after which the current task is suspended automatically. The default is 0 (no automatic suspension). For more information, check [SUSPEND*TASK*AFTER*NUM*FAILURES docs](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
         * 
         * @return builder
         * 
         */
        public Builder suspendTaskAfterNumFailures(@Nullable Output suspendTaskAfterNumFailures) {
            $.suspendTaskAfterNumFailures = suspendTaskAfterNumFailures;
            return this;
        }

        /**
         * @param suspendTaskAfterNumFailures Specifies the number of consecutive failed task runs after which the current task is suspended automatically. The default is 0 (no automatic suspension). For more information, check [SUSPEND*TASK*AFTER*NUM*FAILURES docs](https://docs.snowflake.com/en/sql-reference/parameters#suspend-task-after-num-failures).
         * 
         * @return builder
         * 
         */
        public Builder suspendTaskAfterNumFailures(Integer suspendTaskAfterNumFailures) {
            return suspendTaskAfterNumFailures(Output.of(suspendTaskAfterNumFailures));
        }

        /**
         * @param taskAutoRetryAttempts Specifies the number of automatic task graph retry attempts. If any task graphs complete in a FAILED state, Snowflake can automatically retry the task graphs from the last task in the graph that failed. For more information, check [TASK*AUTO*RETRY_ATTEMPTS docs](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
         * 
         * @return builder
         * 
         */
        public Builder taskAutoRetryAttempts(@Nullable Output taskAutoRetryAttempts) {
            $.taskAutoRetryAttempts = taskAutoRetryAttempts;
            return this;
        }

        /**
         * @param taskAutoRetryAttempts Specifies the number of automatic task graph retry attempts. If any task graphs complete in a FAILED state, Snowflake can automatically retry the task graphs from the last task in the graph that failed. For more information, check [TASK*AUTO*RETRY_ATTEMPTS docs](https://docs.snowflake.com/en/sql-reference/parameters#task-auto-retry-attempts).
         * 
         * @return builder
         * 
         */
        public Builder taskAutoRetryAttempts(Integer taskAutoRetryAttempts) {
            return taskAutoRetryAttempts(Output.of(taskAutoRetryAttempts));
        }

        /**
         * @param timeInputFormat Specifies the input format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported time format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of times stored in the system during the session). For more information, check [TIME*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-input-format).
         * 
         * @return builder
         * 
         */
        public Builder timeInputFormat(@Nullable Output timeInputFormat) {
            $.timeInputFormat = timeInputFormat;
            return this;
        }

        /**
         * @param timeInputFormat Specifies the input format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported time format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of times stored in the system during the session). For more information, check [TIME*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-input-format).
         * 
         * @return builder
         * 
         */
        public Builder timeInputFormat(String timeInputFormat) {
            return timeInputFormat(Output.of(timeInputFormat));
        }

        /**
         * @param timeOutputFormat Specifies the display format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIME*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timeOutputFormat(@Nullable Output timeOutputFormat) {
            $.timeOutputFormat = timeOutputFormat;
            return this;
        }

        /**
         * @param timeOutputFormat Specifies the display format for the TIME data type. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIME*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#time-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timeOutputFormat(String timeOutputFormat) {
            return timeOutputFormat(Output.of(timeOutputFormat));
        }

        /**
         * @param timestampDayIsAlways24h Specifies whether the [DATEADD](https://docs.snowflake.com/en/sql-reference/functions/dateadd) function (and its aliases) always consider a day to be exactly 24 hours for expressions that span multiple days. For more information, check [TIMESTAMP*DAY*IS*ALWAYS*24H docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-day-is-always-24h).
         * 
         * @return builder
         * 
         */
        public Builder timestampDayIsAlways24h(@Nullable Output timestampDayIsAlways24h) {
            $.timestampDayIsAlways24h = timestampDayIsAlways24h;
            return this;
        }

        /**
         * @param timestampDayIsAlways24h Specifies whether the [DATEADD](https://docs.snowflake.com/en/sql-reference/functions/dateadd) function (and its aliases) always consider a day to be exactly 24 hours for expressions that span multiple days. For more information, check [TIMESTAMP*DAY*IS*ALWAYS*24H docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-day-is-always-24h).
         * 
         * @return builder
         * 
         */
        public Builder timestampDayIsAlways24h(Boolean timestampDayIsAlways24h) {
            return timestampDayIsAlways24h(Output.of(timestampDayIsAlways24h));
        }

        /**
         * @param timestampInputFormat Specifies the input format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported timestamp format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of timestamps stored in the system during the session). For more information, check [TIMESTAMP*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-input-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampInputFormat(@Nullable Output timestampInputFormat) {
            $.timestampInputFormat = timestampInputFormat;
            return this;
        }

        /**
         * @param timestampInputFormat Specifies the input format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). Any valid, supported timestamp format or AUTO (AUTO specifies that Snowflake attempts to automatically detect the format of timestamps stored in the system during the session). For more information, check [TIMESTAMP*INPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-input-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampInputFormat(String timestampInputFormat) {
            return timestampInputFormat(Output.of(timestampInputFormat));
        }

        /**
         * @param timestampLtzOutputFormat Specifies the display format for the TIMESTAMP*LTZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*LTZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ltz-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampLtzOutputFormat(@Nullable Output timestampLtzOutputFormat) {
            $.timestampLtzOutputFormat = timestampLtzOutputFormat;
            return this;
        }

        /**
         * @param timestampLtzOutputFormat Specifies the display format for the TIMESTAMP*LTZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*LTZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ltz-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampLtzOutputFormat(String timestampLtzOutputFormat) {
            return timestampLtzOutputFormat(Output.of(timestampLtzOutputFormat));
        }

        /**
         * @param timestampNtzOutputFormat Specifies the display format for the TIMESTAMP*NTZ data type. For more information, check *NTZ*OUTPUT*FORMAT docs[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ntz-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampNtzOutputFormat(@Nullable Output timestampNtzOutputFormat) {
            $.timestampNtzOutputFormat = timestampNtzOutputFormat;
            return this;
        }

        /**
         * @param timestampNtzOutputFormat Specifies the display format for the TIMESTAMP*NTZ data type. For more information, check *NTZ*OUTPUT*FORMAT docs[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-ntz-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampNtzOutputFormat(String timestampNtzOutputFormat) {
            return timestampNtzOutputFormat(Output.of(timestampNtzOutputFormat));
        }

        /**
         * @param timestampOutputFormat Specifies the display format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampOutputFormat(@Nullable Output timestampOutputFormat) {
            $.timestampOutputFormat = timestampOutputFormat;
            return this;
        }

        /**
         * @param timestampOutputFormat Specifies the display format for the TIMESTAMP data type alias. For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampOutputFormat(String timestampOutputFormat) {
            return timestampOutputFormat(Output.of(timestampOutputFormat));
        }

        /**
         * @param timestampTypeMapping Specifies the TIMESTAMP** variation that the TIMESTAMP data type alias maps to. For more information, check [TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-type-mapping).
         * 
         * @return builder
         * 
         */
        public Builder timestampTypeMapping(@Nullable Output timestampTypeMapping) {
            $.timestampTypeMapping = timestampTypeMapping;
            return this;
        }

        /**
         * @param timestampTypeMapping Specifies the TIMESTAMP** variation that the TIMESTAMP data type alias maps to. For more information, check [TIMESTAMP*TYPE_MAPPING docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-type-mapping).
         * 
         * @return builder
         * 
         */
        public Builder timestampTypeMapping(String timestampTypeMapping) {
            return timestampTypeMapping(Output.of(timestampTypeMapping));
        }

        /**
         * @param timestampTzOutputFormat Specifies the display format for the TIMESTAMP*TZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*TZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-tz-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampTzOutputFormat(@Nullable Output timestampTzOutputFormat) {
            $.timestampTzOutputFormat = timestampTzOutputFormat;
            return this;
        }

        /**
         * @param timestampTzOutputFormat Specifies the display format for the TIMESTAMP*TZ data type. If no format is specified, defaults to *OUTPUT*FORMAT[TIMESTAMP](https://docs.snowflake.com/en/sql-reference/parameters#label-timestamp-output-format). For more information, see [Date and time input and output formats](https://docs.snowflake.com/en/sql-reference/date-time-input-output). For more information, check [TIMESTAMP*TZ*OUTPUT*FORMAT docs](https://docs.snowflake.com/en/sql-reference/parameters#timestamp-tz-output-format).
         * 
         * @return builder
         * 
         */
        public Builder timestampTzOutputFormat(String timestampTzOutputFormat) {
            return timestampTzOutputFormat(Output.of(timestampTzOutputFormat));
        }

        /**
         * @param timezone Specifies the time zone for the session. You can specify a [time zone name](https://data.iana.org/time-zones/tzdb-2021a/zone1970.tab) or a [link name](https://data.iana.org/time-zones/tzdb-2021a/backward) from release 2021a of the [IANA Time Zone Database](https://www.iana.org/time-zones) (e.g. America/Los_Angeles, Europe/London, UTC, Etc/GMT, etc.). For more information, check [TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#timezone).
         * 
         * @return builder
         * 
         */
        public Builder timezone(@Nullable Output timezone) {
            $.timezone = timezone;
            return this;
        }

        /**
         * @param timezone Specifies the time zone for the session. You can specify a [time zone name](https://data.iana.org/time-zones/tzdb-2021a/zone1970.tab) or a [link name](https://data.iana.org/time-zones/tzdb-2021a/backward) from release 2021a of the [IANA Time Zone Database](https://www.iana.org/time-zones) (e.g. America/Los_Angeles, Europe/London, UTC, Etc/GMT, etc.). For more information, check [TIMEZONE docs](https://docs.snowflake.com/en/sql-reference/parameters#timezone).
         * 
         * @return builder
         * 
         */
        public Builder timezone(String timezone) {
            return timezone(Output.of(timezone));
        }

        /**
         * @param traceLevel Controls how trace events are ingested into the event table. For more information about trace levels, see [Setting trace level](https://docs.snowflake.com/en/developer-guide/logging-tracing/tracing-trace-level). For more information, check [TRACE_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#trace-level).
         * 
         * @return builder
         * 
         */
        public Builder traceLevel(@Nullable Output traceLevel) {
            $.traceLevel = traceLevel;
            return this;
        }

        /**
         * @param traceLevel Controls how trace events are ingested into the event table. For more information about trace levels, see [Setting trace level](https://docs.snowflake.com/en/developer-guide/logging-tracing/tracing-trace-level). For more information, check [TRACE_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#trace-level).
         * 
         * @return builder
         * 
         */
        public Builder traceLevel(String traceLevel) {
            return traceLevel(Output.of(traceLevel));
        }

        /**
         * @param transactionAbortOnError Specifies the action to perform when a statement issued within a non-autocommit transaction returns with an error. For more information, check [TRANSACTION*ABORT*ON_ERROR docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-abort-on-error).
         * 
         * @return builder
         * 
         */
        public Builder transactionAbortOnError(@Nullable Output transactionAbortOnError) {
            $.transactionAbortOnError = transactionAbortOnError;
            return this;
        }

        /**
         * @param transactionAbortOnError Specifies the action to perform when a statement issued within a non-autocommit transaction returns with an error. For more information, check [TRANSACTION*ABORT*ON_ERROR docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-abort-on-error).
         * 
         * @return builder
         * 
         */
        public Builder transactionAbortOnError(Boolean transactionAbortOnError) {
            return transactionAbortOnError(Output.of(transactionAbortOnError));
        }

        /**
         * @param transactionDefaultIsolationLevel Specifies the isolation level for transactions in the user session. For more information, check [TRANSACTION*DEFAULT*ISOLATION_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-default-isolation-level).
         * 
         * @return builder
         * 
         */
        public Builder transactionDefaultIsolationLevel(@Nullable Output transactionDefaultIsolationLevel) {
            $.transactionDefaultIsolationLevel = transactionDefaultIsolationLevel;
            return this;
        }

        /**
         * @param transactionDefaultIsolationLevel Specifies the isolation level for transactions in the user session. For more information, check [TRANSACTION*DEFAULT*ISOLATION_LEVEL docs](https://docs.snowflake.com/en/sql-reference/parameters#transaction-default-isolation-level).
         * 
         * @return builder
         * 
         */
        public Builder transactionDefaultIsolationLevel(String transactionDefaultIsolationLevel) {
            return transactionDefaultIsolationLevel(Output.of(transactionDefaultIsolationLevel));
        }

        /**
         * @param twoDigitCenturyStart Specifies the “century start” year for 2-digit years (i.e. the earliest year such dates can represent). This parameter prevents ambiguous dates when importing or converting data with the `YY` date format component (i.e. years represented as 2 digits). For more information, check [TWO*DIGIT*CENTURY_START docs](https://docs.snowflake.com/en/sql-reference/parameters#two-digit-century-start).
         * 
         * @return builder
         * 
         */
        public Builder twoDigitCenturyStart(@Nullable Output twoDigitCenturyStart) {
            $.twoDigitCenturyStart = twoDigitCenturyStart;
            return this;
        }

        /**
         * @param twoDigitCenturyStart Specifies the “century start” year for 2-digit years (i.e. the earliest year such dates can represent). This parameter prevents ambiguous dates when importing or converting data with the `YY` date format component (i.e. years represented as 2 digits). For more information, check [TWO*DIGIT*CENTURY_START docs](https://docs.snowflake.com/en/sql-reference/parameters#two-digit-century-start).
         * 
         * @return builder
         * 
         */
        public Builder twoDigitCenturyStart(Integer twoDigitCenturyStart) {
            return twoDigitCenturyStart(Output.of(twoDigitCenturyStart));
        }

        /**
         * @param unsupportedDdlAction Determines if an unsupported (i.e. non-default) value specified for a constraint property returns an error. For more information, check [UNSUPPORTED*DDL*ACTION docs](https://docs.snowflake.com/en/sql-reference/parameters#unsupported-ddl-action).
         * 
         * @return builder
         * 
         */
        public Builder unsupportedDdlAction(@Nullable Output unsupportedDdlAction) {
            $.unsupportedDdlAction = unsupportedDdlAction;
            return this;
        }

        /**
         * @param unsupportedDdlAction Determines if an unsupported (i.e. non-default) value specified for a constraint property returns an error. For more information, check [UNSUPPORTED*DDL*ACTION docs](https://docs.snowflake.com/en/sql-reference/parameters#unsupported-ddl-action).
         * 
         * @return builder
         * 
         */
        public Builder unsupportedDdlAction(String unsupportedDdlAction) {
            return unsupportedDdlAction(Output.of(unsupportedDdlAction));
        }

        /**
         * @param useCachedResult Specifies whether to reuse persisted query results, if available, when a matching query is submitted. For more information, check [USE*CACHED*RESULT docs](https://docs.snowflake.com/en/sql-reference/parameters#use-cached-result).
         * 
         * @return builder
         * 
         */
        public Builder useCachedResult(@Nullable Output useCachedResult) {
            $.useCachedResult = useCachedResult;
            return this;
        }

        /**
         * @param useCachedResult Specifies whether to reuse persisted query results, if available, when a matching query is submitted. For more information, check [USE*CACHED*RESULT docs](https://docs.snowflake.com/en/sql-reference/parameters#use-cached-result).
         * 
         * @return builder
         * 
         */
        public Builder useCachedResult(Boolean useCachedResult) {
            return useCachedResult(Output.of(useCachedResult));
        }

        /**
         * @param userTaskManagedInitialWarehouseSize Specifies the size of the compute resources to provision for the first run of the task, before a task history is available for Snowflake to determine an ideal size. Once a task has successfully completed a few runs, Snowflake ignores this parameter setting. Valid values are (case-insensitive): %s. (Conflicts with warehouse). For more information about warehouses, see docs. For more information, check [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
         * 
         * @return builder
         * 
         */
        public Builder userTaskManagedInitialWarehouseSize(@Nullable Output userTaskManagedInitialWarehouseSize) {
            $.userTaskManagedInitialWarehouseSize = userTaskManagedInitialWarehouseSize;
            return this;
        }

        /**
         * @param userTaskManagedInitialWarehouseSize Specifies the size of the compute resources to provision for the first run of the task, before a task history is available for Snowflake to determine an ideal size. Once a task has successfully completed a few runs, Snowflake ignores this parameter setting. Valid values are (case-insensitive): %s. (Conflicts with warehouse). For more information about warehouses, see docs. For more information, check [USER*TASK*MANAGED*INITIAL*WAREHOUSE_SIZE docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-managed-initial-warehouse-size).
         * 
         * @return builder
         * 
         */
        public Builder userTaskManagedInitialWarehouseSize(String userTaskManagedInitialWarehouseSize) {
            return userTaskManagedInitialWarehouseSize(Output.of(userTaskManagedInitialWarehouseSize));
        }

        /**
         * @param userTaskMinimumTriggerIntervalInSeconds Minimum amount of time between Triggered Task executions in seconds For more information, check [USER*TASK*MINIMUM*TRIGGER*INTERVAL*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-minimum-trigger-interval-in-seconds).
         * 
         * @return builder
         * 
         */
        public Builder userTaskMinimumTriggerIntervalInSeconds(@Nullable Output userTaskMinimumTriggerIntervalInSeconds) {
            $.userTaskMinimumTriggerIntervalInSeconds = userTaskMinimumTriggerIntervalInSeconds;
            return this;
        }

        /**
         * @param userTaskMinimumTriggerIntervalInSeconds Minimum amount of time between Triggered Task executions in seconds For more information, check [USER*TASK*MINIMUM*TRIGGER*INTERVAL*IN*SECONDS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-minimum-trigger-interval-in-seconds).
         * 
         * @return builder
         * 
         */
        public Builder userTaskMinimumTriggerIntervalInSeconds(Integer userTaskMinimumTriggerIntervalInSeconds) {
            return userTaskMinimumTriggerIntervalInSeconds(Output.of(userTaskMinimumTriggerIntervalInSeconds));
        }

        /**
         * @param userTaskTimeoutMs Specifies the time limit on a single run of the task before it times out (in milliseconds). For more information, check [USER*TASK*TIMEOUT_MS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
         * 
         * @return builder
         * 
         */
        public Builder userTaskTimeoutMs(@Nullable Output userTaskTimeoutMs) {
            $.userTaskTimeoutMs = userTaskTimeoutMs;
            return this;
        }

        /**
         * @param userTaskTimeoutMs Specifies the time limit on a single run of the task before it times out (in milliseconds). For more information, check [USER*TASK*TIMEOUT_MS docs](https://docs.snowflake.com/en/sql-reference/parameters#user-task-timeout-ms).
         * 
         * @return builder
         * 
         */
        public Builder userTaskTimeoutMs(Integer userTaskTimeoutMs) {
            return userTaskTimeoutMs(Output.of(userTaskTimeoutMs));
        }

        /**
         * @param warehouse The warehouse the task will use. Omit this parameter to use Snowflake-managed compute resources for runs of this task. Due to Snowflake limitations warehouse identifier can consist of only upper-cased letters. (Conflicts with user*task*managed*initial*warehouse_size) For more information about this resource, see docs.
         * 
         * @return builder
         * 
         */
        public Builder warehouse(@Nullable Output warehouse) {
            $.warehouse = warehouse;
            return this;
        }

        /**
         * @param warehouse The warehouse the task will use. Omit this parameter to use Snowflake-managed compute resources for runs of this task. Due to Snowflake limitations warehouse identifier can consist of only upper-cased letters. (Conflicts with user*task*managed*initial*warehouse_size) For more information about this resource, see docs.
         * 
         * @return builder
         * 
         */
        public Builder warehouse(String warehouse) {
            return warehouse(Output.of(warehouse));
        }

        /**
         * @param weekOfYearPolicy Specifies how the weeks in a given year are computed. `0`: The semantics used are equivalent to the ISO semantics, in which a week belongs to a given year if at least 4 days of that week are in that year. `1`: January 1 is included in the first week of the year and December 31 is included in the last week of the year. For more information, check [WEEK*OF*YEAR_POLICY docs](https://docs.snowflake.com/en/sql-reference/parameters#week-of-year-policy).
         * 
         * @return builder
         * 
         */
        public Builder weekOfYearPolicy(@Nullable Output weekOfYearPolicy) {
            $.weekOfYearPolicy = weekOfYearPolicy;
            return this;
        }

        /**
         * @param weekOfYearPolicy Specifies how the weeks in a given year are computed. `0`: The semantics used are equivalent to the ISO semantics, in which a week belongs to a given year if at least 4 days of that week are in that year. `1`: January 1 is included in the first week of the year and December 31 is included in the last week of the year. For more information, check [WEEK*OF*YEAR_POLICY docs](https://docs.snowflake.com/en/sql-reference/parameters#week-of-year-policy).
         * 
         * @return builder
         * 
         */
        public Builder weekOfYearPolicy(Integer weekOfYearPolicy) {
            return weekOfYearPolicy(Output.of(weekOfYearPolicy));
        }

        /**
         * @param weekStart Specifies the first day of the week (used by week-related date functions). `0`: Legacy Snowflake behavior is used (i.e. ISO-like semantics). `1` (Monday) to `7` (Sunday): All the week-related functions use weeks that start on the specified day of the week. For more information, check [WEEK_START docs](https://docs.snowflake.com/en/sql-reference/parameters#week-start).
         * 
         * @return builder
         * 
         */
        public Builder weekStart(@Nullable Output weekStart) {
            $.weekStart = weekStart;
            return this;
        }

        /**
         * @param weekStart Specifies the first day of the week (used by week-related date functions). `0`: Legacy Snowflake behavior is used (i.e. ISO-like semantics). `1` (Monday) to `7` (Sunday): All the week-related functions use weeks that start on the specified day of the week. For more information, check [WEEK_START docs](https://docs.snowflake.com/en/sql-reference/parameters#week-start).
         * 
         * @return builder
         * 
         */
        public Builder weekStart(Integer weekStart) {
            return weekStart(Output.of(weekStart));
        }

        /**
         * @param when Specifies a Boolean SQL expression; multiple conditions joined with AND/OR are supported. When a task is triggered (based on its SCHEDULE or AFTER setting), it validates the conditions of the expression to determine whether to execute. If the conditions of the expression are not met, then the task skips the current run. Any tasks that identify this task as a predecessor also don’t run.
         * 
         * @return builder
         * 
         */
        public Builder when(@Nullable Output when) {
            $.when = when;
            return this;
        }

        /**
         * @param when Specifies a Boolean SQL expression; multiple conditions joined with AND/OR are supported. When a task is triggered (based on its SCHEDULE or AFTER setting), it validates the conditions of the expression to determine whether to execute. If the conditions of the expression are not met, then the task skips the current run. Any tasks that identify this task as a predecessor also don’t run.
         * 
         * @return builder
         * 
         */
        public Builder when(String when) {
            return when(Output.of(when));
        }

        public TaskState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy