{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/red-hat/main/json-schema/red-hat-paginated-job-template-list-schema.json",
  "title": "PaginatedJobTemplateList",
  "description": "A paginated list of job templates.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/red-hat-job-templates-api-openapi.yml#/components/schemas/PaginatedJobTemplateList",
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "description": "The total number of results."
    },
    "next": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "description": "URL to the next page of results."
    },
    "previous": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "description": "URL to the previous page of results."
    },
    "results": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/JobTemplate"
      }
    }
  },
  "$defs": {
    "JobTemplate": {
      "type": "object",
      "description": "A job template defines the parameters for running an Ansible playbook against an inventory of managed hosts.",
      "properties": {
        "id": {
          "type": "integer",
          "description": "The unique identifier of the job template."
        },
        "name": {
          "type": "string",
          "description": "The name of the job template."
        },
        "description": {
          "type": "string",
          "description": "A description of the job template."
        },
        "job_type": {
          "type": "string",
          "description": "The type of job to execute.",
          "enum": [
            "run",
            "check"
          ]
        },
        "inventory": {
          "type": "integer",
          "description": "The ID of the inventory to run against."
        },
        "project": {
          "type": "integer",
          "description": "The ID of the project containing the playbook."
        },
        "playbook": {
          "type": "string",
          "description": "The playbook filename to execute from the project."
        },
        "forks": {
          "type": "integer",
          "description": "The number of parallel processes to use for execution.",
          "default": 0
        },
        "limit": {
          "type": "string",
          "description": "A host pattern to further limit the inventory scope."
        },
        "verbosity": {
          "type": "integer",
          "description": "The verbosity level for job output (0-5).",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5
          ],
          "default": 0
        },
        "extra_vars": {
          "type": "string",
          "description": "Extra variables in YAML or JSON format."
        },
        "ask_variables_on_launch": {
          "type": "boolean",
          "description": "Whether to prompt for extra variables on launch."
        },
        "ask_inventory_on_launch": {
          "type": "boolean",
          "description": "Whether to prompt for inventory on launch."
        },
        "ask_credential_on_launch": {
          "type": "boolean",
          "description": "Whether to prompt for credentials on launch."
        },
        "survey_enabled": {
          "type": "boolean",
          "description": "Whether the survey is enabled for this template."
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time the template was created."
        },
        "modified": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time the template was last modified."
        }
      }
    }
  }
}