forked from MirrorHub/synapse
246 lines
6.6 KiB
Text
246 lines
6.6 KiB
Text
{
|
|
"apiVersion": "1.0.0",
|
|
"swaggerVersion": "1.2",
|
|
"basePath": "http://localhost:8080/matrix/client/api/v1",
|
|
"resourcePath": "/events",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"apis": [
|
|
{
|
|
"path": "/events",
|
|
"operations": [
|
|
{
|
|
"method": "GET",
|
|
"summary": "Listen on the event stream",
|
|
"notes": "This can only be done by the logged in user. This will block until an event is received, or until the timeout is reached.",
|
|
"type": "PaginationChunk",
|
|
"nickname": "get_event_stream"
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "from",
|
|
"description": "The token to stream from.",
|
|
"required": false,
|
|
"type": "string",
|
|
"paramType": "query"
|
|
},
|
|
{
|
|
"name": "timeout",
|
|
"description": "The maximum time in milliseconds to wait for an event.",
|
|
"required": false,
|
|
"type": "integer",
|
|
"paramType": "query"
|
|
}
|
|
],
|
|
"responseMessages": [
|
|
{
|
|
"code": 400,
|
|
"message": "Bad pagination token."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/events/{eventId}",
|
|
"operations": [
|
|
{
|
|
"method": "GET",
|
|
"summary": "Get information about a single event.",
|
|
"notes": "Get information about a single event.",
|
|
"type": "Event",
|
|
"nickname": "get_event",
|
|
"parameters": [
|
|
{
|
|
"name": "eventId",
|
|
"description": "The event ID to get.",
|
|
"required": true,
|
|
"type": "string",
|
|
"paramType": "path"
|
|
}
|
|
],
|
|
"responseMessages": [
|
|
{
|
|
"code": 404,
|
|
"message": "Event not found."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/initialSync",
|
|
"operations": [
|
|
{
|
|
"method": "GET",
|
|
"summary": "Get this user's current state.",
|
|
"notes": "Get this user's current state.",
|
|
"type": "InitialSyncResponse",
|
|
"nickname": "initial_sync",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"description": "The maximum number of messages to return for each room.",
|
|
"type": "integer",
|
|
"paramType": "query",
|
|
"required": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/publicRooms",
|
|
"operations": [
|
|
{
|
|
"method": "GET",
|
|
"summary": "Get a list of publicly visible rooms.",
|
|
"type": "PublicRoomsPaginationChunk",
|
|
"nickname": "get_public_room_list"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"models": {
|
|
"PaginationChunk": {
|
|
"id": "PaginationChunk",
|
|
"properties": {
|
|
"start": {
|
|
"type": "string",
|
|
"description": "A token which correlates to the first value in \"chunk\" for paginating.",
|
|
"required": true
|
|
},
|
|
"end": {
|
|
"type": "string",
|
|
"description": "A token which correlates to the last value in \"chunk\" for paginating.",
|
|
"required": true
|
|
},
|
|
"chunk": {
|
|
"type": "array",
|
|
"description": "An array of events.",
|
|
"required": true,
|
|
"items": {
|
|
"$ref": "Event"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Event": {
|
|
"id": "Event",
|
|
"properties": {
|
|
"event_id": {
|
|
"type": "string",
|
|
"description": "An ID which uniquely identifies this event.",
|
|
"required": true
|
|
},
|
|
"room_id": {
|
|
"type": "string",
|
|
"description": "The room in which this event occurred.",
|
|
"required": true
|
|
}
|
|
}
|
|
},
|
|
"PublicRoomInfo": {
|
|
"id": "PublicRoomInfo",
|
|
"properties": {
|
|
"aliases": {
|
|
"type": "array",
|
|
"description": "A list of room aliases for this room.",
|
|
"items": {
|
|
"$ref": "string"
|
|
}
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name of the room, as given by the m.room.name state event."
|
|
},
|
|
"room_id": {
|
|
"type": "string",
|
|
"description": "The room ID for this public room.",
|
|
"required": true
|
|
},
|
|
"topic": {
|
|
"type": "string",
|
|
"description": "The topic of this room, as given by the m.room.topic state event."
|
|
}
|
|
}
|
|
},
|
|
"PublicRoomsPaginationChunk": {
|
|
"id": "PublicRoomsPaginationChunk",
|
|
"properties": {
|
|
"start": {
|
|
"type": "string",
|
|
"description": "A token which correlates to the first value in \"chunk\" for paginating.",
|
|
"required": true
|
|
},
|
|
"end": {
|
|
"type": "string",
|
|
"description": "A token which correlates to the last value in \"chunk\" for paginating.",
|
|
"required": true
|
|
},
|
|
"chunk": {
|
|
"type": "array",
|
|
"description": "A list of public room data.",
|
|
"required": true,
|
|
"items": {
|
|
"$ref": "PublicRoomInfo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"InitialSyncResponse": {
|
|
"id": "InitialSyncResponse",
|
|
"properties": {
|
|
"end": {
|
|
"type": "string",
|
|
"description": "A streaming token which can be used with /events to continue from this snapshot of data.",
|
|
"required": true
|
|
},
|
|
"presence": {
|
|
"type": "array",
|
|
"description": "A list of presence events.",
|
|
"items": {
|
|
"$ref": "Event"
|
|
},
|
|
"required": false
|
|
},
|
|
"rooms": {
|
|
"type": "array",
|
|
"description": "A list of initial sync room data.",
|
|
"required": false,
|
|
"items": {
|
|
"$ref": "InitialSyncRoomData"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"InitialSyncRoomData": {
|
|
"id": "InitialSyncRoomData",
|
|
"properties": {
|
|
"membership": {
|
|
"type": "string",
|
|
"description": "This user's membership state in this room.",
|
|
"required": true
|
|
},
|
|
"room_id": {
|
|
"type": "string",
|
|
"description": "The ID of this room.",
|
|
"required": true
|
|
},
|
|
"messages": {
|
|
"type": "PaginationChunk",
|
|
"description": "The most recent messages for this room, governed by the limit parameter.",
|
|
"required": false
|
|
},
|
|
"state": {
|
|
"type": "array",
|
|
"description": "A list of state events representing the current state of the room.",
|
|
"required": false,
|
|
"items": {
|
|
"$ref": "Event"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|