json_schema: {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "title": "Task detail",
      "description": "Detailed information about a specific task",
      "type": "object",
      "properties": {
          "metadata": {
              "description": "The contents of the <task name>.json metadata file. This will be empty if the file doesn't exist, or is empty. Otherwise it is allowed to return arbitrary keys here.",
              "type": "object",
              "properties": {},
              "required": [],
              "additionalProperties": true
          },
          "files": {
              "description": "A list of executable files associated with the requested task, and data about them. The data is intended to assist in fetching their contents from the task file-content endpoint.",
              "type": "array",
              "items": {
                  "description": "A single file associated with the requested task, and data about it.",
                  "type": "object",
                  "properties": {
                      "filename": {
                          "description": "The name of the file (which should match the second part of the task name) plus its extension.",
                          "type": "string"
                      },
                      "sha256": {
                          "description": "The SHA256 of the contents of the file.",
                          "type": "string"
                      },
                      "size_bytes": {
                          "description": "The size of the file, in bytes.",
                          "type": "number"
                      },
                      "uri": {
                          "description": "Information on how to request the file contents from a Puppet master node. This will only provide a relative path, because clients may want to request from a compile master instead of the primary master.",
                          "type": "object",
                          "properties": {
                              "path": {
                                  "description": "A relative URI for accessing the task contents. A client can form the full URI by requesting 'master:port/path?params'.",
                                  "type": "string"
                              },
                              "params": {
                                  "description": "A map of query params to use when requesting task contents. Required to include in the URI when making a request for task contents.",
                                  "type": "object",
                                  "properties": {
                                      "environment": {
                                          "description": "The environment the task is in, a required query param on request to task contents.",
                                          "type": "string"
                                      }
                                  },
                                  "required": [
                                      "environment"
                                  ],
                                  "additionalProperties": true
                              }
                          },
                          "required": [
                              "path",
                              "params"
                          ],
                          "additionalProperties": true
                      }
                  },
                  "required": [
                      "metadata",
                      "files",
                      "code_id"
                  ],
                  "additionalProperties": true
              }
          }
      }
  }