summary refs log tree commit diff
path: root/docs/client-server/swagger_matrix/api-docs-events
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2014-09-01 15:51:44 +0100
committerMark Haines <mark.haines@matrix.org>2014-09-01 15:51:44 +0100
commitf5755bcadfe6d27f1449f85f8b846ca4b02e5f20 (patch)
treebfb9f36038c0728de5411059f3af97a4be473509 /docs/client-server/swagger_matrix/api-docs-events
parentFix homeserver config parsing (diff)
parentRename API-visible 'mtime' presence field to 'last_active'; slightly differen... (diff)
downloadsynapse-f5755bcadfe6d27f1449f85f8b846ca4b02e5f20.tar.xz
Merge branch 'develop' into server2server_tls
Diffstat (limited to 'docs/client-server/swagger_matrix/api-docs-events')
-rw-r--r--docs/client-server/swagger_matrix/api-docs-events246
1 files changed, 246 insertions, 0 deletions
diff --git a/docs/client-server/swagger_matrix/api-docs-events b/docs/client-server/swagger_matrix/api-docs-events
new file mode 100644
index 0000000000..d22c68cc78
--- /dev/null
+++ b/docs/client-server/swagger_matrix/api-docs-events
@@ -0,0 +1,246 @@
+{
+  "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"
+          }
+        }
+      }
+    }
+  }
+}