forked from MirrorHub/synapse
164 lines
4.4 KiB
Text
164 lines
4.4 KiB
Text
{
|
|
"apiVersion": "1.0.0",
|
|
"swaggerVersion": "1.2",
|
|
"basePath": "http://localhost:8008/_matrix/client/api/v1",
|
|
"resourcePath": "/presence",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"apis": [
|
|
{
|
|
"path": "/presence/{userId}/status",
|
|
"operations": [
|
|
{
|
|
"method": "PUT",
|
|
"summary": "Update this user's presence state.",
|
|
"notes": "This can only be done by the logged in user.",
|
|
"type": "void",
|
|
"nickname": "update_presence",
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"description": "The new presence state",
|
|
"required": true,
|
|
"type": "PresenceUpdate",
|
|
"paramType": "body"
|
|
},
|
|
{
|
|
"name": "userId",
|
|
"description": "The user whose presence to set.",
|
|
"required": true,
|
|
"type": "string",
|
|
"paramType": "path"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"summary": "Get this user's presence state.",
|
|
"notes": "Get this user's presence state.",
|
|
"type": "PresenceUpdate",
|
|
"nickname": "get_presence",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"description": "The user whose presence to get.",
|
|
"required": true,
|
|
"type": "string",
|
|
"paramType": "path"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/presence/list/{userId}",
|
|
"operations": [
|
|
{
|
|
"method": "GET",
|
|
"summary": "Retrieve a list of presences for all of this user's friends.",
|
|
"notes": "",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "Presence"
|
|
},
|
|
"nickname": "get_presence_list",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"description": "The user whose presence list to get.",
|
|
"required": true,
|
|
"type": "string",
|
|
"paramType": "path"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"summary": "Add or remove users from this presence list.",
|
|
"notes": "Add or remove users from this presence list.",
|
|
"type": "void",
|
|
"nickname": "modify_presence_list",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"description": "The user whose presence list is being modified.",
|
|
"required": true,
|
|
"type": "string",
|
|
"paramType": "path"
|
|
},
|
|
{
|
|
"name": "body",
|
|
"description": "The modifications to make to this presence list.",
|
|
"required": true,
|
|
"type": "PresenceListModifications",
|
|
"paramType": "body"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"models": {
|
|
"PresenceUpdate": {
|
|
"id": "PresenceUpdate",
|
|
"properties": {
|
|
"presence": {
|
|
"type": "string",
|
|
"description": "Enum: The presence state.",
|
|
"enum": [
|
|
"offline",
|
|
"unavailable",
|
|
"online",
|
|
"free_for_chat"
|
|
]
|
|
},
|
|
"status_msg": {
|
|
"type": "string",
|
|
"description": "The user-defined message associated with this presence state."
|
|
}
|
|
},
|
|
"subTypes": [
|
|
"Presence"
|
|
]
|
|
},
|
|
"Presence": {
|
|
"id": "Presence",
|
|
"properties": {
|
|
"last_active_ago": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": "The last time this user performed an action on their home server."
|
|
},
|
|
"user_id": {
|
|
"type": "string",
|
|
"description": "The fully qualified user ID"
|
|
}
|
|
}
|
|
},
|
|
"PresenceListModifications": {
|
|
"id": "PresenceListModifications",
|
|
"properties": {
|
|
"invite": {
|
|
"type": "array",
|
|
"description": "A list of user IDs to add to the list.",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "A fully qualified user ID."
|
|
}
|
|
},
|
|
"drop": {
|
|
"type": "array",
|
|
"description": "A list of user IDs to remove from the list.",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "A fully qualified user ID."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|