{
  "$id": "https://community-tc.services.mozilla.com/schemas/queue/v1/create-task-request.json#",
  "$schema": "https://community-tc.services.mozilla.com/schemas/common/metaschema.json#",
  "additionalProperties": false,
  "description": "Definition of a task that can be scheduled\n",
  "properties": {
    "created": {
      "description": "Creation time of task",
      "format": "date-time",
      "title": "Created",
      "type": "string"
    },
    "deadline": {
      "description": "Deadline of the task, by which this task must be complete. `pending` and\n`running` runs are resolved as **exception** if not resolved by other means\nbefore the deadline. After the deadline, a task is immutable. Note,\ndeadline cannot be more than 5 days into the future\n",
      "format": "date-time",
      "title": "Deadline",
      "type": "string"
    },
    "dependencies": {
      "$ref": "task.json#/properties/dependencies",
      "default": []
    },
    "expires": {
      "$ref": "task.json#/properties/expires"
    },
    "extra": {
      "$ref": "task.json#/properties/extra",
      "default": {}
    },
    "metadata": {
      "$ref": "task-metadata.json#"
    },
    "payload": {
      "$ref": "task.json#/properties/payload",
      "default": []
    },
    "priority": {
      "$ref": "task.json#/properties/priority",
      "default": "lowest"
    },
    "projectId": {
      "$ref": "task.json#/properties/projectId",
      "default": "none"
    },
    "provisionerId": {
      "$ref": "task.json#/properties/provisionerId"
    },
    "requires": {
      "$ref": "task.json#/properties/requires",
      "default": "all-completed"
    },
    "retries": {
      "$ref": "task.json#/properties/retries",
      "default": 5
    },
    "routes": {
      "$ref": "task.json#/properties/routes",
      "default": []
    },
    "schedulerId": {
      "$ref": "task.json#/properties/schedulerId",
      "default": "-"
    },
    "scopes": {
      "$ref": "task.json#/properties/scopes",
      "default": []
    },
    "tags": {
      "$ref": "task.json#/properties/tags",
      "default": {}
    },
    "taskGroupId": {
      "$ref": "task.json#/properties/taskGroupId"
    },
    "taskQueueId": {
      "$ref": "task.json#/properties/taskQueueId"
    },
    "workerType": {
      "$ref": "task.json#/properties/workerType"
    }
  },
  "required": [
    "created",
    "deadline",
    "payload",
    "metadata"
  ],
  "title": "Task Definition Request",
  "type": "object"
}