You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
4.3 KiB
YAML
140 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"
|