{
  "apiVersion": "1.0.0",
  "swaggerVersion": "1.2",
  "basePath": "http://localhost:8008/_matrix",
  "resourcePath": "/media/v1/",
  "apis": [
    {
      "path": "/media/v1/upload",
      "operations": [
        {
          "method": "POST",
          "summary": "Upload some content to the content repository.",
          "type": "ContentUploadResponse",
          "nickname": "upload_content",
          "parameters": [
            {
              "name": "body",
              "description": "The file to upload.",
              "required": true,
              "type": "file",
              "paramType": "body"
            }
          ]
        }
      ]
    },
    {
      "path": "/media/v1/download/{serverName}/{mediaId}",
      "operations": [
        {
          "method": "GET",
          "summary": "Get the content stored at this address.",
          "type": "file",
          "nickname": "download_content",
          "parameters": [
            {
              "name": "serverName",
              "description": "The serverName from the mxc://<serverName>/<mediaId> URI (the authority component).",
              "required": true,
              "type": "string",
              "paramType": "path"
            },
            {
              "name": "mediaId",
              "description": "The mediaId from the mxc://<serverName>/<mediaId> URI (the path component).",
              "required": true,
              "type": "string",
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/media/v1/thumbnail/{serverName}/{mediaId}",
      "operations": [
        {
          "method": "GET",
          "summary": "Get a thumbnail of the content stored at this address.",
          "type": "file",
          "nickname": "thumbnail_content",
          "parameters": [
            {
              "name": "serverName",
              "description": "The serverName from the mxc://<serverName>/<mediaId> URI (the authority component).",
              "required": true,
              "type": "string",
              "paramType": "path"
            },
            {
              "name": "mediaId",
              "description": "The mediaId from the mxc://<serverName>/<mediaId> URI (the path component).",
              "required": true,
              "type": "string",
              "paramType": "path"
            },
            {
              "name": "width",
              "description": "The desired width of the thumbnail.",
              "required": false,
              "type": "integer",
              "paramType": "query"
            },
            {
              "name": "height",
              "description": "The desired height of the thumbnail.",
              "required": false,
              "type": "integer",
              "paramType": "query"
            },
            {
              "name": "method",
              "description": "The desired resizing method.",
              "enum": [
                "crop",
                "scale"
              ],
              "required": false,
              "type": "string",
              "paramType": "query"
            }
          ]
        }
      ]
    }
  ],
  "models": {
    "ContentUploadResponse": {
      "id": "ContentUploadResponse",
      "properties": {
        "content_uri": {
          "type": "string",
          "description": "The mxc:// URI where this content is stored. This is of the form 'mxc://{serverName}/{mediaId}'",
          "required": true
        }
      }
    }
  }
}