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.
139 lines
4.3 KiB
YAML
139 lines
4.3 KiB
YAML
swagger: '2.0'
|
|
info:
|
|
title: "Matrix Client-Server v2 filter API"
|
|
version: "1.0.0"
|
|
host: localhost:8008
|
|
schemes:
|
|
- https
|
|
basePath: /_matrix/client/v2_alpha
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
securityDefinitions:
|
|
accessToken:
|
|
type: apiKey
|
|
description: The user_id or application service access_token
|
|
name: access_token
|
|
in: query
|
|
paths:
|
|
"/user/{userId}/filter":
|
|
post:
|
|
summary: Upload a new filter.
|
|
description: |-
|
|
Uploads a new filter definition to the homeserver.
|
|
Returns a filter ID that may be used in /sync requests to
|
|
retrict which events are returned to the client.
|
|
security:
|
|
- accessToken: []
|
|
parameters:
|
|
- in: path
|
|
type: string
|
|
name: userId
|
|
required: true
|
|
description:
|
|
The id of the user uploading the filter. The access token must be
|
|
authorized to make requests for this user id.
|
|
x-example: "@alice:example.com"
|
|
- in: body
|
|
name: filter
|
|
required: true
|
|
description: The filter to upload.
|
|
schema:
|
|
type: object
|
|
allOf:
|
|
- $ref: "definitions/sync_filter.json"
|
|
example: |-
|
|
{
|
|
"room": {
|
|
"state": {
|
|
"types": ["m.room.*"],
|
|
"not_rooms": ["!726s6s6q:example.com"]
|
|
},
|
|
"timeline": {
|
|
"limit": 10,
|
|
"types": ["m.room.message"],
|
|
"not_rooms": ["!726s6s6q:example.com"],
|
|
"not_senders": ["@spam:example.com"]
|
|
},
|
|
"ephemeral": {
|
|
"types": ["m.receipt", "m.typing"],
|
|
"not_rooms": ["!726s6s6q:example.com"],
|
|
"not_senders": ["@spam:example.com"]
|
|
}
|
|
},
|
|
"presence": {
|
|
"types": ["m.presence"],
|
|
"not_senders": ["@alice:example.com"]
|
|
},
|
|
"event_format": "client",
|
|
"event_fields": ["type", "content", "sender"]
|
|
}
|
|
responses:
|
|
200:
|
|
description: The filter was created.
|
|
examples:
|
|
application/json: |-
|
|
{
|
|
"filter_id": "66696p746572"
|
|
}
|
|
schema:
|
|
type: object
|
|
properties:
|
|
filter_id:
|
|
type: string
|
|
description: |-
|
|
The ID of the filter that was created.
|
|
"/user/{userId}/filter/{filterId}":
|
|
get:
|
|
summary: Download a filter
|
|
parameters:
|
|
- in: path
|
|
name: userId
|
|
type: string
|
|
description: |-
|
|
The user ID to download a filter for.
|
|
x-example: "@alice:example.com"
|
|
required: true
|
|
- in: path
|
|
name: filterId
|
|
type: string
|
|
description: |-
|
|
The filter ID to download.
|
|
x-example: "66696p746572"
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: |-
|
|
"The filter defintion"
|
|
examples:
|
|
application/json: |-
|
|
{
|
|
"room": {
|
|
"state": {
|
|
"types": ["m.room.*"],
|
|
"not_rooms": ["!726s6s6q:example.com"]
|
|
},
|
|
"timeline": {
|
|
"limit": 10,
|
|
"types": ["m.room.message"],
|
|
"not_rooms": ["!726s6s6q:example.com"],
|
|
"not_senders": ["@spam:example.com"]
|
|
},
|
|
"ephemeral": {
|
|
"types": ["m.receipt", "m.typing"],
|
|
"not_rooms": ["!726s6s6q:example.com"],
|
|
"not_senders": ["@spam:example.com"]
|
|
}
|
|
},
|
|
"presence": {
|
|
"types": ["m.presence"],
|
|
"not_senders": ["@alice:example.com"]
|
|
},
|
|
"event_format": "client",
|
|
"event_fields": ["type", "content", "sender"]
|
|
}
|
|
schema:
|
|
type: object
|
|
allOf:
|
|
- $ref: "definitions/sync_filter.json"
|