@@ -280,9 +280,9 @@ type Cluster struct {
280280 InstancePoolID string `json:"instance_pool_id,omitempty" tf:"group:node_type"`
281281 DriverInstancePoolID string `json:"driver_instance_pool_id,omitempty" tf:"group:node_type,computed"`
282282 PolicyID string `json:"policy_id,omitempty"`
283- AwsAttributes * AwsAttributes `json:"aws_attributes,omitempty" tf:"conflicts:instance_pool_id"`
284- AzureAttributes * AzureAttributes `json:"azure_attributes,omitempty" tf:"conflicts:instance_pool_id"`
285- GcpAttributes * GcpAttributes `json:"gcp_attributes,omitempty" tf:"conflicts:instance_pool_id"`
283+ AwsAttributes * AwsAttributes `json:"aws_attributes,omitempty" tf:"conflicts:instance_pool_id,suppress_diff "`
284+ AzureAttributes * AzureAttributes `json:"azure_attributes,omitempty" tf:"conflicts:instance_pool_id,suppress_diff "`
285+ GcpAttributes * GcpAttributes `json:"gcp_attributes,omitempty" tf:"conflicts:instance_pool_id,suppress_diff "`
286286 AutoterminationMinutes int32 `json:"autotermination_minutes,omitempty"`
287287
288288 SparkConf map [string ]string `json:"spark_conf,omitempty"`
@@ -413,8 +413,8 @@ type InstancePool struct {
413413 MinIdleInstances int32 `json:"min_idle_instances,omitempty"`
414414 MaxCapacity int32 `json:"max_capacity,omitempty"`
415415 IdleInstanceAutoTerminationMinutes int32 `json:"idle_instance_autotermination_minutes"`
416- AwsAttributes * InstancePoolAwsAttributes `json:"aws_attributes,omitempty" tf:"force_new"`
417- AzureAttributes * InstancePoolAzureAttributes `json:"azure_attributes,omitempty" tf:"force_new"`
416+ AwsAttributes * InstancePoolAwsAttributes `json:"aws_attributes,omitempty" tf:"force_new,suppress_diff "`
417+ AzureAttributes * InstancePoolAzureAttributes `json:"azure_attributes,omitempty" tf:"force_new,suppress_diff "`
418418 NodeTypeID string `json:"node_type_id" tf:"force_new"`
419419 CustomTags map [string ]string `json:"custom_tags,omitempty" tf:"force_new"`
420420 EnableElasticDisk bool `json:"enable_elastic_disk,omitempty" tf:"force_new"`
@@ -517,8 +517,8 @@ type SparkSubmitTask struct {
517517 Parameters []string `json:"parameters,omitempty"`
518518}
519519
520- // JobEmailNotifications contains the information for email notifications after job completion
521- type JobEmailNotifications struct {
520+ // EmailNotifications contains the information for email notifications after job completion
521+ type EmailNotifications struct {
522522 OnStart []string `json:"on_start,omitempty"`
523523 OnSuccess []string `json:"on_success,omitempty"`
524524 OnFailure []string `json:"on_failure,omitempty"`
@@ -532,27 +532,55 @@ type CronSchedule struct {
532532 PauseStatus string `json:"pause_status,omitempty" tf:"computed"`
533533}
534534
535- // JobSettings contains the information for configuring a job on databricks
536- type JobSettings struct {
537- Name string `json:"name,omitempty" tf:"default:Untitled"`
535+ type TaskDependency struct {
536+ TaskKey string `json:"task_key,omitempty"`
537+ }
538538
539- ExistingClusterID string `json:"existing_cluster_id,omitempty" tf:"group:cluster_type"`
540- NewCluster * Cluster `json:"new_cluster,omitempty" tf:"group:cluster_type"`
539+ type JobTaskSettings struct {
540+ TaskKey string `json:"task_key,omitempty"`
541+ Description string `json:"description,omitempty"`
542+ DependsOn []TaskDependency `json:"depends_on,omitempty"`
541543
542- NotebookTask * NotebookTask `json:"notebook_task,omitempty" tf:"group:task_type"`
543- SparkJarTask * SparkJarTask `json:"spark_jar_task,omitempty" tf:"group:task_type"`
544- SparkPythonTask * SparkPythonTask `json:"spark_python_task,omitempty" tf:"group:task_type"`
545- SparkSubmitTask * SparkSubmitTask `json:"spark_submit_task,omitempty" tf:"group:task_type"`
544+ // TODO: add PipelineTask, PythonWheelTask
545+ ExistingClusterID string `json:"existing_cluster_id,omitempty" tf:"group:cluster_type"`
546+ NewCluster * Cluster `json:"new_cluster,omitempty" tf:"group:cluster_type"`
547+ Libraries []Library `json:"libraries,omitempty" tf:"slice_set,alias:library"`
548+ NotebookTask * NotebookTask `json:"notebook_task,omitempty" tf:"group:task_type"`
549+ SparkJarTask * SparkJarTask `json:"spark_jar_task,omitempty" tf:"group:task_type"`
550+ SparkPythonTask * SparkPythonTask `json:"spark_python_task,omitempty" tf:"group:task_type"`
551+ SparkSubmitTask * SparkSubmitTask `json:"spark_submit_task,omitempty" tf:"group:task_type"`
552+ EmailNotifications * EmailNotifications `json:"email_notifications,omitempty" tf:"suppress_diff"`
553+ TimeoutSeconds int32 `json:"timeout_seconds,omitempty"`
554+ MaxRetries int32 `json:"max_retries,omitempty"`
555+ MinRetryIntervalMillis int32 `json:"min_retry_interval_millis,omitempty"`
556+ RetryOnTimeout bool `json:"retry_on_timeout,omitempty"`
557+ }
546558
547- Libraries []Library `json:"libraries,omitempty" tf:"slice_set,alias:library"`
548- TimeoutSeconds int32 `json:"timeout_seconds,omitempty"`
549- MaxRetries int32 `json:"max_retries,omitempty"`
550- MinRetryIntervalMillis int32 `json:"min_retry_interval_millis,omitempty"`
551- RetryOnTimeout bool `json:"retry_on_timeout,omitempty"`
552- Schedule * CronSchedule `json:"schedule,omitempty"`
553- MaxConcurrentRuns int32 `json:"max_concurrent_runs,omitempty"`
559+ // JobSettings contains the information for configuring a job on databricks
560+ type JobSettings struct {
561+ Name string `json:"name,omitempty" tf:"default:Untitled"`
554562
555- EmailNotifications * JobEmailNotifications `json:"email_notifications,omitempty"`
563+ // BEGIN Jobs API 2.0
564+ ExistingClusterID string `json:"existing_cluster_id,omitempty" tf:"group:cluster_type"`
565+ NewCluster * Cluster `json:"new_cluster,omitempty" tf:"group:cluster_type"`
566+ NotebookTask * NotebookTask `json:"notebook_task,omitempty" tf:"group:task_type"`
567+ SparkJarTask * SparkJarTask `json:"spark_jar_task,omitempty" tf:"group:task_type"`
568+ SparkPythonTask * SparkPythonTask `json:"spark_python_task,omitempty" tf:"group:task_type"`
569+ SparkSubmitTask * SparkSubmitTask `json:"spark_submit_task,omitempty" tf:"group:task_type"`
570+ Libraries []Library `json:"libraries,omitempty" tf:"slice_set,alias:library"`
571+ TimeoutSeconds int32 `json:"timeout_seconds,omitempty"`
572+ MaxRetries int32 `json:"max_retries,omitempty"`
573+ MinRetryIntervalMillis int32 `json:"min_retry_interval_millis,omitempty"`
574+ RetryOnTimeout bool `json:"retry_on_timeout,omitempty"`
575+ // END Jobs API 2.0
576+
577+ // BEGIN Jobs API 2.1
578+ Tasks []JobTaskSettings `json:"tasks,omitempty" tf:"alias:task"`
579+ // END Jobs API 2.1
580+
581+ Schedule * CronSchedule `json:"schedule,omitempty"`
582+ MaxConcurrentRuns int32 `json:"max_concurrent_runs,omitempty"`
583+ EmailNotifications * EmailNotifications `json:"email_notifications,omitempty" tf:"suppress_diff"`
556584}
557585
558586// JobList ...
0 commit comments