{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/JobSettings",
  "title": "JobSettings",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Optional name for the job. Default is Untitled.",
      "default": "Untitled",
      "example": "Example Title"
    },
    "tags": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Map of tags associated with the job",
      "example": "example_value"
    },
    "tasks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TaskSettings"
      },
      "description": "List of task specifications for the job. A job must contain at least one task.",
      "example": []
    },
    "job_clusters": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/JobCluster"
      },
      "description": "A list of job cluster specifications that can be shared and reused by tasks.",
      "example": []
    },
    "email_notifications": {
      "$ref": "#/components/schemas/EmailNotifications"
    },
    "webhook_notifications": {
      "$ref": "#/components/schemas/WebhookNotifications"
    },
    "notification_settings": {
      "type": "object",
      "properties": {
        "no_alert_for_skipped_runs": {
          "type": "boolean",
          "description": "Do not send alert for skipped runs"
        },
        "no_alert_for_canceled_runs": {
          "type": "boolean",
          "description": "Do not send alert for canceled runs"
        }
      },
      "example": "example_value"
    },
    "timeout_seconds": {
      "type": "integer",
      "format": "int32",
      "description": "Timeout in seconds applied to each run of this job. Default is no timeout.",
      "default": 0,
      "example": 10
    },
    "max_concurrent_runs": {
      "type": "integer",
      "format": "int32",
      "description": "Maximum allowed number of concurrent runs of the job. Default is 1.",
      "default": 1,
      "example": 10
    },
    "schedule": {
      "$ref": "#/components/schemas/CronSchedule"
    },
    "trigger": {
      "type": "object",
      "properties": {
        "file_arrival": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "URL of the storage location to monitor"
            },
            "min_time_between_triggers_seconds": {
              "type": "integer",
              "format": "int32"
            },
            "wait_after_last_change_seconds": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "description": "Trigger settings for file arrival events",
      "example": "example_value"
    },
    "continuous": {
      "type": "object",
      "properties": {
        "pause_status": {
          "type": "string",
          "enum": [
            "PAUSED",
            "UNPAUSED"
          ]
        }
      },
      "description": "Settings for continuous job execution",
      "example": "example_value"
    },
    "git_source": {
      "$ref": "#/components/schemas/GitSource"
    },
    "format": {
      "type": "string",
      "enum": [
        "SINGLE_TASK",
        "MULTI_TASK"
      ],
      "description": "Format of the job. MULTI_TASK is the preferred format for creating jobs with multiple tasks.",
      "example": "SINGLE_TASK"
    },
    "queue": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Whether to queue the run if the cluster is not available"
        }
      },
      "example": "example_value"
    },
    "parameters": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "default": {
            "type": "string"
          }
        }
      },
      "description": "Job-level parameters",
      "example": []
    },
    "run_as": {
      "type": "object",
      "properties": {
        "user_name": {
          "type": "string"
        },
        "service_principal_name": {
          "type": "string"
        }
      },
      "description": "User or service principal to run the job as",
      "example": "example_value"
    }
  }
}