As a side effect, I got rid of all of the horrible symlinks and just put in all of the proper relative paths. Because the horrible symlinks were horrible.
127 lines
3.9 KiB
YAML
127 lines
3.9 KiB
YAML
swagger: '2.0'
|
|
info:
|
|
title: "Matrix Client-Server v1 Content Repository API"
|
|
version: "1.0.0"
|
|
host: localhost:8008
|
|
schemes:
|
|
- https
|
|
basePath: /_matrix/media/v1
|
|
produces:
|
|
- application/json
|
|
- "*/*"
|
|
paths:
|
|
"/upload":
|
|
post:
|
|
summary: Upload some content to the content repository.
|
|
produces: ["application/json"]
|
|
parameters:
|
|
- in: header
|
|
name: Content-Type
|
|
type: string
|
|
description: The content type of the file being uploaded
|
|
x-example: "Content-Type: audio/mpeg"
|
|
- in: body
|
|
name: "<content>"
|
|
description: The content to be uploaded.
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "<bytes>"
|
|
format: byte
|
|
responses:
|
|
200:
|
|
description: The MXC URI for the uploaded content.
|
|
schema:
|
|
type: object
|
|
required: ["content_uri"]
|
|
properties:
|
|
content_uri:
|
|
type: string
|
|
description: "The MXC URI to the uploaded content."
|
|
examples:
|
|
"application/json": |-
|
|
{
|
|
"content_uri": "mxc://example.com/AQwafuaFswefuhsfAFAgsw"
|
|
}
|
|
"/download/{serverName}/{mediaId}":
|
|
get:
|
|
summary: "Download content from the content repository."
|
|
produces: ["*/*"]
|
|
parameters:
|
|
- in: path
|
|
type: string
|
|
name: serverName
|
|
x-example: matrix.org
|
|
required: true
|
|
description: |
|
|
The server name from the ``mxc://`` URI (the authoritory component)
|
|
- in: path
|
|
type: string
|
|
name: mediaId
|
|
x-example: ascERGshawAWawugaAcauga
|
|
required: true
|
|
description: |
|
|
The media ID from the ``mxc://`` URI (the path component)
|
|
responses:
|
|
200:
|
|
description: "The content that was previously uploaded."
|
|
headers:
|
|
Content-Type:
|
|
description: "The content type of the file that was previously uploaded."
|
|
type: "string"
|
|
Content-Disposition:
|
|
description: "The name of the file that was previously uploaded, if set."
|
|
type: "string"
|
|
schema:
|
|
type: file
|
|
"/thumbnail/{serverName}/{mediaId}":
|
|
get:
|
|
summary: "Download a thumbnail of the content from the content repository."
|
|
produces: ["image/jpeg", "image/png"]
|
|
parameters:
|
|
- in: path
|
|
type: string
|
|
name: serverName
|
|
required: true
|
|
x-example: matrix.org
|
|
description: |
|
|
The server name from the ``mxc://`` URI (the authoritory component)
|
|
- in: path
|
|
type: string
|
|
name: mediaId
|
|
x-example: ascERGshawAWawugaAcauga
|
|
required: true
|
|
description: |
|
|
The media ID from the ``mxc://`` URI (the path component)
|
|
- in: query
|
|
type: integer
|
|
x-example: 64
|
|
name: width
|
|
description: |-
|
|
The *desired* width of the thumbnail. The actual thumbnail may not
|
|
match the size specified.
|
|
- in: query
|
|
type: integer
|
|
x-example: 64
|
|
name: height
|
|
description: |-
|
|
The *desired* height of the thumbnail. The actual thumbnail may not
|
|
match the size specified.
|
|
- in: query
|
|
type: string
|
|
enum: ["crop", "scale"]
|
|
name: method
|
|
x-example: "scale"
|
|
description: The desired resizing method.
|
|
responses:
|
|
200:
|
|
description: "A thumbnail of the requested content."
|
|
headers:
|
|
Content-Type:
|
|
description: "The content type of the thumbnail."
|
|
type: "string"
|
|
enum: ["image/jpeg", "image/png"]
|
|
schema:
|
|
type: file
|
|
|
|
|