{
  "$id": "https://firefox-ci-tc.services.mozilla.com/schemas/object/v1/upload-method-put-url.json#",
  "$schema": "https://firefox-ci-tc.services.mozilla.com/schemas/common/metaschema.json#",
  "definitions": {
    "request": {
      "additionalProperties": false,
      "description": "Request a URL to which a PUT request can be made.",
      "properties": {
        "contentLength": {
          "description": "Length, in bytes, of the uploaded data.",
          "type": "integer"
        },
        "contentType": {
          "description": "Content-type of the data to be uploaded.",
          "type": "string"
        }
      },
      "required": [
        "contentType",
        "contentLength"
      ],
      "title": "`putUrl` upload request",
      "type": "object"
    },
    "response": {
      "additionalProperties": false,
      "description": "Response containing a URL to which to PUT the data.",
      "properties": {
        "expires": {
          "description": "Expiration time for the URL.  After this time, the client must\ncall `createUpload` again to get a fresh URL.",
          "format": "date-time",
          "type": "string"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Headers which must be included with the PUT request.  In many\ncases, these are included in a signature embedded in the URL,\nand must be provided verbatim.\n\nThe `Content-Length` header may be included here.  Many HTTP client\nlibraries will also set this directly when the length is known.  In\nthis case, the values should be identical, and the header should only\nbe specified once.",
          "type": "object"
        },
        "url": {
          "description": "URL to which a PUT request should be made.",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "url",
        "expires",
        "headers"
      ],
      "title": "`putUrl` upload response",
      "type": "object"
    }
  },
  "title": "putUrl upload method"
}