978 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			978 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			Plaintext
		
	
	
| {
 | |
|   "apiVersion": "1.0.0",
 | |
|   "swaggerVersion": "1.2",
 | |
|   "basePath": "http://localhost:8008/_matrix/client/api/v1", 
 | |
|   "resourcePath": "/rooms",
 | |
|   "produces": [
 | |
|     "application/json"
 | |
|   ],
 | |
|   "consumes": [
 | |
|     "application/json"
 | |
|   ],
 | |
|   "authorizations": {
 | |
|     "token": []
 | |
|   },
 | |
|   "apis": [
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/send/{eventType}",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Send a generic non-state event to this room.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|           "type": "EventId",
 | |
|           "nickname": "send_non_state_event",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The event contents",
 | |
|               "required": true,
 | |
|               "type": "EventContent",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to send the message in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "eventType",
 | |
|               "description": "The type of event to send.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/state/{eventType}/{stateKey}",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "PUT",
 | |
|           "summary": "Send a generic state event to this room.",
 | |
|           "notes": "The state key can be omitted, such that you can PUT to /rooms/{roomId}/state/{eventType}. The state key defaults to a 0 length string in this case.",
 | |
|           "type": "void",
 | |
|           "nickname": "send_state_event",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The event contents",
 | |
|               "required": true,
 | |
|               "type": "EventContent",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to send the message in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "eventType",
 | |
|               "description": "The type of event to send.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "stateKey",
 | |
|               "description": "An identifier used to specify clobbering semantics. State events with the same (roomId, eventType, stateKey) will be replaced.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/send/m.room.message",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Send a message in this room.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|           "type": "EventId",
 | |
|           "nickname": "send_message",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The message contents",
 | |
|               "required": true,
 | |
|               "type": "Message",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to send the message in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/state/m.room.topic",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "PUT",
 | |
|           "summary": "Set the topic for this room.",
 | |
|           "notes": "Set the topic for this room.",
 | |
|           "type": "void",
 | |
|           "nickname": "set_topic",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The topic contents",
 | |
|               "required": true,
 | |
|               "type": "Topic",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to set the topic in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get the topic for this room.",
 | |
|           "notes": "Get the topic for this room.",
 | |
|           "type": "Topic",
 | |
|           "nickname": "get_topic",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to get topic in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 404,
 | |
|               "message": "Topic not found."
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/state/m.room.name",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "PUT",
 | |
|           "summary": "Set the name of this room.",
 | |
|           "notes": "Set the name of this room.",
 | |
|           "type": "void",
 | |
|           "nickname": "set_room_name",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The name contents",
 | |
|               "required": true,
 | |
|               "type": "RoomName",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to set the name of.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get the room's name.",
 | |
|           "notes": "",
 | |
|           "type": "RoomName",
 | |
|           "nickname": "get_room_name",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to get the name of.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 404,
 | |
|               "message": "Name not found."
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/send/m.room.message.feedback",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Send feedback to a message.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|           "type": "EventId",
 | |
|           "nickname": "send_feedback",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The feedback contents",
 | |
|               "required": true,
 | |
|               "type": "Feedback",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to send the feedback in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 400,
 | |
|               "message": "Bad feedback type."
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/invite",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Invite a user to this room.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|           "type": "void",
 | |
|           "nickname": "invite",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room which has this user.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The user to invite.",
 | |
|               "required": true,
 | |
|               "type": "InviteRequest",
 | |
|               "paramType": "body"
 | |
|             }
 | |
|           ]
 | |
|         }  
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/join",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Join this room.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|           "type": "void",
 | |
|           "nickname": "join_room",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to join.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "body",
 | |
|               "required": true,
 | |
|               "type": "JoinRequest",
 | |
|               "paramType": "body"
 | |
|             }
 | |
|           ]
 | |
|         }  
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/leave",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Leave this room.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|           "type": "void",
 | |
|           "nickname": "leave",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to leave.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "body",
 | |
|               "required": true,
 | |
|               "type": "LeaveRequest",
 | |
|               "paramType": "body"
 | |
|             }
 | |
|           ]
 | |
|         }  
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/ban",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Ban a user in the room.",
 | |
|           "notes": "This operation can also be done as a PUT by suffixing /{txnId}. The caller must have the required power level to do this operation.",
 | |
|           "type": "void",
 | |
|           "nickname": "ban",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room which has the user to ban.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The user to ban.",
 | |
|               "required": true,
 | |
|               "type": "BanRequest",
 | |
|               "paramType": "body"
 | |
|             }
 | |
|           ]
 | |
|         }  
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/state/m.room.member/{userId}",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "PUT",
 | |
|           "summary": "Change the membership state for a user in a room.",
 | |
|           "notes": "Change the membership state for a user in a room.",
 | |
|           "type": "void",
 | |
|           "nickname": "set_membership",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The new membership state",
 | |
|               "required": true,
 | |
|               "type": "Member",
 | |
|               "paramType": "body"
 | |
|             },
 | |
|             {
 | |
|               "name": "userId",
 | |
|               "description": "The user whose membership is being changed.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room which has this user.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 400,
 | |
|               "message": "No membership key."
 | |
|             },
 | |
|             {
 | |
|               "code": 400,
 | |
|               "message": "Bad membership value."
 | |
|             },
 | |
|             {
 | |
|               "code": 403,
 | |
|               "message": "When inviting: You are not in the room."
 | |
|             },
 | |
|             {
 | |
|               "code": 403,
 | |
|               "message": "When inviting: <target> is already in the room."
 | |
|             },
 | |
|             {
 | |
|               "code": 403,
 | |
|               "message": "When joining: Cannot force another user to join."
 | |
|             },
 | |
|             {
 | |
|               "code": 403,
 | |
|               "message": "When joining: You are not invited to this room."
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get the membership state of a user in a room.",
 | |
|           "notes": "Get the membership state of a user in a room.",
 | |
|           "type": "Member",
 | |
|           "nickname": "get_membership",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "userId",
 | |
|               "description": "The user whose membership state you want to get.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room which has this user.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 404,
 | |
|               "message": "Member not found."
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/join/{roomAliasOrId}",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Join a room via a room alias or room ID.",
 | |
|           "notes": "Join a room via a room alias or room ID.",
 | |
|           "type": "JoinRoomInfo",
 | |
|           "nickname": "join",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomAliasOrId",
 | |
|               "description": "The room alias or room ID to join.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 400,
 | |
|               "message": "Bad room alias."
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/createRoom",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "POST",
 | |
|           "summary": "Create a room.",
 | |
|           "notes": "Create a room.",
 | |
|           "type": "RoomInfo",
 | |
|           "nickname": "create_room",
 | |
|           "consumes": [
 | |
|             "application/json"
 | |
|           ],
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "body",
 | |
|               "description": "The desired configuration for the room. This operation can also be done as a PUT by suffixing /{txnId}.",
 | |
|               "required": true,
 | |
|               "type": "RoomConfig",
 | |
|               "paramType": "body"
 | |
|             }
 | |
|           ],
 | |
|           "responseMessages": [
 | |
|             {
 | |
|               "code": 400,
 | |
|               "message": "Body must be JSON."
 | |
|             },
 | |
|             {
 | |
|               "code": 400,
 | |
|               "message": "Room alias already taken."
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/messages",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get a list of messages for this room.",
 | |
|           "notes": "Get a list of messages for this room.",
 | |
|           "type": "MessagePaginationChunk",
 | |
|           "nickname": "get_messages",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to get messages in.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "from",
 | |
|               "description": "The token to start getting results from.",
 | |
|               "required": false,
 | |
|               "type": "string",
 | |
|               "paramType": "query"
 | |
|             },
 | |
|             {
 | |
|               "name": "to",
 | |
|               "description": "The token to stop getting results at.",
 | |
|               "required": false,
 | |
|               "type": "string",
 | |
|               "paramType": "query"
 | |
|             },
 | |
|             {
 | |
|               "name": "limit",
 | |
|               "description": "The maximum number of messages to return.",
 | |
|               "required": false,
 | |
|               "type": "integer",
 | |
|               "paramType": "query"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/members",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get a list of members for this room.",
 | |
|           "notes": "Get a list of members for this room.",
 | |
|           "type": "MemberPaginationChunk",
 | |
|           "nickname": "get_members",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to get a list of members from.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             },
 | |
|             {
 | |
|               "name": "from",
 | |
|               "description": "The token to start getting results from.",
 | |
|               "required": false,
 | |
|               "type": "string",
 | |
|               "paramType": "query"
 | |
|             },
 | |
|             {
 | |
|               "name": "to",
 | |
|               "description": "The token to stop getting results at.",
 | |
|               "required": false,
 | |
|               "type": "string",
 | |
|               "paramType": "query"
 | |
|             },
 | |
|             {
 | |
|               "name": "limit",
 | |
|               "description": "The maximum number of members to return.",
 | |
|               "required": false,
 | |
|               "type": "integer",
 | |
|               "paramType": "query"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/state",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get a list of all the current state events for this room.",
 | |
|           "notes": "This is equivalent to the events returned under the 'state' key for this room in /initialSync.",
 | |
|           "type": "array",
 | |
|           "items": {
 | |
|             "$ref": "Event"
 | |
|           },
 | |
|           "nickname": "get_state_events",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to get a list of current state events from.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "path": "/rooms/{roomId}/initialSync",
 | |
|       "operations": [
 | |
|         {
 | |
|           "method": "GET",
 | |
|           "summary": "Get all the current information for this room, including messages and state events.",
 | |
|           "notes": "NOT YET IMPLEMENTED.",
 | |
|           "type": "InitialSyncRoomData",
 | |
|           "nickname": "get_room_sync_data",
 | |
|           "parameters": [
 | |
|             {
 | |
|               "name": "roomId",
 | |
|               "description": "The room to get information for.",
 | |
|               "required": true,
 | |
|               "type": "string",
 | |
|               "paramType": "path"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     }
 | |
|   ],
 | |
|   "models": {
 | |
|     "Topic": {
 | |
|       "id": "Topic",
 | |
|       "properties": {
 | |
|         "topic": {
 | |
|           "type": "string",
 | |
|           "description": "The topic text"
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "RoomName": {
 | |
|       "id": "RoomName",
 | |
|       "properties": {
 | |
|         "name": {
 | |
|           "type": "string",
 | |
|           "description": "The human-readable name for the room. Can contain spaces."
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "Message": {
 | |
|       "id": "Message",
 | |
|       "properties": {
 | |
|         "msgtype": {
 | |
|           "type": "string",
 | |
|           "description": "The type of message being sent, e.g. \"m.text\"",
 | |
|           "required": true
 | |
|         },
 | |
|         "_msgtype_defined_keys_": {
 | |
|           "description": "Additional keys as defined by the msgtype, e.g. \"body\""
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "Feedback": {
 | |
|       "id": "Feedback",
 | |
|       "properties": {
 | |
|         "target_event_id": {
 | |
|           "type": "string",
 | |
|           "description": "The event ID being acknowledged.",
 | |
|           "required": true
 | |
|         },
 | |
|         "type": {
 | |
|           "type": "string",
 | |
|           "description": "The type of feedback. Either 'delivered' or 'read'.",
 | |
|           "required": true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "Member": {
 | |
|       "id": "Member",
 | |
|       "properties": {
 | |
|         "membership": {
 | |
|           "type": "string",
 | |
|           "description": "Enum: The membership state of this member.",
 | |
|           "enum": [
 | |
|             "invite",
 | |
|             "join",
 | |
|             "leave",
 | |
|             "ban"
 | |
|           ]
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "RoomInfo": {
 | |
|       "id": "RoomInfo",
 | |
|       "properties": {
 | |
|         "room_id": {
 | |
|           "type": "string",
 | |
|           "description": "The allocated room ID.",
 | |
|           "required": true
 | |
|         },
 | |
|         "room_alias": {
 | |
|           "type": "string",
 | |
|           "description": "The alias for the room.",
 | |
|           "required": false
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "JoinRoomInfo": {
 | |
|       "id": "JoinRoomInfo",
 | |
|       "properties": {
 | |
|         "room_id": {
 | |
|           "type": "string",
 | |
|           "description": "The room ID joined, if joined via a room alias only.",
 | |
|           "required": true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "RoomConfig": {
 | |
|       "id": "RoomConfig",
 | |
|       "properties": {
 | |
|         "visibility": {
 | |
|           "type": "string",
 | |
|           "description": "Enum: The room visibility.",
 | |
|           "required": false,
 | |
|           "enum": [
 | |
|             "public",
 | |
|             "private"
 | |
|           ]
 | |
|         },
 | |
|         "room_alias_name": {
 | |
|           "type": "string",
 | |
|           "description": "The alias to give the new room.",
 | |
|           "required": false
 | |
|         },
 | |
|         "name": {
 | |
|           "type": "string",
 | |
|           "description": "Sets the name of the room. Send a m.room.name event after creating the room with the 'name' key specified.",
 | |
|           "required": false
 | |
|         },
 | |
|         "topic": {
 | |
|           "type": "string",
 | |
|           "description": "Sets the topic for the room. Send a m.room.topic event after creating the room with the 'topic' key specified.",
 | |
|           "required": false
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "PaginationRequest": {
 | |
|       "id": "PaginationRequest",
 | |
|       "properties": {
 | |
|         "from": {
 | |
|           "type": "string",
 | |
|           "description": "The token to start getting results from."
 | |
|         },
 | |
|         "to": {
 | |
|           "type": "string",
 | |
|           "description": "The token to stop getting results at."
 | |
|         },
 | |
|         "limit": {
 | |
|           "type": "integer",
 | |
|           "description": "The maximum number of entries to return."
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "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
 | |
|         }
 | |
|       },
 | |
|       "subTypes": [
 | |
|         "MessagePaginationChunk"
 | |
|       ]
 | |
|     },
 | |
|     "MessagePaginationChunk": {
 | |
|       "id": "MessagePaginationChunk",
 | |
|       "properties": {
 | |
|         "chunk": {
 | |
|           "type": "array",
 | |
|           "description": "A list of message events.",
 | |
|           "items": {
 | |
|             "$ref": "MessageEvent"
 | |
|           },
 | |
|           "required": true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "MemberPaginationChunk": {
 | |
|       "id": "MemberPaginationChunk",
 | |
|       "properties": {
 | |
|         "chunk": {
 | |
|           "type": "array",
 | |
|           "description": "A list of member events.",
 | |
|           "items": {
 | |
|             "$ref": "MemberEvent"
 | |
|           },
 | |
|           "required": true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "Event": {
 | |
|       "id": "Event",
 | |
|       "properties": {
 | |
|         "event_id": {
 | |
|           "type": "string",
 | |
|           "description": "An ID which uniquely identifies this event. This is automatically set by the server.",
 | |
|           "required": true
 | |
|         },
 | |
|         "room_id": {
 | |
|           "type": "string",
 | |
|           "description": "The room in which this event occurred. This is automatically set by the server.",
 | |
|           "required": true
 | |
|         },
 | |
|         "type": {
 | |
|           "type": "string",
 | |
|           "description": "The event type.",
 | |
|           "required": true
 | |
|         }
 | |
|       },
 | |
|       "subTypes": [
 | |
|         "MessageEvent"
 | |
|       ]
 | |
|     },
 | |
|     "EventId": {
 | |
|       "id": "EventId",
 | |
|       "properties": {
 | |
|         "event_id": {
 | |
|           "type": "string",
 | |
|           "description": "The allocated event ID for this event.",
 | |
|           "required": true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "EventContent": {
 | |
|       "id": "EventContent",
 | |
|       "properties": {
 | |
|         "__event_content_keys__": {
 | |
|           "type": "string",
 | |
|           "description": "Event-specific content keys and values.",
 | |
|           "required": false
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "MessageEvent": {
 | |
|       "id": "MessageEvent",
 | |
|       "properties": {
 | |
|         "content": {
 | |
|           "type": "Message"
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "MemberEvent": {
 | |
|       "id": "MemberEvent",
 | |
|       "properties": {
 | |
|         "content": {
 | |
|           "type": "Member"
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "InviteRequest": {
 | |
|       "id": "InviteRequest",
 | |
|       "properties": {
 | |
|         "user_id": {
 | |
|           "type": "string",
 | |
|           "description": "The fully-qualified user ID."
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "JoinRequest": {
 | |
|       "id": "JoinRequest",
 | |
|       "properties": {}
 | |
|     },
 | |
|     "LeaveRequest": {
 | |
|       "id": "LeaveRequest",
 | |
|       "properties": {}
 | |
|     },
 | |
|     "BanRequest": {
 | |
|       "id": "BanRequest",
 | |
|       "properties": {
 | |
|         "user_id": {
 | |
|           "type": "string",
 | |
|           "description": "The fully-qualified user ID."
 | |
|         },
 | |
|         "reason": {
 | |
|           "type": "string",
 | |
|           "description": "The reason for the ban."
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "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": "MessagePaginationChunk",
 | |
|           "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"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 |