# Update Job

Launch stage: GA

`POST /api/2.2/jobs/update`

Add, update, or remove specific settings of an existing job. Use the _Reset_ endpoint to overwrite all job settings.

API scopes: jobs

## Request body

- `job_id` (int64, optional)
  The canonical identifier of the job to update. This field is required.
  Example: `11223344`
- `new_settings` (object, optional)
  The new settings for the job.
  
   Top-level fields specified in `new_settings` are completely replaced, except for arrays which are merged. That is, new and existing entries are completely replaced based on the respective key fields, i.e. `task_key` or `job_cluster_key`, while previous entries are kept.
  
   Partially updating nested fields is not supported.
  
   Changes to the field `JobSettings.timeout_seconds` are applied to active runs. Changes to other fields are applied to future runs only.
  - `name` (string, optional)
    An optional name for the job. The maximum length is 4096 bytes in UTF-8 encoding.
    Default: `Untitled`
    Example: `A multitask job`
    Constraints: `<= 4096 characters`
  - `description` (string, optional)
    An optional description for the job. The maximum length is 27700 characters in UTF-8 encoding.
    Example: `This job contain multiple tasks that are required to produce the weekly shark sightings report.`
    Constraints: `<= 27700 characters`
  - `email_notifications` (object, optional)
    An optional set of email addresses that is notified when runs of this job begin or complete as well as when this job is deleted.
    - `on_start` (array of string, optional)
      A list of email addresses to be notified when a run begins. If not specified on job creation, reset, or update, the list is empty, and notifications are not sent.
      Example: `user.name@databricks.com`
    - `on_success` (array of string, optional)
      A list of email addresses to be notified when a run successfully completes. A run is considered to have completed successfully if it ends with a `TERMINATED` `life_cycle_state` and a `SUCCESS` result_state. If not specified on job creation, reset, or update, the list is empty, and notifications are not sent.
      Example: `user.name@databricks.com`
    - `on_failure` (array of string, optional)
      A list of email addresses to be notified when a run unsuccessfully completes. A run is considered to have completed unsuccessfully if it ends with an `INTERNAL_ERROR` `life_cycle_state` or a `FAILED`, or `TIMED_OUT` result_state. If this is not specified on job creation, reset, or update the list is empty, and notifications are not sent.
      Example: `user.name@databricks.com`
    - `on_duration_warning_threshold_exceeded` (array of string, optional)
      A list of email addresses to be notified when the duration of a run exceeds the threshold specified for the `RUN_DURATION_SECONDS` metric in the `health` field. If no rule for the `RUN_DURATION_SECONDS` metric is specified in the `health` field for the job, notifications are not sent.
      Example: `user.name@databricks.com`
    - `on_streaming_backlog_exceeded` (array of string, optional, Public Preview)
      A list of email addresses to notify when any streaming backlog thresholds are exceeded for any stream.
       Streaming backlog thresholds can be set in the `health` field using the following metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`.
       Alerting is based on the 10-minute average of these metrics. If the issue persists, notifications are resent every 30 minutes.
      Example: `user.name@databricks.com`
    - `no_alert_for_skipped_runs` (boolean, optional)
      If true, do not send email to recipients specified in `on_failure` if the run is skipped.
       This field is `deprecated`. Please use the `notification_settings.no_alert_for_skipped_runs` field.
      Default: `false`
      Example: `false`
  - `webhook_notifications` (object, optional)
    A collection of system notification IDs to notify when runs of this job begin or complete.
    - `on_start` (array of object, optional)
      An optional list of system notification IDs to call when the run starts. A maximum of 3 destinations can be specified for the `on_start` property.
      - `id` (string, optional)
    - `on_success` (array of object, optional)
      An optional list of system notification IDs to call when the run completes successfully. A maximum of 3 destinations can be specified for the `on_success` property.
      - `id` (string, optional)
    - `on_failure` (array of object, optional)
      An optional list of system notification IDs to call when the run fails. A maximum of 3 destinations can be specified for the `on_failure` property.
      - `id` (string, optional)
    - `on_duration_warning_threshold_exceeded` (array of object, optional)
      An optional list of system notification IDs to call when the duration of a run exceeds the threshold specified for the `RUN_DURATION_SECONDS` metric in the `health` field. A maximum of 3 destinations can be specified for the `on_duration_warning_threshold_exceeded` property.
      - `id` (string, optional)
    - `on_streaming_backlog_exceeded` (array of object, optional, Public Preview)
      An optional list of system notification IDs to call when any streaming backlog thresholds are exceeded for any stream.
       Streaming backlog thresholds can be set in the `health` field using the following metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`.
       Alerting is based on the 10-minute average of these metrics. If the issue persists, notifications are resent every 30 minutes.
       A maximum of 3 destinations can be specified for the `on_streaming_backlog_exceeded` property.
      - `id` (string, optional)
  - `notification_settings` (object, optional)
    Optional notification settings that are used when sending notifications to each of the `email_notifications` and `webhook_notifications` for this job.
    - `no_alert_for_skipped_runs` (boolean, optional)
      If true, do not send notifications to recipients specified in `on_failure` if the run is skipped.
      Default: `false`
      Example: `false`
    - `no_alert_for_canceled_runs` (boolean, optional)
      If true, do not send notifications to recipients specified in `on_failure` if the run is canceled.
      Default: `false`
      Example: `false`
    - `alert_on_last_attempt` (boolean, optional)
      If true, do not send notifications to recipients specified in `on_start` for the retried runs and do not send notifications to recipients specified in `on_failure` until the last retry of the run.
      Default: `false`
      Example: `false`
  - `timeout_seconds` (int32, optional)
    An optional timeout applied to each run of this job. A value of `0` means no timeout.
    Default: `0`
    Example: `86400`
  - `health` (object, optional)
    - `rules` (array of object, optional)
      - `metric` (string, optional)
        Possible values: `RUN_DURATION_SECONDS`, `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, `STREAMING_BACKLOG_SECONDS`, `STREAMING_BACKLOG_FILES`
        Example: `RUN_DURATION_SECONDS`
      - `op` (string, optional)
        Possible values: `GREATER_THAN`
        Example: `GREATER_THAN`
      - `value` (int64, optional)
        Specifies the threshold value that the health metric should obey to satisfy the health rule.
        Example: `10`
  - `schedule` (object, optional)
    An optional periodic schedule for this job. The default behavior is that the job only runs when triggered by clicking “Run Now” in the Jobs UI or sending an API request to `runNow`.
    - `quartz_cron_expression` (string, optional)
      A Cron expression using Quartz syntax that describes the schedule for a job. See [Cron Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) for details. This field is required.
      Example: `20 30 * * * ?`
    - `timezone_id` (string, optional)
      A Java timezone ID. The schedule for a job is resolved with respect to this timezone. See [Java TimeZone](https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html) for details. This field is required.
      Example: `Europe/London`
    - `pause_status` (string, optional)
      Indicate whether this schedule is paused or not.
      Possible values: `UNPAUSED`, `PAUSED`
      Default: `UNPAUSED`
  - `trigger` (object, optional)
    A configuration to trigger a run when certain conditions are met. The default behavior is that the job runs only when triggered by clicking “Run Now” in the Jobs UI or sending an API request to `runNow`.
    - `pause_status` (string, optional)
      Whether this trigger is paused or not.
      Possible values: `UNPAUSED`, `PAUSED`
      Default: `UNPAUSED`
    - `file_arrival` (object, required)
      File arrival trigger settings.
      - `url` (string, optional)
        URL to be monitored for file arrivals. The path must point to the root or a subpath of the external location.
      - `min_time_between_triggers_seconds` (int32, optional)
        If set, the trigger starts a run only after the specified amount of time passed since
         the last time the trigger fired. The minimum allowed value is 60 seconds
      - `wait_after_last_change_seconds` (int32, optional)
        If set, the trigger starts a run only after no file activity has occurred for the specified amount of time.
         This makes it possible to wait for a batch of incoming files to arrive before triggering a run. The
         minimum allowed value is 60 seconds.
    - `periodic` (object, required)
      Periodic trigger settings.
      - `interval` (int32, optional)
        The interval at which the trigger should run.
      - `unit` (string, optional)
        The unit of time for the interval.
        Possible values: `TIME_UNIT_UNSPECIFIED`, `HOURS`, `DAYS`, `WEEKS`, `MINUTES`
    - `table_update` (object, required)
      - `table_names` (array of string, optional)
        A list of tables to monitor for changes. The table name must be in the format `catalog_name.schema_name.table_name`.
      - `min_time_between_triggers_seconds` (int32, optional)
        If set, the trigger starts a run only after the specified amount of time has passed since
         the last time the trigger fired. The minimum allowed value is 60 seconds.
      - `wait_after_last_change_seconds` (int32, optional)
        If set, the trigger starts a run only after no table updates have occurred for the specified time
         and can be used to wait for a series of table updates before triggering a run. The
         minimum allowed value is 60 seconds.
      - `condition` (string, optional)
        The table(s) condition based on which to trigger a job run.
        Possible values: `ANY_UPDATED`, `ALL_UPDATED`
        Example: `ALL_UPDATED`
  - `continuous` (object, optional)
    An optional continuous property for this job. The continuous property will ensure that there is always one run executing. Only one of `schedule` and `continuous` can be used.
    
     Pipelines started by a continuous job also run continuously, regardless of their own pipeline mode setting.
    - `pause_status` (string, optional)
      Indicate whether the continuous execution of the job is paused or not. Defaults to UNPAUSED.
      Possible values: `UNPAUSED`, `PAUSED`
      Default: `UNPAUSED`
    - `task_retry_mode` (string, optional)
      Indicate whether the continuous job is applying task level retries or not. Defaults to NEVER.
      Possible values: `NEVER`, `ON_FAILURE`
  - `max_concurrent_runs` (int32, optional)
    An optional maximum allowed number of concurrent runs of the job.
     Set this value if you want to be able to execute multiple runs of the same job concurrently.
     This is useful for example if you trigger your job on a frequent schedule and want to allow consecutive runs to overlap with each other, or if you want to trigger multiple runs which differ by their input parameters.
     This setting affects only new runs. For example, suppose the job’s concurrency is 4 and there are 4 concurrent active runs. Then setting the concurrency to 3 won’t kill any of the active runs.
     However, from then on, new runs are skipped unless there are fewer than 3 active runs.
     This value cannot exceed 1000. Setting this value to `0` causes all new runs to be skipped.
    Default: `1`
    Example: `10`
  - `tasks` (array of object, optional)
    A list of task specifications to be executed by this job.
     It supports up to 1000 elements in write endpoints (:method:jobs/create, :method:jobs/reset, :method:jobs/update, :method:jobs/submit).
     Read endpoints return only 100 tasks. If more than 100 tasks are available, you can paginate through them using :method:jobs/get. Use the `next_page_token` field at the object root to determine if more results are available.
    - `task_key` (string, optional)
      A unique name for the task. This field is used to refer to this task from other tasks.
       This field is required and must be unique within its parent job.
       On Update or Reset, this field is used to reference the tasks to be updated or reset.
      Example: `Task_Key`
      Constraints: `[ 1 .. 100 ] characters`, `^[\w\-\_]+$`
    - `depends_on` (array of object, optional)
      An optional array of objects specifying the dependency graph of the task. All tasks specified in this field must complete before executing this task. The task will run only if the `run_if` condition is true.
       The key is `task_key`, and the value is the name assigned to the dependent task.
      - `task_key` (string, optional)
        The name of the task this task depends on.
        Example: `Task_Key`
        Constraints: `[ 1 .. 100 ] characters`, `^[\w\-\_]+$`
      - `outcome` (string, optional)
        Can only be specified on condition task dependencies. The outcome of the dependent task that must be met for this task to run.
    - `run_if` (string, optional)
      An optional value specifying the condition determining whether the task is run once its dependencies have been completed.
      
       * `ALL_SUCCESS`: All dependencies have executed and succeeded
       * `AT_LEAST_ONE_SUCCESS`: At least one dependency has succeeded
       * `NONE_FAILED`: None of the dependencies have failed and at least one was executed
       * `ALL_DONE`: All dependencies have been completed
       * `AT_LEAST_ONE_FAILED`: At least one dependency failed
       * `ALL_FAILED`: ALl dependencies have failed
      Possible values: `ALL_SUCCESS`, `ALL_DONE`, `NONE_FAILED`, `AT_LEAST_ONE_SUCCESS`, `ALL_FAILED`, `AT_LEAST_ONE_FAILED`
      Default: `ALL_SUCCESS`
      Example: `ALL_SUCCESS`
    - `timeout_seconds` (int32, optional)
      An optional timeout applied to each run of this job task. A value of `0` means no timeout.
      Default: `0`
      Example: `86400`
    - `health` (object, optional)
      - `rules` (array of object, optional)
    - `email_notifications` (object, optional)
      An optional set of email addresses that is notified when runs of this task begin or complete as well as when this task is deleted. The default behavior is to not send any emails.
      - `on_start` (array of string, optional)
        A list of email addresses to be notified when a run begins. If not specified on job creation, reset, or update, the list is empty, and notifications are not sent.
        Example: `user.name@databricks.com`
      - `on_success` (array of string, optional)
        A list of email addresses to be notified when a run successfully completes. A run is considered to have completed successfully if it ends with a `TERMINATED` `life_cycle_state` and a `SUCCESS` result_state. If not specified on job creation, reset, or update, the list is empty, and notifications are not sent.
        Example: `user.name@databricks.com`
      - `on_failure` (array of string, optional)
        A list of email addresses to be notified when a run unsuccessfully completes. A run is considered to have completed unsuccessfully if it ends with an `INTERNAL_ERROR` `life_cycle_state` or a `FAILED`, or `TIMED_OUT` result_state. If this is not specified on job creation, reset, or update the list is empty, and notifications are not sent.
        Example: `user.name@databricks.com`
      - `on_duration_warning_threshold_exceeded` (array of string, optional)
        A list of email addresses to be notified when the duration of a run exceeds the threshold specified for the `RUN_DURATION_SECONDS` metric in the `health` field. If no rule for the `RUN_DURATION_SECONDS` metric is specified in the `health` field for the job, notifications are not sent.
        Example: `user.name@databricks.com`
      - `on_streaming_backlog_exceeded` (array of string, optional, Public Preview)
        A list of email addresses to notify when any streaming backlog thresholds are exceeded for any stream.
         Streaming backlog thresholds can be set in the `health` field using the following metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`.
         Alerting is based on the 10-minute average of these metrics. If the issue persists, notifications are resent every 30 minutes.
        Example: `user.name@databricks.com`
      - `no_alert_for_skipped_runs` (boolean, optional)
        If true, do not send email to recipients specified in `on_failure` if the run is skipped.
         This field is `deprecated`. Please use the `notification_settings.no_alert_for_skipped_runs` field.
        Default: `false`
        Example: `false`
    - `notification_settings` (object, optional)
      Optional notification settings that are used when sending notifications to each of the `email_notifications` and `webhook_notifications` for this task.
      - `no_alert_for_skipped_runs` (boolean, optional)
        If true, do not send notifications to recipients specified in `on_failure` if the run is skipped.
        Default: `false`
        Example: `false`
      - `no_alert_for_canceled_runs` (boolean, optional)
        If true, do not send notifications to recipients specified in `on_failure` if the run is canceled.
        Default: `false`
        Example: `false`
      - `alert_on_last_attempt` (boolean, optional)
        If true, do not send notifications to recipients specified in `on_start` for the retried runs and do not send notifications to recipients specified in `on_failure` until the last retry of the run.
        Default: `false`
        Example: `false`
    - `webhook_notifications` (object, optional)
      A collection of system notification IDs to notify when runs of this task begin or complete. The default behavior is to not send any system notifications.
      - `on_start` (array of object, optional)
        An optional list of system notification IDs to call when the run starts. A maximum of 3 destinations can be specified for the `on_start` property.
      - `on_success` (array of object, optional)
        An optional list of system notification IDs to call when the run completes successfully. A maximum of 3 destinations can be specified for the `on_success` property.
      - `on_failure` (array of object, optional)
        An optional list of system notification IDs to call when the run fails. A maximum of 3 destinations can be specified for the `on_failure` property.
      - `on_duration_warning_threshold_exceeded` (array of object, optional)
        An optional list of system notification IDs to call when the duration of a run exceeds the threshold specified for the `RUN_DURATION_SECONDS` metric in the `health` field. A maximum of 3 destinations can be specified for the `on_duration_warning_threshold_exceeded` property.
      - `on_streaming_backlog_exceeded` (array of object, optional, Public Preview)
        An optional list of system notification IDs to call when any streaming backlog thresholds are exceeded for any stream.
         Streaming backlog thresholds can be set in the `health` field using the following metrics: `STREAMING_BACKLOG_BYTES`, `STREAMING_BACKLOG_RECORDS`, `STREAMING_BACKLOG_SECONDS`, or `STREAMING_BACKLOG_FILES`.
         Alerting is based on the 10-minute average of these metrics. If the issue persists, notifications are resent every 30 minutes.
         A maximum of 3 destinations can be specified for the `on_streaming_backlog_exceeded` property.
    - `description` (string, optional)
      An optional description for this task.
      Example: `This is the description for this task.`
      Constraints: `<= 1000 characters`
    - `environment_key` (string, required)
      The key that references an environment spec in a job. This field is required for Python script, Python wheel and dbt tasks when using serverless compute.
      Constraints: `[ 1 .. 100 ] characters`, `^[\w\-\_]+$`
    - `disabled` (boolean, optional)
      An optional flag to disable the task. If set to true, the task will not run even if it is part of a job.
      Default: `false`
    - `compute` (object, optional, Beta)
      Task level compute configuration.
      - `hardware_accelerator` (string, optional, Beta)
        Hardware accelerator configuration for Serverless GPU workloads.
        Possible values: `GPU_1X_A10`, `GPU_8X_H100`
    - `notebook_task` (object, required)
      The task runs a notebook when the `notebook_task` field is present.
      - `notebook_path` (string, optional)
        The path of the notebook to be run in the <Databricks> workspace or remote repository.
         For notebooks stored in the <Databricks> workspace, the path must be absolute and begin with a slash.
         For notebooks stored in a remote repository, the path must be relative. This field is required.
        Example: `/Users/user.name@databricks.com/notebook_to_run`
      - `base_parameters` (object, optional)
        Base parameters to be used for each run of this job. If the run is initiated by a call to :method:jobs/run
         Now with parameters specified, the two parameters maps are merged. If the same key is specified in
         `base_parameters` and in `run-now`, the value from `run-now` is used.
         Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) to set parameters containing information about job runs.
        
         If the notebook takes a parameter that is not specified in the job’s `base_parameters` or the `run-now` override parameters,
         the default value from the notebook is used.
        
         Retrieve these parameters in a notebook using [dbutils.widgets.get](https://docs.databricks.com/dev-tools/databricks-utils.html#dbutils-widgets).
        
         The JSON representation of this field cannot exceed 1MB.
      - `source` (string, optional)
        Optional location type of the notebook. When set to `WORKSPACE`, the notebook will be retrieved from the local <Databricks> workspace. When set to `GIT`, the notebook will be retrieved from a Git repository
         defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` is defined and `WORKSPACE` otherwise.
         * `WORKSPACE`: Notebook is located in <Databricks> workspace.
         * `GIT`: Notebook is located in cloud Git provider.
        Possible values: `WORKSPACE`, `GIT`
        Example: `WORKSPACE`
      - `warehouse_id` (string, optional)
        Optional `warehouse_id` to run the notebook on a SQL warehouse. Classic SQL warehouses are NOT supported, please use serverless or pro SQL warehouses.
        
         Note that SQL warehouses only support SQL cells; if the notebook contains non-SQL cells, the run will fail.
        Example: `ab12cd34efgh567i`
    - `spark_jar_task` (object, required)
      The task runs a JAR when the `spark_jar_task` field is present.
      - `jar_uri` (string, optional)
        Deprecated since 04/2016. For classic compute, provide a `jar` through the `libraries` field instead. For serverless compute, provide a `jar` though the `java_dependencies` field inside the `environments` list.
        
         See the examples of classic and serverless compute usage at the top of the page.
      - `main_class_name` (string, optional)
        The full name of the class containing the main method to be executed. This class must be contained in a JAR provided as a library.
        
         The code must use `SparkContext.getOrCreate` to obtain a Spark context; otherwise, runs of the job fail.
        Example: `com.databricks.ComputeModels`
      - `parameters` (array of string, optional)
        Parameters passed to the main method.
        
         Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) to set parameters containing information about job runs.
      - `run_as_repl` (boolean, optional)
        Deprecated. A value of `false` is no longer supported.
        Default: `true`
    - `spark_python_task` (object, required)
      The task runs a Python file when the `spark_python_task` field is present.
      - `python_file` (string, optional)
        The Python file to be executed. Cloud file URIs (such as dbfs:/, s3:/, adls:/, gcs:/) and workspace paths are supported. For python files stored in the <Databricks> workspace, the path must be absolute and begin with `/`. For files stored in a remote repository, the path must be relative. This field is required.
        Example: `dbfs:/path/to/file.py`
      - `parameters` (array of string, optional)
        Command line parameters passed to the Python file.
        
         Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) to set parameters containing information about job runs.
      - `source` (string, optional)
        Optional location type of the Python file. When set to `WORKSPACE` or not specified, the file will be retrieved from the local
         <Databricks> workspace or cloud location (if the `python_file` has a URI format). When set to `GIT`,
         the Python file will be retrieved from a Git repository defined in `git_source`.
        
         * `WORKSPACE`: The Python file is located in a <Databricks> workspace or at a cloud filesystem URI.
         * `GIT`: The Python file is located in a remote Git repository.
        Possible values: `WORKSPACE`, `GIT`
        Example: `WORKSPACE`
    - `spark_submit_task` (object, required)
      (Legacy) The task runs the spark-submit script when the spark_submit_task field is present. Databricks recommends using the spark_jar_task instead; see [Spark Submit task for jobs](https://docs.databricks.com/jobs/spark-submit).
      - `parameters` (array of string, optional)
        Command-line parameters passed to spark submit.
        
         Use [Task parameter variables](https://docs.databricks.com/jobs.html#parameter-variables) to set parameters containing information about job runs.
    - `pipeline_task` (object, required)
      The task triggers a pipeline update when the `pipeline_task` field is present. Only pipelines configured to use triggered more are supported.
      - `pipeline_id` (string, optional)
        The full name of the pipeline task to execute.
        Example: `a12cd3e4-0ab1-1abc-1a2b-1a2bcd3e4fg5`
      - `parameters` (object, optional, Beta)
        Key/value-map of parameters passed to the pipeline execution.
         Limited to 10k characters in total.
      - `full_refresh` (boolean, optional)
        If true, triggers a full refresh on the spark declarative pipeline.
        Default: `false`
      - `refresh_selection` (array of string, optional, Beta)
        A list of tables to update without fullRefresh.
      - `full_refresh_selection` (array of string, optional, Beta)
        A list of tables to update with fullRefresh.
      - `reset_checkpoint_selection` (array of string, optional, Beta)
        A list of streaming flows to reset checkpoints without clearing data.
      - `refresh_flow_selection` (array of string, optional, Beta)
        Flow names to selectively refresh. These are unioned with other selective refresh
         options (refresh_selection, full_refresh_selection) to determine the final set of flows to refresh.
    - `python_wheel_task` (object, required)
      The task runs a Python wheel when the `python_wheel_task` field is present.
      - `package_name` (string, optional)
        Name of the package to execute
      - `entry_point` (string, optional)
        Named entry point to use, if it does not exist in the metadata of the package it executes the function from the package directly using `$packageName.$entryPoint()`
      - `parameters` (array of string, optional)
        Command-line parameters passed to Python wheel task. Leave it empty if `named_parameters` is not null.
      - `named_parameters` (object, optional)
        Command-line parameters passed to Python wheel task in the form of `["--name=task", "--data=dbfs:/path/to/data.json"]`. Leave it empty if `parameters` is not null.
    - `dbt_task` (object, required)
      The task runs one or more dbt commands when the `dbt_task` field is present. The dbt task requires both Databricks SQL and the ability to use a serverless or a pro SQL warehouse.
      - `project_directory` (string, optional)
        Path to the project directory. Optional for Git sourced tasks, in which
         case if no value is provided, the root of the Git repository is used.
      - `commands` (array of string, optional)
        A list of dbt commands to execute. All commands must start with `dbt`. This parameter must not be empty. A maximum of up to 10 commands can be provided.
      - `schema` (string, optional)
        Optional schema to write to. This parameter is only used when a warehouse_id is also provided. If not provided, the `default` schema is used.
      - `warehouse_id` (string, optional)
        ID of the SQL warehouse to connect to. If provided, we automatically generate and provide the profile and connection details to dbt. It can be overridden on a per-command basis by using the `--profiles-dir` command line argument.
        Example: `30dade0507d960d1`
      - `profiles_directory` (string, optional)
        Optional (relative) path to the profiles directory. Can only be specified if no warehouse_id is specified. If no warehouse_id is specified and this folder is unset, the root directory is used.
      - `catalog` (string, optional)
        Optional name of the catalog to use. The value is the top level in the 3-level namespace of Unity Catalog (catalog / schema / relation). The catalog value can only be specified if a warehouse_id is specified. Requires dbt-databricks >= 1.1.1.
        Example: `main`
      - `source` (string, optional)
        Optional location type of the project directory. When set to `WORKSPACE`, the project will be retrieved
         from the local <Databricks> workspace. When set to `GIT`, the project will be retrieved from a Git repository
         defined in `git_source`. If the value is empty, the task will use `GIT` if `git_source` is defined and `WORKSPACE` otherwise.
        
         * `WORKSPACE`: Project is located in <Databricks> workspace.
         * `GIT`: Project is located in cloud Git provider.
        Possible values: `WORKSPACE`, `GIT`
        Example: `WORKSPACE`
    - `sql_task` (object, required)
      The task runs a SQL query or file, or it refreshes a SQL alert or a legacy SQL dashboard when the `sql_task` field is present.
      - `parameters` (object, optional)
        Parameters to be used for each run of this job. The SQL alert task does not support custom parameters.
      - `query` (object, required)
        If query, indicates that this job must execute a SQL query.
      - `dashboard` (object, required)
        If dashboard, indicates that this job must refresh a SQL dashboard.
      - `alert` (object, required)
        If alert, indicates that this job must refresh a SQL alert.
      - `file` (object, required)
        If file, indicates that this job runs a SQL file in a remote Git repository.
      - `warehouse_id` (string, optional)
        The canonical identifier of the SQL warehouse. Recommended to use with serverless or pro SQL warehouses. Classic SQL warehouses are only supported for SQL alert, dashboard and query tasks and are limited to scheduled single-task jobs.
    - `run_job_task` (object, required)
      The task triggers another job when the `run_job_task` field is present.
      - `job_id` (int64, optional)
        ID of the job to trigger.
      - `job_parameters` (object, optional)
        Job-level parameters used to trigger the job.
      - `pipeline_params` (object, optional)
        Controls whether the pipeline should perform a full refresh
    - `condition_task` (object, required)
      The task evaluates a condition that can be used to control the execution of other tasks when the `condition_task` field is present.
       The condition task does not require a cluster to execute and does not support retries or notifications.
      - `op` (string, optional)
        * `EQUAL_TO`, `NOT_EQUAL` operators perform string comparison of their operands. This means that `“12.0” == “12”` will evaluate to `false`.
         * `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL` operators perform numeric comparison of their operands. `“12.0” >= “12”` will evaluate to `true`, `“10.0” >= “12”` will evaluate to `false`.
        
         The boolean comparison to task values can be implemented with operators `EQUAL_TO`, `NOT_EQUAL`. If a task value was set to a boolean value, it will be serialized to `“true”` or `“false”` for the comparison.
        Possible values: `EQUAL_TO`, `GREATER_THAN`, `GREATER_THAN_OR_EQUAL`, `LESS_THAN`, `LESS_THAN_OR_EQUAL`, `NOT_EQUAL`
      - `left` (string, optional)
        The left operand of the condition task. Can be either a string value or a job state or parameter reference.
      - `right` (string, optional)
        The right operand of the condition task. Can be either a string value or a job state or parameter reference.
      - `outcome` (string, optional)
        The condition expression evaluation result. Filled in if the task was successfully completed. Can be `"true"` or `"false"`
    - `for_each_task` (object, required)
      The task executes a nested task for every input provided when the `for_each_task` field is present.
      - `inputs` (string, optional)
        Array for task to iterate on. This can be a JSON string or a reference to
         an array parameter.
        Constraints: `<= 5000 characters`
      - `concurrency` (int32, optional)
        An optional maximum allowed number of concurrent runs of the task.
         Set this value if you want to be able to execute multiple runs of the task concurrently.
        Example: `20`
        Constraints: `[ 1 .. 100 ]`
      - `task` (object, optional)
        Configuration for the task that will be run for each element in the array
    - `clean_rooms_notebook_task` (object, required)
      The task runs a [clean rooms](https://docs.databricks.com/clean-rooms/index.html) notebook
       when the `clean_rooms_notebook_task` field is present.
      - `clean_room_name` (string, optional)
        The clean room that the notebook belongs to.
      - `notebook_name` (string, optional)
        Name of the notebook being run.
      - `etag` (string, optional)
        Checksum to validate the freshness of the notebook resource (i.e. the notebook being run is the latest version).
         It can be fetched by calling the :method:cleanroomassets/get API.
      - `notebook_base_parameters` (object, optional)
        Base parameters to be used for the clean room notebook job.
    - `alert_task` (object, required, Public Preview)
      The task evaluates a <Databricks> alert and sends notifications to subscribers
       when the `alert_task` field is present.
      - `alert_id` (string, optional, Public Preview)
        The alert_id is the canonical identifier of the alert.
      - `warehouse_id` (string, optional, Public Preview)
        The warehouse_id identifies the warehouse settings used by the alert task.
      - `workspace_path` (string, optional, Public Preview)
        The workspace_path is the path to the alert file in the workspace. The path:
          * must start with "/Workspace"
          * must be a normalized path.
         User has to select only one of alert_id or workspace_path to identify the alert.
        Example: `/Workspace/Users/user@company.com/example.dbalert.json`
      - `subscribers` (array of object, optional, Public Preview)
        The subscribers receive alert evaluation result notifications after the alert task is completed.
         The number of subscriptions is limited to 100.
    - `power_bi_task` (object, required, Public Preview)
      The task triggers a Power BI semantic model update when the `power_bi_task` field is present.
      - `tables` (array of object, optional, Public Preview)
        The tables to be exported to Power BI
      - `warehouse_id` (string, optional, Public Preview)
        The SQL warehouse ID to use as the Power BI data source
      - `power_bi_model` (object, optional, Public Preview)
        The semantic model to update
      - `connection_resource_name` (string, optional, Public Preview)
        The resource name of the UC connection to authenticate from <Databricks> to Power BI
      - `refresh_after_update` (boolean, optional, Public Preview)
        Whether the model should be refreshed after the update
    - `dashboard_task` (object, required)
      The task refreshes a dashboard and sends a snapshot to subscribers.
      - `subscription` (object, optional)
        Optional: subscription configuration for sending the dashboard snapshot.
      - `warehouse_id` (string, optional)
        Optional: The warehouse id to execute the dashboard with for the schedule.
         If not specified, the default warehouse of the dashboard will be used.
        Example: `47bb1c472649e711`
      - `dashboard_id` (string, optional)
        The identifier of the dashboard to refresh.
        Example: `01ef0cb45e2a1da4a61950e9b8789ce9`
    - `ai_runtime_task` (object, required, Public Preview)
      The task runs a multi-gpu compute workload on Databricks AI Runtime. Specify
       the accelerator type and count, the command to run, and where the workload's
       code and MLflow output are stored.
      - `experiment` (string, optional, Public Preview)
        MLflow experiment name for this run. If an experiment with this name
         already exists under the calling user, the run is appended to it;
         otherwise a new experiment is created. To target a specific MLflow
         storage location (for example, when running as a service principal), set
         `mlflow_experiment_directory`.
        Example: `llama-fine-tune`
      - `deployments` (array of object, optional, Public Preview)
        Deployment specs for this task. Exactly one deployment is currently
         supported (a single entry where every node runs the same command); this
         is a current-Preview constraint. Role-split workloads (driver + worker,
         parameter server, separate eval node, etc.) with multiple entries are the
         eventual intent but not yet supported.
      - `mlflow_run` (string, optional, Public Preview)
        Optional display name for the MLflow run created under `experiment`. If
         omitted, MLflow generates a default name.
        Example: `llama-fine-tune-lora-r16`
      - `mlflow_experiment_directory` (string, optional, Public Preview)
        Optional workspace directory under which the MLflow experiment named in
         `experiment` is created. Must start with `/Workspace`. Set this when
         running as a service principal that has no default user directory; for
         regular users the experiment defaults to the user's home directory.
        Example: `/Workspace/Users/alice@databricks.com/experiments`
      - `docker_image_url` (string, optional, Beta)
        Optional Docker image URL for a custom container image. When set,
         the task runs on the specified container image instead of the default
         <Databricks> client image. Format:
         `{organization}/{repository}:{tag}`
        Example: `nvidia/cuda:13.3.0-cudnn-devel-ubuntu24.04`
    - `existing_cluster_id` (string, required)
      If existing_cluster_id, the ID of an existing cluster that is used for all runs.
       When running jobs or tasks on an existing cluster, you may need to manually restart
       the cluster if it stops responding. We suggest running jobs and tasks on new clusters for
       greater reliability
      Example: `0923-164208-meows279`
    - `new_cluster` (object, required)
      If new_cluster, a description of a new cluster that is created for each run.
      - `apply_policy_default_values` (boolean, optional)
        Default: `false`
      - `cluster_name` (string, optional)
        Cluster name requested by the user. This doesn't have to be unique.
         If not specified at creation, the cluster name will be an empty string.
         For job clusters, the cluster name is automatically set based on the job and job run IDs.
      - `spark_version` (string, optional)
        The Spark version of the cluster, e.g. `3.3.x-scala2.11`.
         A list of available Spark versions can be retrieved by using
         the [clusters/sparkVersions](https://docs.databricks.com/api/workspace/clusters/sparkversions) API call.
      - `spark_conf` (object, optional)
        An object containing a set of optional, user-specified Spark configuration key-value pairs.
         Users can also pass in a string of extra JVM options to the driver and the executors via
         `spark.driver.extraJavaOptions` and `spark.executor.extraJavaOptions` respectively.
      - `aws_attributes` (object, optional)
        Attributes related to clusters running on Amazon Web Services.
         If not specified at cluster creation, a set of default values will be used.
      - `azure_attributes` (object, optional)
        Attributes related to clusters running on Microsoft Azure.
         If not specified at cluster creation, a set of default values will be used.
      - `gcp_attributes` (object, optional)
        Attributes related to clusters running on Google Cloud Platform.
         If not specified at cluster creation, a set of default values will be used.
      - `node_type_id` (string, optional)
        This field encodes, through a single value, the resources available to each of
         the Spark nodes in this cluster. For example, the Spark nodes can be provisioned
         and optimized for memory or compute intensive workloads. A list of available node
         types can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.
      - `driver_node_type_id` (string, optional)
        The node type of the Spark driver.
         Note that this field is optional; if unset, the driver node type will be set as the same value
         as `node_type_id` defined above.
        
          This field, along with node_type_id, should not be set if virtual_cluster_size is set.
          If both driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id and node_type_id take precedence.
      - `worker_node_type_flexibility` (object, optional)
        Flexible node type configuration for worker nodes.
      - `driver_node_type_flexibility` (object, optional)
        Flexible node type configuration for the driver node.
      - `ssh_public_keys` (array of string, optional)
        SSH public key contents that will be added to each Spark node in this cluster. The
         corresponding private keys can be used to login with the user name `ubuntu` on port `2200`.
         Up to 10 keys can be specified.
      - `custom_tags` (object, optional)
        Additional tags for cluster resources. <Databricks> will tag all cluster resources (e.g., AWS
         instances and EBS volumes) with these tags in addition to `default_tags`. Notes:
        
         - Currently, <Databricks> allows at most 45 custom tags
        
         - Clusters can only reuse cloud resources if the resources' tags are a subset of the cluster tags
      - `cluster_log_conf` (object, optional)
        The configuration for delivering spark logs to a long-term storage destination.
         Three kinds of destinations (DBFS, S3 and Unity Catalog volumes) are supported. Only one destination can be specified
         for one cluster. If the conf is given, the logs will be delivered to the destination every
         `5 mins`. The destination of driver logs is `$destination/$clusterId/driver`, while
         the destination of executor logs is `$destination/$clusterId/executor`.
      - `spark_env_vars` (object, optional)
        An object containing a set of optional, user-specified environment variable key-value pairs.
         Please note that key-value pair of the form (X,Y) will be exported as is (i.e.,
         `export X='Y'`) while launching the driver and workers.
        
         In order to specify an additional set of `SPARK_DAEMON_JAVA_OPTS`, we recommend appending
         them to `$SPARK_DAEMON_JAVA_OPTS` as shown in the example below. This ensures that all
         default databricks managed environmental variables are included as well.
        
         Example Spark environment variables:
         `{"SPARK_WORKER_MEMORY": "28000m", "SPARK_LOCAL_DIRS": "/local_disk0"}` or
         `{"SPARK_DAEMON_JAVA_OPTS": "$SPARK_DAEMON_JAVA_OPTS -Dspark.shuffle.service.enabled=true"}`
      - `autotermination_minutes` (int32, optional)
        Automatically terminates the cluster after it is inactive for this time in minutes. If not set,
         this cluster will not be automatically terminated. If specified, the threshold must be between
         10 and 10000 minutes.
         Users can also set this value to 0 to explicitly disable automatic termination.
      - `enable_elastic_disk` (boolean, optional)
        Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
         space when its Spark workers are running low on disk space.
        **AWS:** Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
        space when its Spark workers are running low on disk space.  This feature requires specific AWS
        permissions to function correctly - refer to the User Guide for more details.
      - `init_scripts` (array of object, optional)
        The configuration for storing init scripts. Any number of destinations can be specified.
         The scripts are executed sequentially in the order provided.
         If `cluster_log_conf` is specified, init script logs are sent to `<destination>/<cluster-ID>/init_scripts`.
      - `docker_image` (object, optional)
        Custom docker image BYOC
      - `instance_pool_id` (string, optional)
        The optional ID of the instance pool to which the cluster belongs.
      - `single_user_name` (string, optional)
        Single user name if data_security_mode is `SINGLE_USER`
      - `policy_id` (string, optional)
        The ID of the cluster policy used to create the cluster if applicable.
      - `enable_local_disk_encryption` (boolean, optional)
        Whether to enable LUKS on cluster VMs' local disks
      - `driver_instance_pool_id` (string, optional)
        The optional ID of the instance pool for the driver of the cluster belongs.
         The pool cluster uses the instance pool with id (instance_pool_id) if the driver pool is not
         assigned.
      - `workload_type` (object, optional)
      - `data_security_mode` (string, optional)
        Possible values: `NONE`, `SINGLE_USER`, `USER_ISOLATION`, `LEGACY_TABLE_ACL`, `LEGACY_PASSTHROUGH`, `LEGACY_SINGLE_USER`, `LEGACY_SINGLE_USER_STANDARD`, `DATA_SECURITY_MODE_STANDARD`, `DATA_SECURITY_MODE_DEDICATED`, `DATA_SECURITY_MODE_AUTO`
      - `runtime_engine` (string, optional)
        Determines the cluster's runtime engine, either standard or Photon.
        
         This field is not compatible with legacy `spark_version` values that contain `-photon-`.
         Remove `-photon-` from the `spark_version` and set `runtime_engine` to `PHOTON`.
        
         If left unspecified, the runtime engine defaults to standard unless the spark_version
         contains -photon-, in which case Photon will be used.
        Possible values: `NULL`, `STANDARD`, `PHOTON`
      - `kind` (string, optional)
        Possible values: `COMPUTE_KIND_UNSPECIFIED`, `CLASSIC_PREVIEW`
      - `use_ml_runtime` (boolean, optional)
        This field can only be used when `kind = CLASSIC_PREVIEW`.
        
         `effective_spark_version` is determined by `spark_version` (DBR release), this field `use_ml_runtime`, and whether `node_type_id` is gpu node or not.
      - `is_single_node` (boolean, optional)
        This field can only be used when `kind = CLASSIC_PREVIEW`.
        
         When set to true, <Databricks> will automatically set single node related `custom_tags`, `spark_conf`, and `num_workers`
      - `remote_disk_throughput` (int32, optional)
        If set, what the configurable throughput (in Mb/s) for the remote disk is. Currently only supported for GCP HYPERDISK_BALANCED disks.
      - `total_initial_remote_disk_size` (int32, optional)
        If set, what the total initial volume size (in GB) of the remote disks should be. Supported for GCP.
      - `dependency_mode` (string, optional, Beta)
        Controls dependency configuration for the cluster.
        Possible values: `DEPENDENCY_MODE_UNSPECIFIED`, `DEPENDENCY_MODE_ENVIRONMENTS`, `DEPENDENCY_MODE_CLUSTER_LIBRARIES`, `DEPENDENCY_MODE_AUTO`
      - `num_workers` (int32, required)
        Number of worker nodes that this cluster should have. A cluster has one Spark Driver
         and `num_workers` Executors for a total of `num_workers` + 1 Spark nodes.
        
         Note: When reading the properties of a cluster, this field reflects the desired number
         of workers rather than the actual current number of workers. For instance, if a cluster
         is resized from 5 to 10 workers, this field will immediately be updated to reflect
         the target size of 10 workers, whereas the workers listed in `spark_info` will gradually
         increase from 5 to 10 as the new nodes are provisioned.
      - `autoscale` (object, required)
        Parameters needed in order to automatically scale clusters up and down based on load.
         Note: autoscaling works best with DB runtime versions 3.0 or later.
    - `job_cluster_key` (string, required)
      If job_cluster_key, this task is executed reusing the cluster specified in `job.settings.job_clusters`.
      Constraints: `[ 1 .. 100 ] characters`, `^[\w\-\_]+$`
    - `libraries` (array of object, optional)
      An optional list of libraries to be installed on the cluster.
       The default value is an empty list.
      - `jar` (string, required)
        URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and S3 URIs.
         For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : "/Volumes/path/to/library.jar" }` or
         `{ "jar": "s3://my-bucket/library.jar" }`.
         If S3 is used, please make sure the cluster has read access on the library. You may need to
         launch the cluster with an IAM role to access the S3 URI.
        **Azure:** URI of the JAR library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and ADLS URIs.
        For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : "/Volumes/path/to/library.jar" }` or
        `{ "jar": "abfss://my-bucket/library.jar" }`.
        If ADLS is used, please make sure the cluster has read access on the library. You may need to
        launch the cluster with a Microsoft Entra ID service principal to access the ADLS URI.
        **GCP:** URI of the jar library to be installed. Supported URIs include Workspace path, UC Volumes path, and GCS URIs.
        For example: `{ "jar": "/Workspace/path/to/library.jar" }`, `{ "jar" : "/Volumes/path/to/library.jar" }` or
        `{ "jar": "gs://my-bucket/library.jar" }`.
        If GCS is used, please make sure the cluster has read access on the library. You may need to
        launch the cluster with an IAM service account to access the GCS URI.
      - `egg` (string, required)
        Deprecated. URI of the egg library to install. Installing Python egg files is deprecated and is not supported in Databricks Runtime 14.0 and above.
      - `pypi` (object, required)
        Specification of a PyPi library to be installed. For example:
         `{ "package": "simplejson" }`
      - `maven` (object, required)
        Specification of a maven library to be installed. For example:
         `{ "coordinates": "org.jsoup:jsoup:1.7.2" }`
      - `cran` (object, required)
        Specification of a CRAN library to be installed as part of the library
      - `whl` (string, required)
        URI of the wheel library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and S3 URIs.
         For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : "/Volumes/path/to/library.whl" }` or
         `{ "whl": "s3://my-bucket/library.whl" }`.
         If S3 is used, please make sure the cluster has read access on the library. You may need to
         launch the cluster with an IAM role to access the S3 URI.
        **Azure:** URI of the wheel library to install. Supported URIs include Workspace paths, Unity Catalog Volumes paths, and ADLS URIs.
        For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : "/Volumes/path/to/library.whl" }` or
        `{ "whl": "abfss://my-bucket/library.whl" }`.
        If ADLS is used, please make sure the cluster has read access on the library. You may need to
        launch the cluster with a Microsoft Entra ID service principal to access the ADLS URI.
        **GCP:** URI of the wheel library to be installed. Supported URIs include Workspace path, UC Volumes path, and GCS URIs.
        For example: `{ "whl": "/Workspace/path/to/library.whl" }`, `{ "whl" : "/Volumes/path/to/library.whl" }` or
        `{ "whl": "gs://my-bucket/library.egg" }`.
        If GCS is used, please make sure the cluster has read access on the library. You may need to
        launch the cluster with an IAM service account to access the GCS URI.
      - `requirements` (string, required)
        URI of the requirements.txt file to install. Only Workspace paths and Unity Catalog Volumes paths are supported.
         For example: `{ "requirements": "/Workspace/path/to/requirements.txt" }` or `{ "requirements" : "/Volumes/path/to/requirements.txt" }`
    - `max_retries` (int32, optional)
      An optional maximum number of times to retry an unsuccessful run. A run is considered to be unsuccessful if it completes with the `FAILED` result_state or `INTERNAL_ERROR` `life_cycle_state`. The value `-1` means to retry indefinitely and the value `0` means to never retry.
      Default: `0`
      Example: `10`
    - `min_retry_interval_millis` (int32, optional)
      An optional minimal interval in milliseconds between the start of the failed run and the subsequent retry run. The default behavior is that unsuccessful runs are immediately retried.
      Example: `2000`
    - `retry_on_timeout` (boolean, optional)
      An optional policy to specify whether to retry a job when it times out. The default behavior
       is to not retry on timeout.
      Default: `false`
      Example: `true`
    - `disable_auto_optimization` (boolean, optional)
      An option to disable auto optimization in serverless
      Default: `false`
      Example: `true`
  - `job_clusters` (array of object, optional)
    A list of job cluster specifications that can be shared and reused by tasks of this job. Libraries cannot be declared in a shared job cluster. You must declare dependent libraries in task settings.
    Constraints: `<= 100 items`
    - `job_cluster_key` (string, optional)
      A unique name for the job cluster. This field is required and must be unique within the job.
       `JobTaskSettings` may refer to this field to determine which cluster to launch for the task execution.
      Example: `auto_scaling_cluster`
      Constraints: `[ 1 .. 100 ] characters`, `^[\w\-\_]+$`
    - `new_cluster` (object, optional)
      If new_cluster, a description of a cluster that is created for each task.
      - `apply_policy_default_values` (boolean, optional)
        Default: `false`
      - `cluster_name` (string, optional)
        Cluster name requested by the user. This doesn't have to be unique.
         If not specified at creation, the cluster name will be an empty string.
         For job clusters, the cluster name is automatically set based on the job and job run IDs.
      - `spark_version` (string, optional)
        The Spark version of the cluster, e.g. `3.3.x-scala2.11`.
         A list of available Spark versions can be retrieved by using
         the [clusters/sparkVersions](https://docs.databricks.com/api/workspace/clusters/sparkversions) API call.
      - `spark_conf` (object, optional)
        An object containing a set of optional, user-specified Spark configuration key-value pairs.
         Users can also pass in a string of extra JVM options to the driver and the executors via
         `spark.driver.extraJavaOptions` and `spark.executor.extraJavaOptions` respectively.
      - `aws_attributes` (object, optional)
        Attributes related to clusters running on Amazon Web Services.
         If not specified at cluster creation, a set of default values will be used.
      - `azure_attributes` (object, optional)
        Attributes related to clusters running on Microsoft Azure.
         If not specified at cluster creation, a set of default values will be used.
      - `gcp_attributes` (object, optional)
        Attributes related to clusters running on Google Cloud Platform.
         If not specified at cluster creation, a set of default values will be used.
      - `node_type_id` (string, optional)
        This field encodes, through a single value, the resources available to each of
         the Spark nodes in this cluster. For example, the Spark nodes can be provisioned
         and optimized for memory or compute intensive workloads. A list of available node
         types can be retrieved by using the [clusters/listNodeTypes](https://docs.databricks.com/api/workspace/clusters/listnodetypes) API call.
      - `driver_node_type_id` (string, optional)
        The node type of the Spark driver.
         Note that this field is optional; if unset, the driver node type will be set as the same value
         as `node_type_id` defined above.
        
          This field, along with node_type_id, should not be set if virtual_cluster_size is set.
          If both driver_node_type_id, node_type_id, and virtual_cluster_size are specified, driver_node_type_id and node_type_id take precedence.
      - `worker_node_type_flexibility` (object, optional)
        Flexible node type configuration for worker nodes.
      - `driver_node_type_flexibility` (object, optional)
        Flexible node type configuration for the driver node.
      - `ssh_public_keys` (array of string, optional)
        SSH public key contents that will be added to each Spark node in this cluster. The
         corresponding private keys can be used to login with the user name `ubuntu` on port `2200`.
         Up to 10 keys can be specified.
      - `custom_tags` (object, optional)
        Additional tags for cluster resources. <Databricks> will tag all cluster resources (e.g., AWS
         instances and EBS volumes) with these tags in addition to `default_tags`. Notes:
        
         - Currently, <Databricks> allows at most 45 custom tags
        
         - Clusters can only reuse cloud resources if the resources' tags are a subset of the cluster tags
      - `cluster_log_conf` (object, optional)
        The configuration for delivering spark logs to a long-term storage destination.
         Three kinds of destinations (DBFS, S3 and Unity Catalog volumes) are supported. Only one destination can be specified
         for one cluster. If the conf is given, the logs will be delivered to the destination every
         `5 mins`. The destination of driver logs is `$destination/$clusterId/driver`, while
         the destination of executor logs is `$destination/$clusterId/executor`.
      - `spark_env_vars` (object, optional)
        An object containing a set of optional, user-specified environment variable key-value pairs.
         Please note that key-value pair of the form (X,Y) will be exported as is (i.e.,
         `export X='Y'`) while launching the driver and workers.
        
         In order to specify an additional set of `SPARK_DAEMON_JAVA_OPTS`, we recommend appending
         them to `$SPARK_DAEMON_JAVA_OPTS` as shown in the example below. This ensures that all
         default databricks managed environmental variables are included as well.
        
         Example Spark environment variables:
         `{"SPARK_WORKER_MEMORY": "28000m", "SPARK_LOCAL_DIRS": "/local_disk0"}` or
         `{"SPARK_DAEMON_JAVA_OPTS": "$SPARK_DAEMON_JAVA_OPTS -Dspark.shuffle.service.enabled=true"}`
      - `autotermination_minutes` (int32, optional)
        Automatically terminates the cluster after it is inactive for this time in minutes. If not set,
         this cluster will not be automatically terminated. If specified, the threshold must be between
         10 and 10000 minutes.
         Users can also set this value to 0 to explicitly disable automatic termination.
      - `enable_elastic_disk` (boolean, optional)
        Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
         space when its Spark workers are running low on disk space.
        **AWS:** Autoscaling Local Storage: when enabled, this cluster will dynamically acquire additional disk
        space when its Spark workers are running low on disk space.  This feature requires specific AWS
        permissions to function correctly - refer to the User Guide for more details.
      - `init_scripts` (array of object, optional)
        The configuration for storing init scripts. Any number of destinations can be specified.
         The scripts are executed sequentially in the order provided.
         If `cluster_log_conf` is specified, init script logs are sent to `<destination>/<cluster-ID>/init_scripts`.
      - `docker_image` (object, optional)
        Custom docker image BYOC
      - `instance_pool_id` (string, optional)
        The optional ID of the instance pool to which the cluster belongs.
      - `single_user_name` (string, optional)
        Single user name if data_security_mode is `SINGLE_USER`
      - `policy_id` (string, optional)
        The ID of the cluster policy used to create the cluster if applicable.
      - `enable_local_disk_encryption` (boolean, optional)
        Whether to enable LUKS on cluster VMs' local disks
      - `driver_instance_pool_id` (string, optional)
        The optional ID of the instance pool for the driver of the cluster belongs.
         The pool cluster uses the instance pool with id (instance_pool_id) if the driver pool is not
         assigned.
      - `workload_type` (object, optional)
      - `data_security_mode` (string, optional)
        Possible values: `NONE`, `SINGLE_USER`, `USER_ISOLATION`, `LEGACY_TABLE_ACL`, `LEGACY_PASSTHROUGH`, `LEGACY_SINGLE_USER`, `LEGACY_SINGLE_USER_STANDARD`, `DATA_SECURITY_MODE_STANDARD`, `DATA_SECURITY_MODE_DEDICATED`, `DATA_SECURITY_MODE_AUTO`
      - `runtime_engine` (string, optional)
        Determines the cluster's runtime engine, either standard or Photon.
        
         This field is not compatible with legacy `spark_version` values that contain `-photon-`.
         Remove `-photon-` from the `spark_version` and set `runtime_engine` to `PHOTON`.
        
         If left unspecified, the runtime engine defaults to standard unless the spark_version
         contains -photon-, in which case Photon will be used.
        Possible values: `NULL`, `STANDARD`, `PHOTON`
      - `kind` (string, optional)
        Possible values: `COMPUTE_KIND_UNSPECIFIED`, `CLASSIC_PREVIEW`
      - `use_ml_runtime` (boolean, optional)
        This field can only be used when `kind = CLASSIC_PREVIEW`.
        
         `effective_spark_version` is determined by `spark_version` (DBR release), this field `use_ml_runtime`, and whether `node_type_id` is gpu node or not.
      - `is_single_node` (boolean, optional)
        This field can only be used when `kind = CLASSIC_PREVIEW`.
        
         When set to true, <Databricks> will automatically set single node related `custom_tags`, `spark_conf`, and `num_workers`
      - `remote_disk_throughput` (int32, optional)
        If set, what the configurable throughput (in Mb/s) for the remote disk is. Currently only supported for GCP HYPERDISK_BALANCED disks.
      - `total_initial_remote_disk_size` (int32, optional)
        If set, what the total initial volume size (in GB) of the remote disks should be. Supported for GCP.
      - `dependency_mode` (string, optional, Beta)
        Controls dependency configuration for the cluster.
        Possible values: `DEPENDENCY_MODE_UNSPECIFIED`, `DEPENDENCY_MODE_ENVIRONMENTS`, `DEPENDENCY_MODE_CLUSTER_LIBRARIES`, `DEPENDENCY_MODE_AUTO`
      - `num_workers` (int32, required)
        Number of worker nodes that this cluster should have. A cluster has one Spark Driver
         and `num_workers` Executors for a total of `num_workers` + 1 Spark nodes.
        
         Note: When reading the properties of a cluster, this field reflects the desired number
         of workers rather than the actual current number of workers. For instance, if a cluster
         is resized from 5 to 10 workers, this field will immediately be updated to reflect
         the target size of 10 workers, whereas the workers listed in `spark_info` will gradually
         increase from 5 to 10 as the new nodes are provisioned.
      - `autoscale` (object, required)
        Parameters needed in order to automatically scale clusters up and down based on load.
         Note: autoscaling works best with DB runtime versions 3.0 or later.
  - `git_source` (object, optional)
    An optional specification for a remote Git repository containing the source code used by tasks. Version-controlled source code is supported by notebook, dbt, Python script, and SQL File tasks.
    
     If `git_source` is set, these tasks retrieve the file from the remote repository by default. However, this behavior can be overridden by setting `source` to `WORKSPACE` on the task.
    
     Note: dbt and SQL File tasks support only version-controlled sources. If dbt or SQL File tasks are used, `git_source` must be defined on the job.
    - `git_url` (string, optional)
      URL of the repository to be cloned by this job.
      Example: `https://github.com/databricks/databricks-cli`
      Constraints: `<= 300 characters`
    - `git_provider` (string, optional)
      Unique identifier of the service used to host the Git repository. The value is case insensitive.
    - `git_branch` (string, required)
      Name of the branch to be checked out and used by this job. This field cannot be specified in conjunction with git_tag or git_commit.
      Example: `main`
      Constraints: `<= 255 characters`
    - `git_tag` (string, required)
      Name of the tag to be checked out and used by this job. This field cannot be specified in conjunction with git_branch or git_commit.
      Example: `release-1.0.0`
      Constraints: `<= 255 characters`
    - `git_commit` (string, required)
      Commit to be checked out and used by this job. This field cannot be specified in conjunction with git_branch or git_tag.
      Example: `e0056d01`
      Constraints: `<= 64 characters`
    - `git_snapshot` (object, optional)
      - `used_commit` (string, optional)
        Commit that was used to execute the run. If git_branch was specified, this points to the HEAD of the branch at the time of the run; if git_tag was specified, this points to the commit the tag points to.
        Example: `4506fdf41e9fa98090570a34df7a5bce163ff15f`
    - `sparse_checkout` (object, optional)
      - `patterns` (array of string, optional)
        List of patterns to include for sparse checkout.
  - `tags` (object, optional)
    A map of tags associated with the job. These are forwarded to the cluster as cluster tags for jobs clusters, and are subject to the same limitations as cluster tags. A maximum of 25 tags can be added to the job.
  - `format` (string, optional)
    Used to tell what is the format of the job. This field is ignored in Create/Update/Reset calls. When using the Jobs API 2.1 this value is always set to `"MULTI_TASK"`.
    Possible values: `SINGLE_TASK`, `MULTI_TASK`
    Example: `MULTI_TASK`
  - `queue` (object, optional)
    The queue settings of the job.
    - `enabled` (boolean, optional)
      If true, enable queueing for the job. This is a required field.
      Default: `true`
      Example: `true`
  - `parameters` (array of object, optional)
    Job-level parameter definitions
    - `name` (string, optional)
      The name of the defined parameter. May only contain alphanumeric characters, `_`, `-`, and `.`
      Example: `table`
      Constraints: `^[\w\-.]+$`
    - `default` (string, optional)
      Default value of the parameter.
      Example: `users`
  - `run_as` (object, optional)
    The user or service principal that the job runs as, if specified in the request.
     This field indicates the explicit configuration of `run_as` for the job.
     To find the value in all cases, explicit or implicit, use `run_as_user_name`.
    - `user_name` (string, required)
      The email of an active workspace user. Non-admin users can only set this field to their own email.
      Example: `user@databricks.com`
    - `service_principal_name` (string, required)
      Application ID of an active service principal. Setting this field requires the `servicePrincipal/user` role.
      Example: `692bc6d0-ffa3-11ed-be56-0242ac120002`
  - `edit_mode` (string, optional)
    Edit mode of the job.
    
     * `UI_LOCKED`: The job is in a locked UI state and cannot be modified.
     * `EDITABLE`: The job is in an editable state and can be modified.
    Possible values: `UI_LOCKED`, `EDITABLE`
  - `deployment` (object, optional)
    Deployment information for jobs managed by external sources.
    - `kind` (string, optional)
      The kind of deployment that manages the job.
      
       * `BUNDLE`: The job is managed by Databricks Asset Bundle.
       * `SYSTEM_MANAGED`: The job is managed by <Databricks> and is read-only.
      Possible values: `BUNDLE`, `SYSTEM_MANAGED`
    - `metadata_file_path` (string, optional)
      Path of the file that contains deployment metadata.
  - `environments` (array of object, optional)
    A list of task execution environment specifications that can be referenced by serverless tasks of this job.
     For serverless notebook tasks, if the environment_key is not specified, the notebook environment will be used if present. If a jobs environment is specified, it will override the notebook environment.
     For other serverless tasks, the task environment is required to be specified using environment_key in the task settings.
    Constraints: `<= 10 items`
    - `environment_key` (string, optional)
      The key of an environment. It has to be unique within a job.
    - `spec` (object, optional)
      - `client` (string, optional)
        Use `environment_version` instead.
        Example: `1`
      - `dependencies` (array of string, optional)
        List of pip dependencies, as supported by the version of pip in this environment.
         Each dependency is a valid pip requirements file line per https://pip.pypa.io/en/stable/reference/requirements-file-format/.
         Allowed dependencies include a requirement specifier, an archive URL, a local project path (such as WSFS or UC Volumes in <Databricks>), or a VCS project URL.
      - `base_environment` (string, optional)
        The base environment this environment is built on top of. A base environment defines the environment version and a
         list of dependencies for serverless compute. The value can be a file path to a custom `env.yaml` file
         (e.g., `/Workspace/path/to/env.yaml`). Support for a <Databricks>-provided base environment ID
         (e.g., `workspace-base-environments/databricks_ai_v4`) and workspace base environment ID
         (e.g., `workspace-base-environments/dbe_b849b66e-b31a-4cb5-b161-1f2b10877fb7`) is in Beta.
         Either `environment_version` or `base_environment` can be provided. 
         For more information about <Databricks>-provided base environments, see the
         [list workspace base environments](:method:Environments/ListWorkspaceBaseEnvironments) API.
         For more information, see
        **AWS:** The base environment this environment is built on top of. A base environment defines the environment version and a
        list of dependencies for serverless compute. The value can be a file path to a custom `env.yaml` file
        (e.g., `/Workspace/path/to/env.yaml`). Support for a <Databricks>-provided base environment ID
        (e.g., `workspace-base-environments/databricks_ai_v4`) and workspace base environment ID
        (e.g., `workspace-base-environments/dbe_b849b66e-b31a-4cb5-b161-1f2b10877fb7`) is in Beta.
        Either `environment_version` or `base_environment` can be provided.
        For more information about <Databricks>-provided base environments, see the
        list workspace base environments API.
        For more information, see
        https://docs.databricks.com/aws/en/compute/serverless/dependencies#base-environments-for-job-tasks.
        **Azure:** The base environment this environment is built on top of. A base environment defines the environment version and a
        list of dependencies for serverless compute. The value can be a file path to a custom `env.yaml` file
        (e.g., `/Workspace/path/to/env.yaml`). Support for a <Databricks>-provided base environment ID
        (e.g., `workspace-base-environments/databricks_ai_v4`) and workspace base environment ID
        (e.g., `workspace-base-environments/dbe_b849b66e-b31a-4cb5-b161-1f2b10877fb7`) is in Beta.
        Either `environment_version` or `base_environment` can be provided.
        For more information about <Databricks>-provided base environments, see the
        list workspace base environments API.
        For more information, see
        
        https://learn.microsoft.com/azure/databricks/compute/serverless/dependencies#base-environments-for-job-tasks.
        **GCP:** The base environment this environment is built on top of. A base environment defines the environment version and a
        list of dependencies for serverless compute. The value can be a file path to a custom `env.yaml` file
        (e.g., `/Workspace/path/to/env.yaml`). Support for a <Databricks>-provided base environment ID
        (e.g., `workspace-base-environments/databricks_ai_v4`) and workspace base environment ID
        (e.g., `workspace-base-environments/dbe_b849b66e-b31a-4cb5-b161-1f2b10877fb7`) is in Beta.
        Either `environment_version` or `base_environment` can be provided.
        For more information about <Databricks>-provided base environments, see the
        list workspace base environments API.
        For more information, see
        
        https://docs.databricks.com/gcp/en/compute/serverless/dependencies#base-environments-for-job-tasks.
      - `environment_version` (string, optional)
        Either `environment_version` or `base_environment` needs to be provided. Environment version used by the environment.
         Each version comes with a specific Python version and a set of Python packages.
         The version is a string, consisting of an integer.
        **AWS:** Either `environment_version` or `base_environment` needs to be provided. Environment version used by the environment.
        Each version comes with a specific Python version and a set of Python packages.
        The version is a string, consisting of an integer.
        See https://docs.databricks.com/aws/release-notes/serverless/#serverless-environment-versions.
        **Azure:** Either `environment_version` or `base_environment` needs to be provided. Environment version used by the environment.
        Each version comes with a specific Python version and a set of Python packages.
        The version is a string, consisting of an integer.
        
        See https://learn.microsoft.com/azure/databricks/release-notes/serverless/#serverless-environment-versions.
        **GCP:** Either `environment_version` or `base_environment` needs to be provided. Environment version used by the environment.
        Each version comes with a specific Python version and a set of Python packages.
        The version is a string, consisting of an integer.
        
        See https://docs.databricks.com/gcp/release-notes/serverless/#serverless-environment-versions.
        Example: `5`
      - `java_dependencies` (array of string, optional)
        List of java dependencies. Each dependency is a string representing a java library path. For example: `/Volumes/path/to/test.jar`.
        **AWS:** List of java dependencies. Each dependency is a string representing a java library path. For example: `/Volumes/path/to/test.jar`.
        See https://docs.databricks.com/aws/en/jobs/jar.
        **Azure:** List of java dependencies. Each dependency is a string representing a java library path. For example: `/Volumes/path/to/test.jar`.
        
        See https://learn.microsoft.com/en-gb/azure/databricks/jobs/jar.
        **GCP:** List of java dependencies. Each dependency is a string representing a java library path. For example: `/Volumes/path/to/test.jar`.
        
        See https://docs.databricks.com/gcp/en/jobs/jar.
  - `budget_policy_id` (string, optional, Public Preview)
    The id of the user specified budget policy to use for this job.
     If not specified, a default budget policy may be applied when creating or modifying the job.
     See `effective_budget_policy_id` for the budget policy used by this workload.
    Example: `550e8400-e29b-41d4-a716-446655440000`
  - `performance_target` (string, optional)
    The performance mode on a serverless job. This field determines the level of compute performance or cost-efficiency for the run.
     The performance target does not apply to tasks that run on Serverless GPU compute.
    
     * `STANDARD`: Enables cost-efficient execution of serverless workloads.
     * `PERFORMANCE_OPTIMIZED`: Prioritizes fast startup and execution times through rapid scaling and optimized cluster performance.
    Possible values: `PERFORMANCE_TARGET_UNSPECIFIED`, `PERFORMANCE_OPTIMIZED`, `STANDARD`
    Default: `PERFORMANCE_OPTIMIZED`
  - `triggers` (array of object, optional, Beta)
    List of triggers attached to this job. A run starts when any active trigger evaluates to true. Cannot be set in
     the same request as the legacy `schedule`, `trigger`, or `continuous` fields. Gated behind the "Multiple Triggers" feature preview.
    - `pause_status` (string, optional, Beta)
      Whether this trigger is paused. Defaults to UNPAUSED when unset; the server always returns an explicit value on read.
      Possible values: `UNPAUSED`, `PAUSED`
    - `periodic` (object, optional, Beta)
      Trigger type: exactly one must be set; mutual exclusivity is enforced in the API handler
       Periodic trigger configuration.
      - `interval` (int32, optional)
        The interval at which the trigger should run.
      - `unit` (string, optional)
        The unit of time for the interval.
        Possible values: `TIME_UNIT_UNSPECIFIED`, `HOURS`, `DAYS`, `WEEKS`, `MINUTES`
    - `schedule` (object, optional, Beta)
      Cron schedule trigger configuration.
      - `quartz_cron_expression` (string, optional, Beta)
        A Cron expression using Quartz syntax that describes the schedule for this trigger. See
         [Cron Trigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html) for details.
        Example: `20 30 * * * ?`
      - `timezone_id` (string, optional, Beta)
        A Java timezone ID. The schedule is resolved with respect to this timezone. See
         [Java TimeZone](https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html) for details.
        Example: `Europe/London`
    - `continuous` (object, optional, Beta)
      Continuous trigger configuration.
      - `task_retry_mode` (string, optional, Beta)
        Whether the continuous job applies task-level retries. Defaults to NEVER.
        Possible values: `NEVER`, `ON_FAILURE`
    - `file_arrival` (object, optional, Beta)
      File arrival trigger configuration.
      - `url` (string, optional)
        URL to be monitored for file arrivals. The path must point to the root or a subpath of the external location.
      - `min_time_between_triggers_seconds` (int32, optional)
        If set, the trigger starts a run only after the specified amount of time passed since
         the last time the trigger fired. The minimum allowed value is 60 seconds
      - `wait_after_last_change_seconds` (int32, optional)
        If set, the trigger starts a run only after no file activity has occurred for the specified amount of time.
         This makes it possible to wait for a batch of incoming files to arrive before triggering a run. The
         minimum allowed value is 60 seconds.
    - `table_update` (object, optional, Beta)
      Table update trigger configuration.
      - `table_names` (array of string, optional)
        A list of tables to monitor for changes. The table name must be in the format `catalog_name.schema_name.table_name`.
      - `min_time_between_triggers_seconds` (int32, optional)
        If set, the trigger starts a run only after the specified amount of time has passed since
         the last time the trigger fired. The minimum allowed value is 60 seconds.
      - `wait_after_last_change_seconds` (int32, optional)
        If set, the trigger starts a run only after no table updates have occurred for the specified time
         and can be used to wait for a series of table updates before triggering a run. The
         minimum allowed value is 60 seconds.
      - `condition` (string, optional)
        The table(s) condition based on which to trigger a job run.
        Possible values: `ANY_UPDATED`, `ALL_UPDATED`
        Example: `ALL_UPDATED`
  - `max_retries` (int32, optional)
    An optional maximum number of times to retry an unsuccessful run. A run is considered to be unsuccessful if it completes with the `FAILED` result_state or `INTERNAL_ERROR` `life_cycle_state`. The value `-1` means to retry indefinitely and the value `0` means to never retry.
    Default: `0`
    Example: `10`
  - `min_retry_interval_millis` (int32, optional)
    An optional minimal interval in milliseconds between the start of the failed run and the subsequent retry run. The default behavior is that unsuccessful runs are immediately retried.
    Example: `2000`
  - `retry_on_timeout` (boolean, optional)
    An optional policy to specify whether to retry a job when it times out. The default behavior
     is to not retry on timeout.
    Default: `false`
    Example: `true`
  - `disable_auto_optimization` (boolean, optional)
    An option to disable auto optimization in serverless
    Default: `false`
    Example: `true`
- `fields_to_remove` (array of string, optional)
  Remove top-level fields in the job settings. Removing nested fields is not supported, except for tasks and job clusters (`tasks/task_1`). This field is optional.

## Response

```json
{}
```

