4196 lines
98 KiB
JSON
4196 lines
98 KiB
JSON
{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"title": "Centrifugo server HTTP API",
|
|
"version": "6.0"
|
|
},
|
|
"tags": [
|
|
{
|
|
"name": "publication"
|
|
},
|
|
{
|
|
"name": "connection management"
|
|
},
|
|
{
|
|
"name": "history"
|
|
},
|
|
{
|
|
"name": "presence"
|
|
},
|
|
{
|
|
"name": "stats"
|
|
},
|
|
{
|
|
"name": "user status"
|
|
},
|
|
{
|
|
"name": "user block"
|
|
},
|
|
{
|
|
"name": "token"
|
|
},
|
|
{
|
|
"name": "push notification"
|
|
},
|
|
{
|
|
"name": "batch"
|
|
},
|
|
{
|
|
"name": "rpc"
|
|
},
|
|
{
|
|
"name": "map"
|
|
},
|
|
{
|
|
"name": "shared poll"
|
|
}
|
|
],
|
|
"basePath": "/api",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"paths": {
|
|
"/batch": {
|
|
"post": {
|
|
"summary": "Batch request (send many commands in one request)",
|
|
"operationId": "CentrifugoApi_Batch",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/BatchResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/BatchRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/block_user": {
|
|
"post": {
|
|
"summary": "Block user request",
|
|
"operationId": "CentrifugoApi_BlockUser",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/BlockUserResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/BlockUserRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"user block"
|
|
]
|
|
}
|
|
},
|
|
"/broadcast": {
|
|
"post": {
|
|
"summary": "Broadcast allows publishing same data into many channels",
|
|
"operationId": "CentrifugoApi_Broadcast",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/BroadcastResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/BroadcastRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"publication"
|
|
]
|
|
}
|
|
},
|
|
"/cancel_push": {
|
|
"post": {
|
|
"summary": "Cancel delayed push notification",
|
|
"operationId": "CentrifugoApi_CancelPush",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/CancelPushResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/CancelPushRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/channels": {
|
|
"post": {
|
|
"summary": "Channels request",
|
|
"operationId": "CentrifugoApi_Channels",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/ChannelsResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/ChannelsRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"stats"
|
|
]
|
|
}
|
|
},
|
|
"/connections": {
|
|
"post": {
|
|
"summary": "Connections request",
|
|
"operationId": "CentrifugoApi_Connections",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/ConnectionsResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/ConnectionsRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"stats"
|
|
]
|
|
}
|
|
},
|
|
"/delete_user_status": {
|
|
"post": {
|
|
"summary": "Delete user status request",
|
|
"operationId": "CentrifugoApi_DeleteUserStatus",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeleteUserStatusResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeleteUserStatusRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"user status"
|
|
]
|
|
}
|
|
},
|
|
"/device_list": {
|
|
"post": {
|
|
"summary": "List devices",
|
|
"operationId": "CentrifugoApi_DeviceList",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceListResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceListRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/device_register": {
|
|
"post": {
|
|
"summary": "Device register request",
|
|
"operationId": "CentrifugoApi_DeviceRegister",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceRegisterResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceRegisterRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/device_remove": {
|
|
"post": {
|
|
"summary": "Device remove request",
|
|
"operationId": "CentrifugoApi_DeviceRemove",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceRemoveResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceRemoveRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/device_topic_list": {
|
|
"post": {
|
|
"summary": "List device topics",
|
|
"operationId": "CentrifugoApi_DeviceTopicList",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceTopicListResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceTopicListRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/device_topic_update": {
|
|
"post": {
|
|
"summary": "Update device topic model",
|
|
"operationId": "CentrifugoApi_DeviceTopicUpdate",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceTopicUpdateResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceTopicUpdateRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/device_update": {
|
|
"post": {
|
|
"summary": "Device update request",
|
|
"operationId": "CentrifugoApi_DeviceUpdate",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceUpdateResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DeviceUpdateRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/disconnect": {
|
|
"post": {
|
|
"summary": "Disconnect client(s) from server",
|
|
"operationId": "CentrifugoApi_Disconnect",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/DisconnectResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/DisconnectRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"connection management"
|
|
]
|
|
}
|
|
},
|
|
"/get_user_status": {
|
|
"post": {
|
|
"summary": "Get user status request",
|
|
"operationId": "CentrifugoApi_GetUserStatus",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/GetUserStatusResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/GetUserStatusRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"user status"
|
|
]
|
|
}
|
|
},
|
|
"/history": {
|
|
"post": {
|
|
"summary": "History for a channel",
|
|
"operationId": "CentrifugoApi_History",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/HistoryResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/HistoryRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"history"
|
|
]
|
|
}
|
|
},
|
|
"/history_remove": {
|
|
"post": {
|
|
"summary": "Remove history for a channel",
|
|
"operationId": "CentrifugoApi_HistoryRemove",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/HistoryRemoveResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/HistoryRemoveRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"history"
|
|
]
|
|
}
|
|
},
|
|
"/info": {
|
|
"post": {
|
|
"summary": "Info shows details about server nodes",
|
|
"operationId": "CentrifugoApi_Info",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/InfoResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/InfoRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"stats"
|
|
]
|
|
}
|
|
},
|
|
"/invalidate_user_tokens": {
|
|
"post": {
|
|
"summary": "Invalidate user tokens request",
|
|
"operationId": "CentrifugoApi_InvalidateUserTokens",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/InvalidateUserTokensResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/InvalidateUserTokensRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"token"
|
|
]
|
|
}
|
|
},
|
|
"/map_clear": {
|
|
"post": {
|
|
"summary": "Clear a map channel",
|
|
"operationId": "CentrifugoApi_MapClear",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/MapClearResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/MapClearRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"map"
|
|
]
|
|
}
|
|
},
|
|
"/map_publish": {
|
|
"post": {
|
|
"summary": "Publish a key into a map channel",
|
|
"operationId": "CentrifugoApi_MapPublish",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/MapPublishResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/MapPublishRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"map"
|
|
]
|
|
}
|
|
},
|
|
"/map_read_state": {
|
|
"post": {
|
|
"summary": "Read current state of a map channel",
|
|
"operationId": "CentrifugoApi_MapReadState",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/MapReadStateResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/MapReadStateRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"map"
|
|
]
|
|
}
|
|
},
|
|
"/map_read_stream": {
|
|
"post": {
|
|
"summary": "Read the stream of a map channel",
|
|
"operationId": "CentrifugoApi_MapReadStream",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/MapReadStreamResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/MapReadStreamRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"map"
|
|
]
|
|
}
|
|
},
|
|
"/map_remove": {
|
|
"post": {
|
|
"summary": "Remove a key from a map channel",
|
|
"operationId": "CentrifugoApi_MapRemove",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/MapRemoveResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/MapRemoveRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"map"
|
|
]
|
|
}
|
|
},
|
|
"/map_stats": {
|
|
"post": {
|
|
"summary": "Stats for a map channel",
|
|
"operationId": "CentrifugoApi_MapStats",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/MapStatsResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/MapStatsRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"map"
|
|
]
|
|
}
|
|
},
|
|
"/presence": {
|
|
"post": {
|
|
"summary": "Presence information for a channel",
|
|
"operationId": "CentrifugoApi_Presence",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/PresenceResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/PresenceRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"presence"
|
|
]
|
|
}
|
|
},
|
|
"/presence_stats": {
|
|
"post": {
|
|
"summary": "Presence stats information for a channel",
|
|
"operationId": "CentrifugoApi_PresenceStats",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/PresenceStatsResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/PresenceStatsRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"presence"
|
|
]
|
|
}
|
|
},
|
|
"/publish": {
|
|
"post": {
|
|
"summary": "Publish data into channel",
|
|
"operationId": "CentrifugoApi_Publish",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/PublishResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/PublishRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"publication"
|
|
]
|
|
}
|
|
},
|
|
"/refresh": {
|
|
"post": {
|
|
"summary": "Refresh connection(s) by server-side call",
|
|
"operationId": "CentrifugoApi_Refresh",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/RefreshResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/RefreshRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"connection management"
|
|
]
|
|
}
|
|
},
|
|
"/revoke_token": {
|
|
"post": {
|
|
"summary": "Revoke token request",
|
|
"operationId": "CentrifugoApi_RevokeToken",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/RevokeTokenResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/RevokeTokenRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"token"
|
|
]
|
|
}
|
|
},
|
|
"/rpc": {
|
|
"post": {
|
|
"summary": "Execute RPC",
|
|
"operationId": "CentrifugoApi_RPC",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/RPCResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/RPCRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"rpc"
|
|
]
|
|
}
|
|
},
|
|
"/send_push_notification": {
|
|
"post": {
|
|
"summary": "Send push notification",
|
|
"operationId": "CentrifugoApi_SendPushNotification",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/SendPushNotificationResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/SendPushNotificationRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/shared_poll_publish": {
|
|
"post": {
|
|
"summary": "Publish into a shared poll channel",
|
|
"operationId": "CentrifugoApi_SharedPollPublish",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/SharedPollPublishResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/SharedPollPublishRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"shared poll"
|
|
]
|
|
}
|
|
},
|
|
"/subscribe": {
|
|
"post": {
|
|
"summary": "Subscribe connection(s) to a channel",
|
|
"operationId": "CentrifugoApi_Subscribe",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/SubscribeResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/SubscribeRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"connection management"
|
|
]
|
|
}
|
|
},
|
|
"/unblock_user": {
|
|
"post": {
|
|
"summary": "Unblock user request",
|
|
"operationId": "CentrifugoApi_UnblockUser",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UnblockUserResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UnblockUserRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"user block"
|
|
]
|
|
}
|
|
},
|
|
"/unsubscribe": {
|
|
"post": {
|
|
"summary": "Unsubscribe connection(s) from channel",
|
|
"operationId": "CentrifugoApi_Unsubscribe",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UnsubscribeResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UnsubscribeRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"connection management"
|
|
]
|
|
}
|
|
},
|
|
"/update_push_status": {
|
|
"post": {
|
|
"summary": "Update push notification status",
|
|
"operationId": "CentrifugoApi_UpdatePushStatus",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UpdatePushStatusResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UpdatePushStatusRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/update_user_status": {
|
|
"post": {
|
|
"summary": "Updated user status request",
|
|
"operationId": "CentrifugoApi_UpdateUserStatus",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UpdateUserStatusResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UpdateUserStatusRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"user status"
|
|
]
|
|
}
|
|
},
|
|
"/user_topic_list": {
|
|
"post": {
|
|
"summary": "List user topics",
|
|
"operationId": "CentrifugoApi_UserTopicList",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UserTopicListResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UserTopicListRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
},
|
|
"/user_topic_update": {
|
|
"post": {
|
|
"summary": "Update user topic model",
|
|
"operationId": "CentrifugoApi_UserTopicUpdate",
|
|
"responses": {
|
|
"200": {
|
|
"description": "A successful response.",
|
|
"schema": {
|
|
"$ref": "#/definitions/UserTopicUpdateResponse"
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Returned in case of invalid request.",
|
|
"schema": {}
|
|
},
|
|
"401": {
|
|
"description": "Returned in case of missing auth.",
|
|
"schema": {}
|
|
},
|
|
"500": {
|
|
"description": "Returned in case of internal server error.",
|
|
"schema": {}
|
|
}
|
|
},
|
|
"parameters": [
|
|
{
|
|
"name": "body",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"$ref": "#/definitions/UserTopicUpdateRequest"
|
|
}
|
|
}
|
|
],
|
|
"tags": [
|
|
"push notification"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"ApnsPushNotification": {
|
|
"type": "object",
|
|
"properties": {
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"payload": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"BatchRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"commands": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/Command"
|
|
}
|
|
},
|
|
"parallel": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"BatchResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"replies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/Reply"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"BlockUserRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expire_at": {
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"BlockUserResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/BlockUserResult"
|
|
}
|
|
}
|
|
},
|
|
"BlockUserResult": {
|
|
"type": "object"
|
|
},
|
|
"BoolValue": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"BroadcastRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channels": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"data": {
|
|
"type": "object"
|
|
},
|
|
"b64data": {
|
|
"type": "string"
|
|
},
|
|
"skip_history": {
|
|
"type": "boolean"
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string"
|
|
},
|
|
"delta": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "integer"
|
|
},
|
|
"version_epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"BroadcastResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/BroadcastResult"
|
|
}
|
|
}
|
|
},
|
|
"BroadcastResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"responses": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/PublishResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"CancelPushRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uid": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"CancelPushResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/CancelPushResult"
|
|
}
|
|
}
|
|
},
|
|
"CancelPushResult": {
|
|
"type": "object"
|
|
},
|
|
"ChannelContext": {
|
|
"type": "object",
|
|
"properties": {
|
|
"source": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"ChannelInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"num_clients": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"ChannelsRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"pattern": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ChannelsResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/ChannelsResult"
|
|
}
|
|
}
|
|
},
|
|
"ChannelsResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/ChannelInfo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ClientInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"client": {
|
|
"type": "string"
|
|
},
|
|
"conn_info": {
|
|
"type": "object"
|
|
},
|
|
"chan_info": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"Command": {
|
|
"type": "object",
|
|
"properties": {
|
|
"publish": {
|
|
"$ref": "#/definitions/PublishRequest"
|
|
},
|
|
"broadcast": {
|
|
"$ref": "#/definitions/BroadcastRequest"
|
|
},
|
|
"subscribe": {
|
|
"$ref": "#/definitions/SubscribeRequest"
|
|
},
|
|
"unsubscribe": {
|
|
"$ref": "#/definitions/UnsubscribeRequest"
|
|
},
|
|
"disconnect": {
|
|
"$ref": "#/definitions/DisconnectRequest"
|
|
},
|
|
"presence": {
|
|
"$ref": "#/definitions/PresenceRequest"
|
|
},
|
|
"presence_stats": {
|
|
"$ref": "#/definitions/PresenceStatsRequest"
|
|
},
|
|
"history": {
|
|
"$ref": "#/definitions/HistoryRequest"
|
|
},
|
|
"history_remove": {
|
|
"$ref": "#/definitions/HistoryRemoveRequest"
|
|
},
|
|
"info": {
|
|
"$ref": "#/definitions/InfoRequest"
|
|
},
|
|
"rpc": {
|
|
"$ref": "#/definitions/RPCRequest"
|
|
},
|
|
"refresh": {
|
|
"$ref": "#/definitions/RefreshRequest"
|
|
},
|
|
"channels": {
|
|
"$ref": "#/definitions/ChannelsRequest"
|
|
},
|
|
"connections": {
|
|
"$ref": "#/definitions/ConnectionsRequest"
|
|
},
|
|
"update_user_status": {
|
|
"$ref": "#/definitions/UpdateUserStatusRequest"
|
|
},
|
|
"get_user_status": {
|
|
"$ref": "#/definitions/GetUserStatusRequest"
|
|
},
|
|
"delete_user_status": {
|
|
"$ref": "#/definitions/DeleteUserStatusRequest"
|
|
},
|
|
"block_user": {
|
|
"$ref": "#/definitions/BlockUserRequest"
|
|
},
|
|
"unblock_user": {
|
|
"$ref": "#/definitions/UnblockUserRequest"
|
|
},
|
|
"revoke_token": {
|
|
"$ref": "#/definitions/RevokeTokenRequest"
|
|
},
|
|
"invalidate_user_tokens": {
|
|
"$ref": "#/definitions/InvalidateUserTokensRequest"
|
|
},
|
|
"device_register": {
|
|
"$ref": "#/definitions/DeviceRegisterRequest"
|
|
},
|
|
"device_update": {
|
|
"$ref": "#/definitions/DeviceUpdateRequest"
|
|
},
|
|
"device_remove": {
|
|
"$ref": "#/definitions/DeviceRemoveRequest"
|
|
},
|
|
"device_list": {
|
|
"$ref": "#/definitions/DeviceListRequest"
|
|
},
|
|
"device_topic_list": {
|
|
"$ref": "#/definitions/DeviceTopicListRequest"
|
|
},
|
|
"device_topic_update": {
|
|
"$ref": "#/definitions/DeviceTopicUpdateRequest"
|
|
},
|
|
"user_topic_list": {
|
|
"$ref": "#/definitions/UserTopicListRequest"
|
|
},
|
|
"user_topic_update": {
|
|
"$ref": "#/definitions/UserTopicUpdateRequest"
|
|
},
|
|
"send_push_notification": {
|
|
"$ref": "#/definitions/SendPushNotificationRequest"
|
|
},
|
|
"update_push_status": {
|
|
"$ref": "#/definitions/UpdatePushStatusRequest"
|
|
},
|
|
"cancel_push": {
|
|
"$ref": "#/definitions/CancelPushRequest"
|
|
},
|
|
"map_publish": {
|
|
"$ref": "#/definitions/MapPublishRequest"
|
|
},
|
|
"map_remove": {
|
|
"$ref": "#/definitions/MapRemoveRequest"
|
|
},
|
|
"map_read_state": {
|
|
"$ref": "#/definitions/MapReadStateRequest"
|
|
},
|
|
"map_read_stream": {
|
|
"$ref": "#/definitions/MapReadStreamRequest"
|
|
},
|
|
"map_stats": {
|
|
"$ref": "#/definitions/MapStatsRequest"
|
|
},
|
|
"map_clear": {
|
|
"$ref": "#/definitions/MapClearRequest"
|
|
},
|
|
"shared_poll_publish": {
|
|
"$ref": "#/definitions/SharedPollPublishRequest"
|
|
}
|
|
}
|
|
},
|
|
"ConnectionInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"app_name": {
|
|
"type": "string"
|
|
},
|
|
"app_version": {
|
|
"type": "string"
|
|
},
|
|
"transport": {
|
|
"type": "string"
|
|
},
|
|
"protocol": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"$ref": "#/definitions/ConnectionState"
|
|
},
|
|
"connected_at_ms": {
|
|
"type": "integer"
|
|
},
|
|
"ping_pong_latency_ms": {
|
|
"type": "integer",
|
|
"description": "can be -1 if not available."
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "PRO only — client labels attached to the centrifuge.Client by Centrifugo PRO."
|
|
}
|
|
}
|
|
},
|
|
"ConnectionState": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/ChannelContext"
|
|
}
|
|
},
|
|
"connection_token": {
|
|
"$ref": "#/definitions/ConnectionTokenInfo"
|
|
},
|
|
"subscription_tokens": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/SubscriptionTokenInfo"
|
|
}
|
|
},
|
|
"meta": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"ConnectionTokenInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uid": {
|
|
"type": "string"
|
|
},
|
|
"issued_at": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"ConnectionsRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"expression": {
|
|
"type": "string"
|
|
},
|
|
"label_filter": {
|
|
"$ref": "#/definitions/FilterNode",
|
|
"description": "PRO only — restrict the listing to clients whose labels match this filter."
|
|
}
|
|
}
|
|
},
|
|
"ConnectionsResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/ConnectionsResult"
|
|
}
|
|
}
|
|
},
|
|
"ConnectionsResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"connections": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/ConnectionInfo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DeleteUserStatusRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DeleteUserStatusResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeleteUserStatusResult"
|
|
}
|
|
}
|
|
},
|
|
"DeleteUserStatusResult": {
|
|
"type": "object"
|
|
},
|
|
"Device": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"type": "integer"
|
|
},
|
|
"updated_at": {
|
|
"type": "integer"
|
|
},
|
|
"meta": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"timezone": {
|
|
"type": "string"
|
|
},
|
|
"locale": {
|
|
"type": "string"
|
|
},
|
|
"webpush_keys": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DeviceFilter": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"providers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"platforms": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DeviceListRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"filter": {
|
|
"$ref": "#/definitions/DeviceFilter"
|
|
},
|
|
"include_total_count": {
|
|
"type": "boolean"
|
|
},
|
|
"include_meta": {
|
|
"type": "boolean"
|
|
},
|
|
"include_topics": {
|
|
"type": "boolean"
|
|
},
|
|
"include_webpush_keys": {
|
|
"type": "boolean"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"DeviceListResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeviceListResult"
|
|
}
|
|
}
|
|
},
|
|
"DeviceListResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/Device"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": "string"
|
|
},
|
|
"total_count": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"DeviceLocaleUpdate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"locale": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DeviceMetaUpdate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"meta": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DeviceRegisterRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"meta": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"timezone": {
|
|
"type": "string"
|
|
},
|
|
"locale": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DeviceRegisterResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeviceRegisterResult"
|
|
}
|
|
}
|
|
},
|
|
"DeviceRegisterResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DeviceRemoveRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DeviceRemoveResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeviceRemoveResult"
|
|
}
|
|
}
|
|
},
|
|
"DeviceRemoveResult": {
|
|
"type": "object"
|
|
},
|
|
"DeviceTimezoneUpdate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"timezone": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopic": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"topic": {
|
|
"type": "string"
|
|
},
|
|
"device": {
|
|
"$ref": "#/definitions/Device"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicFilter": {
|
|
"type": "object",
|
|
"properties": {
|
|
"device_ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"device_providers": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"device_platforms": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"device_users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topic_prefix": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicListRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"filter": {
|
|
"$ref": "#/definitions/DeviceTopicFilter"
|
|
},
|
|
"include_total_count": {
|
|
"type": "boolean"
|
|
},
|
|
"include_device": {
|
|
"type": "boolean"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicListResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeviceTopicListResult"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicListResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/DeviceTopic"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": "string"
|
|
},
|
|
"total_count": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicUpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"device_id": {
|
|
"type": "string"
|
|
},
|
|
"op": {
|
|
"type": "string",
|
|
"title": "add | remove | set"
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"user": {
|
|
"type": "string",
|
|
"title": "optional ownership guard: apply only if the device currently belongs to this user"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicUpdateResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeviceTopicUpdateResult"
|
|
}
|
|
}
|
|
},
|
|
"DeviceTopicUpdateResult": {
|
|
"type": "object"
|
|
},
|
|
"DeviceTopicsUpdate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"op": {
|
|
"type": "string",
|
|
"title": "add | remove | set"
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"DeviceUpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"user_update": {
|
|
"$ref": "#/definitions/DeviceUserUpdate"
|
|
},
|
|
"meta_update": {
|
|
"$ref": "#/definitions/DeviceMetaUpdate"
|
|
},
|
|
"topics_update": {
|
|
"$ref": "#/definitions/DeviceTopicsUpdate"
|
|
},
|
|
"timezone_update": {
|
|
"$ref": "#/definitions/DeviceTimezoneUpdate"
|
|
},
|
|
"locale_update": {
|
|
"$ref": "#/definitions/DeviceLocaleUpdate"
|
|
}
|
|
}
|
|
},
|
|
"DeviceUpdateResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DeviceUpdateResult"
|
|
}
|
|
}
|
|
},
|
|
"DeviceUpdateResult": {
|
|
"type": "object"
|
|
},
|
|
"DeviceUserUpdate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"DisconnectRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"disconnect": {
|
|
"$ref": "#/definitions/api.Disconnect"
|
|
},
|
|
"client": {
|
|
"type": "string"
|
|
},
|
|
"whitelist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"session": {
|
|
"type": "string"
|
|
},
|
|
"label_filter": {
|
|
"$ref": "#/definitions/FilterNode",
|
|
"description": "PRO only — restrict the call to clients whose labels match this filter."
|
|
},
|
|
"all_users": {
|
|
"type": "boolean",
|
|
"description": "PRO only — see SubscribeRequest.all_users."
|
|
}
|
|
}
|
|
},
|
|
"DisconnectResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/DisconnectResult"
|
|
}
|
|
}
|
|
},
|
|
"DisconnectResult": {
|
|
"type": "object"
|
|
},
|
|
"Error": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"FcmPushNotification": {
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"FilterNode": {
|
|
"type": "object",
|
|
"properties": {
|
|
"op": {
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"cmp": {
|
|
"type": "string"
|
|
},
|
|
"val": {
|
|
"type": "string"
|
|
},
|
|
"vals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"nodes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/FilterNode"
|
|
}
|
|
}
|
|
},
|
|
"description": "FilterNode is a tree describing a label predicate.\nUsed as label_filter on Subscribe/Unsubscribe/Disconnect/Refresh/Connections requests.\nPRO only — defined in OSS api.proto for protocol-surface consistency; OSS handlers parse but do not act on it."
|
|
},
|
|
"GetUserStatusRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"GetUserStatusResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/GetUserStatusResult"
|
|
}
|
|
}
|
|
},
|
|
"GetUserStatusResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"statuses": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/UserStatus"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"HistoryRemoveRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"HistoryRemoveResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/HistoryRemoveResult"
|
|
}
|
|
}
|
|
},
|
|
"HistoryRemoveResult": {
|
|
"type": "object"
|
|
},
|
|
"HistoryRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"since": {
|
|
"$ref": "#/definitions/StreamPosition"
|
|
},
|
|
"reverse": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"HistoryResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/HistoryResult"
|
|
}
|
|
}
|
|
},
|
|
"HistoryResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"publications": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/Publication"
|
|
}
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
},
|
|
"offset": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"HmsPushNotification": {
|
|
"type": "object",
|
|
"properties": {
|
|
"message": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"InfoRequest": {
|
|
"type": "object"
|
|
},
|
|
"InfoResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/InfoResult"
|
|
}
|
|
}
|
|
},
|
|
"InfoResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/NodeResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"InvalidateUserTokensRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expire_at": {
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"issued_before": {
|
|
"type": "integer"
|
|
},
|
|
"channel": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"InvalidateUserTokensResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/InvalidateUserTokensResult"
|
|
}
|
|
}
|
|
},
|
|
"InvalidateUserTokensResult": {
|
|
"type": "object"
|
|
},
|
|
"MapClearRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapClearResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/MapClearResult"
|
|
}
|
|
}
|
|
},
|
|
"MapClearResult": {
|
|
"type": "object"
|
|
},
|
|
"MapEntry": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"type": "object"
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"score": {
|
|
"type": "integer"
|
|
},
|
|
"removed": {
|
|
"type": "boolean"
|
|
},
|
|
"time": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"MapPublishRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"type": "object"
|
|
},
|
|
"b64data": {
|
|
"type": "string"
|
|
},
|
|
"stream_data": {
|
|
"type": "object"
|
|
},
|
|
"b64stream_data": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string"
|
|
},
|
|
"delta": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "integer"
|
|
},
|
|
"version_epoch": {
|
|
"type": "string"
|
|
},
|
|
"score": {
|
|
"type": "integer"
|
|
},
|
|
"key_mode": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapPublishResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/MapPublishResult"
|
|
}
|
|
}
|
|
},
|
|
"MapPublishResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
},
|
|
"suppressed": {
|
|
"type": "boolean"
|
|
},
|
|
"suppress_reason": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapReadStateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"asc": {
|
|
"type": "boolean"
|
|
},
|
|
"revision_offset": {
|
|
"type": "integer"
|
|
},
|
|
"revision_epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapReadStateResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/MapReadStateResult"
|
|
}
|
|
}
|
|
},
|
|
"MapReadStateResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/MapEntry"
|
|
}
|
|
},
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapReadStreamRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"since_offset": {
|
|
"type": "integer"
|
|
},
|
|
"since_epoch": {
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"reverse": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"MapReadStreamResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/MapReadStreamResult"
|
|
}
|
|
}
|
|
},
|
|
"MapReadStreamResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/MapEntry"
|
|
}
|
|
},
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapRemoveRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapRemoveResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/MapRemoveResult"
|
|
}
|
|
}
|
|
},
|
|
"MapRemoveResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
},
|
|
"suppressed": {
|
|
"type": "boolean"
|
|
},
|
|
"suppress_reason": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapStatsRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MapStatsResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/MapStatsResult"
|
|
}
|
|
}
|
|
},
|
|
"MapStatsResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"num_keys": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"Metrics": {
|
|
"type": "object",
|
|
"properties": {
|
|
"interval": {
|
|
"type": "number",
|
|
"format": "double"
|
|
},
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "number",
|
|
"format": "double"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"NodeResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uid": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
},
|
|
"num_clients": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"num_users": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"num_channels": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"uptime": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"metrics": {
|
|
"$ref": "#/definitions/Metrics"
|
|
},
|
|
"process": {
|
|
"$ref": "#/definitions/Process"
|
|
},
|
|
"num_subs": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"PresenceRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"PresenceResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/PresenceResult"
|
|
}
|
|
}
|
|
},
|
|
"PresenceResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"presence": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/ClientInfo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"PresenceStatsRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"PresenceStatsResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/PresenceStatsResult"
|
|
}
|
|
}
|
|
},
|
|
"PresenceStatsResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"num_clients": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"num_users": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
}
|
|
},
|
|
"Process": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cpu": {
|
|
"type": "number",
|
|
"format": "double"
|
|
},
|
|
"rss": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"Publication": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object",
|
|
"title": "Removed: string uid = 1;"
|
|
},
|
|
"info": {
|
|
"$ref": "#/definitions/ClientInfo"
|
|
},
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"PublishRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"type": "object"
|
|
},
|
|
"b64data": {
|
|
"type": "string"
|
|
},
|
|
"skip_history": {
|
|
"type": "boolean"
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"idempotency_key": {
|
|
"type": "string"
|
|
},
|
|
"delta": {
|
|
"type": "boolean"
|
|
},
|
|
"version": {
|
|
"type": "integer"
|
|
},
|
|
"version_epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"PublishResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/PublishResult"
|
|
}
|
|
}
|
|
},
|
|
"PublishResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"PushLimitStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rate_limit": {
|
|
"$ref": "#/definitions/PushRateLimitStrategy"
|
|
},
|
|
"time_limit": {
|
|
"$ref": "#/definitions/PushTimeLimitStrategy"
|
|
}
|
|
}
|
|
},
|
|
"PushLocalization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"translations": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "variable name to value for the specific language/locale."
|
|
}
|
|
}
|
|
},
|
|
"PushNotification": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fcm": {
|
|
"$ref": "#/definitions/FcmPushNotification"
|
|
},
|
|
"hms": {
|
|
"$ref": "#/definitions/HmsPushNotification"
|
|
},
|
|
"apns": {
|
|
"$ref": "#/definitions/ApnsPushNotification"
|
|
},
|
|
"webpush": {
|
|
"$ref": "#/definitions/WebPushPushNotification"
|
|
},
|
|
"expire_at": {
|
|
"type": "integer",
|
|
"description": "timestamp in the future when Centrifugo should stop trying to send push notification."
|
|
}
|
|
}
|
|
},
|
|
"PushRateLimitStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"description": "optional key for rate limit policy, supports variables."
|
|
},
|
|
"policies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/RateLimitPolicy"
|
|
}
|
|
},
|
|
"drop_if_rate_limited": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"PushRecipient": {
|
|
"type": "object",
|
|
"properties": {
|
|
"filter": {
|
|
"$ref": "#/definitions/DeviceFilter"
|
|
},
|
|
"fcm_tokens": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"fcm_topic": {
|
|
"type": "string"
|
|
},
|
|
"fcm_condition": {
|
|
"type": "string"
|
|
},
|
|
"hms_tokens": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hms_topic": {
|
|
"type": "string"
|
|
},
|
|
"hms_condition": {
|
|
"type": "string"
|
|
},
|
|
"apns_tokens": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"webpush_tokens": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"PushTimeLimitStrategy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"send_after_time": {
|
|
"type": "string",
|
|
"title": "HH:MM:SS"
|
|
},
|
|
"send_before_time": {
|
|
"type": "string",
|
|
"title": "HH:MM:SS"
|
|
},
|
|
"no_tz_send_now": {
|
|
"type": "boolean",
|
|
"description": "If device timezone is not set - send push now, by default will be dropped."
|
|
}
|
|
}
|
|
},
|
|
"RPCRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"params": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"RPCResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/RPCResult"
|
|
}
|
|
}
|
|
},
|
|
"RPCResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"data": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"RateLimitPolicy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rate": {
|
|
"type": "integer"
|
|
},
|
|
"interval_ms": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"RefreshRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"client": {
|
|
"type": "string"
|
|
},
|
|
"expired": {
|
|
"type": "boolean"
|
|
},
|
|
"expire_at": {
|
|
"type": "integer"
|
|
},
|
|
"info": {
|
|
"type": "object"
|
|
},
|
|
"session": {
|
|
"type": "string"
|
|
},
|
|
"label_filter": {
|
|
"$ref": "#/definitions/FilterNode",
|
|
"description": "PRO only — restrict the call to clients whose labels match this filter."
|
|
},
|
|
"all_users": {
|
|
"type": "boolean",
|
|
"description": "PRO only — see SubscribeRequest.all_users."
|
|
}
|
|
}
|
|
},
|
|
"RefreshResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/RefreshResult"
|
|
}
|
|
}
|
|
},
|
|
"RefreshResult": {
|
|
"type": "object"
|
|
},
|
|
"Reply": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"publish": {
|
|
"$ref": "#/definitions/PublishResult"
|
|
},
|
|
"broadcast": {
|
|
"$ref": "#/definitions/BroadcastResult"
|
|
},
|
|
"subscribe": {
|
|
"$ref": "#/definitions/SubscribeResult"
|
|
},
|
|
"unsubscribe": {
|
|
"$ref": "#/definitions/UnsubscribeResult"
|
|
},
|
|
"disconnect": {
|
|
"$ref": "#/definitions/DisconnectResult"
|
|
},
|
|
"presence": {
|
|
"$ref": "#/definitions/PresenceResult"
|
|
},
|
|
"presence_stats": {
|
|
"$ref": "#/definitions/PresenceStatsResult"
|
|
},
|
|
"history": {
|
|
"$ref": "#/definitions/HistoryResult"
|
|
},
|
|
"history_remove": {
|
|
"$ref": "#/definitions/HistoryRemoveResult"
|
|
},
|
|
"info": {
|
|
"$ref": "#/definitions/InfoResult"
|
|
},
|
|
"rpc": {
|
|
"$ref": "#/definitions/RPCResult"
|
|
},
|
|
"refresh": {
|
|
"$ref": "#/definitions/RefreshResult"
|
|
},
|
|
"channels": {
|
|
"$ref": "#/definitions/ChannelsResult"
|
|
},
|
|
"connections": {
|
|
"$ref": "#/definitions/ConnectionsResult"
|
|
},
|
|
"update_user_status": {
|
|
"$ref": "#/definitions/UpdateUserStatusResult"
|
|
},
|
|
"get_user_status": {
|
|
"$ref": "#/definitions/GetUserStatusResult"
|
|
},
|
|
"delete_user_status": {
|
|
"$ref": "#/definitions/DeleteUserStatusResult"
|
|
},
|
|
"block_user": {
|
|
"$ref": "#/definitions/BlockUserResult"
|
|
},
|
|
"unblock_user": {
|
|
"$ref": "#/definitions/UnblockUserResult"
|
|
},
|
|
"revoke_token": {
|
|
"$ref": "#/definitions/RevokeTokenResult"
|
|
},
|
|
"invalidate_user_tokens": {
|
|
"$ref": "#/definitions/InvalidateUserTokensResult"
|
|
},
|
|
"device_register": {
|
|
"$ref": "#/definitions/DeviceRegisterResult"
|
|
},
|
|
"device_update": {
|
|
"$ref": "#/definitions/DeviceUpdateResult"
|
|
},
|
|
"device_remove": {
|
|
"$ref": "#/definitions/DeviceRemoveResult"
|
|
},
|
|
"device_list": {
|
|
"$ref": "#/definitions/DeviceListResult"
|
|
},
|
|
"device_topic_list": {
|
|
"$ref": "#/definitions/DeviceTopicListResult"
|
|
},
|
|
"device_topic_update": {
|
|
"$ref": "#/definitions/DeviceTopicUpdateResult"
|
|
},
|
|
"user_topic_list": {
|
|
"$ref": "#/definitions/UserTopicListResult"
|
|
},
|
|
"user_topic_update": {
|
|
"$ref": "#/definitions/UserTopicUpdateResult"
|
|
},
|
|
"send_push_notification": {
|
|
"$ref": "#/definitions/SendPushNotificationResult"
|
|
},
|
|
"update_push_status": {
|
|
"$ref": "#/definitions/UpdatePushStatusResult"
|
|
},
|
|
"cancel_push": {
|
|
"$ref": "#/definitions/CancelPushResult"
|
|
},
|
|
"map_publish": {
|
|
"$ref": "#/definitions/MapPublishResult"
|
|
},
|
|
"map_remove": {
|
|
"$ref": "#/definitions/MapRemoveResult"
|
|
},
|
|
"map_read_state": {
|
|
"$ref": "#/definitions/MapReadStateResult"
|
|
},
|
|
"map_read_stream": {
|
|
"$ref": "#/definitions/MapReadStreamResult"
|
|
},
|
|
"map_stats": {
|
|
"$ref": "#/definitions/MapStatsResult"
|
|
},
|
|
"map_clear": {
|
|
"$ref": "#/definitions/MapClearResult"
|
|
},
|
|
"shared_poll_publish": {
|
|
"$ref": "#/definitions/SharedPollPublishResult"
|
|
}
|
|
}
|
|
},
|
|
"RevokeTokenRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"expire_at": {
|
|
"type": "integer"
|
|
},
|
|
"uid": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"RevokeTokenResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/RevokeTokenResult"
|
|
}
|
|
}
|
|
},
|
|
"RevokeTokenResult": {
|
|
"type": "object"
|
|
},
|
|
"SendPushNotificationRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"recipient": {
|
|
"$ref": "#/definitions/PushRecipient"
|
|
},
|
|
"notification": {
|
|
"$ref": "#/definitions/PushNotification"
|
|
},
|
|
"uid": {
|
|
"type": "string",
|
|
"description": "unique identifier for each push notification request, can be used to cancel push."
|
|
},
|
|
"send_at": {
|
|
"type": "integer",
|
|
"description": "Unix seconds, if set - push will be sent at this time, if not set - immediately."
|
|
},
|
|
"optimize_for_reliability": {
|
|
"type": "boolean",
|
|
"description": "makes processing heavier, but tolerates edge cases, like not losing inflight pushes due to temporary queue unavailability."
|
|
},
|
|
"limit_strategy": {
|
|
"$ref": "#/definitions/PushLimitStrategy",
|
|
"description": "strategy for sending push notifications. Applicable only for pushes with filter recipient. When using this field Centrifugo processes devices one by one."
|
|
},
|
|
"analytics_uid": {
|
|
"type": "string",
|
|
"description": "uid for push notification analytics, if not set - Centrifugo will use uid field."
|
|
},
|
|
"localizations": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"$ref": "#/definitions/PushLocalization"
|
|
},
|
|
"description": "optional per language/locale localizations for push notification."
|
|
},
|
|
"use_templating": {
|
|
"type": "boolean",
|
|
"description": "if set - Centrifugo will use templating for push notification. Note that setting localizations enables templating automatically."
|
|
},
|
|
"use_meta": {
|
|
"type": "boolean",
|
|
"description": "if set - Centrifugo will additionally load device meta during push sending, this meta becomes available in templating."
|
|
}
|
|
}
|
|
},
|
|
"SendPushNotificationResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/SendPushNotificationResult"
|
|
}
|
|
}
|
|
},
|
|
"SendPushNotificationResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uid": {
|
|
"type": "string",
|
|
"description": "Unique identifier of notification send request (it's not a FCM message id)."
|
|
}
|
|
}
|
|
},
|
|
"SharedPollPublishRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"type": "object"
|
|
},
|
|
"b64data": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"SharedPollPublishResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/SharedPollPublishResult"
|
|
}
|
|
}
|
|
},
|
|
"SharedPollPublishResult": {
|
|
"type": "object"
|
|
},
|
|
"StreamPosition": {
|
|
"type": "object",
|
|
"properties": {
|
|
"offset": {
|
|
"type": "integer"
|
|
},
|
|
"epoch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"SubscribeOptionOverride": {
|
|
"type": "object",
|
|
"properties": {
|
|
"presence": {
|
|
"$ref": "#/definitions/BoolValue"
|
|
},
|
|
"join_leave": {
|
|
"$ref": "#/definitions/BoolValue"
|
|
},
|
|
"force_recovery": {
|
|
"$ref": "#/definitions/BoolValue"
|
|
},
|
|
"force_positioning": {
|
|
"$ref": "#/definitions/BoolValue"
|
|
},
|
|
"force_push_join_leave": {
|
|
"$ref": "#/definitions/BoolValue"
|
|
}
|
|
}
|
|
},
|
|
"SubscribeRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"expire_at": {
|
|
"type": "integer"
|
|
},
|
|
"info": {
|
|
"type": "object"
|
|
},
|
|
"b64info": {
|
|
"type": "string"
|
|
},
|
|
"client": {
|
|
"type": "string"
|
|
},
|
|
"data": {
|
|
"type": "object"
|
|
},
|
|
"b64data": {
|
|
"type": "string"
|
|
},
|
|
"recover_since": {
|
|
"$ref": "#/definitions/StreamPosition"
|
|
},
|
|
"override": {
|
|
"$ref": "#/definitions/SubscribeOptionOverride"
|
|
},
|
|
"session": {
|
|
"type": "string"
|
|
},
|
|
"label_filter": {
|
|
"$ref": "#/definitions/FilterNode",
|
|
"description": "PRO only — restrict the call to clients whose labels match this filter."
|
|
},
|
|
"all_users": {
|
|
"type": "boolean",
|
|
"description": "PRO only — when `user` is empty, target every connection on every node\ninstead of the anonymous-only bucket. No effect when `user` is non-empty."
|
|
}
|
|
}
|
|
},
|
|
"SubscribeResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/SubscribeResult"
|
|
}
|
|
}
|
|
},
|
|
"SubscribeResult": {
|
|
"type": "object"
|
|
},
|
|
"SubscriptionTokenInfo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uid": {
|
|
"type": "string"
|
|
},
|
|
"issued_at": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"UnblockUserRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"UnblockUserResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/UnblockUserResult"
|
|
}
|
|
}
|
|
},
|
|
"UnblockUserResult": {
|
|
"type": "object"
|
|
},
|
|
"UnsubscribeRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"client": {
|
|
"type": "string"
|
|
},
|
|
"session": {
|
|
"type": "string"
|
|
},
|
|
"label_filter": {
|
|
"$ref": "#/definitions/FilterNode",
|
|
"description": "PRO only — restrict the call to clients whose labels match this filter."
|
|
},
|
|
"all_users": {
|
|
"type": "boolean",
|
|
"description": "PRO only — see SubscribeRequest.all_users."
|
|
}
|
|
}
|
|
},
|
|
"UnsubscribeResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/UnsubscribeResult"
|
|
}
|
|
}
|
|
},
|
|
"UnsubscribeResult": {
|
|
"type": "object"
|
|
},
|
|
"UpdatePushStatusRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"analytics_uid": {
|
|
"type": "string",
|
|
"title": "analytics uid of push notification (should match SendPushNotificationRequest.analytics_uid)"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "delivered | interacted"
|
|
},
|
|
"device_id": {
|
|
"type": "string",
|
|
"description": "Centrifugo device id."
|
|
},
|
|
"msg_id": {
|
|
"type": "string",
|
|
"description": "Provider issued message id."
|
|
}
|
|
}
|
|
},
|
|
"UpdatePushStatusResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/UpdatePushStatusResult"
|
|
}
|
|
}
|
|
},
|
|
"UpdatePushStatusResult": {
|
|
"type": "object"
|
|
},
|
|
"UpdateUserStatusRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"state": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"UpdateUserStatusResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/UpdateUserStatusResult"
|
|
}
|
|
}
|
|
},
|
|
"UpdateUserStatusResult": {
|
|
"type": "object"
|
|
},
|
|
"UserStatus": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"active": {
|
|
"type": "integer"
|
|
},
|
|
"online": {
|
|
"type": "integer"
|
|
},
|
|
"state": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"UserTopic": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"topic": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"UserTopicFilter": {
|
|
"type": "object",
|
|
"properties": {
|
|
"users": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"topic_prefix": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"UserTopicListRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"filter": {
|
|
"$ref": "#/definitions/UserTopicFilter"
|
|
},
|
|
"include_total_count": {
|
|
"type": "boolean"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"UserTopicListResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/UserTopicListResult"
|
|
}
|
|
}
|
|
},
|
|
"UserTopicListResult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"$ref": "#/definitions/UserTopic"
|
|
}
|
|
},
|
|
"next_cursor": {
|
|
"type": "string"
|
|
},
|
|
"total_count": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"UserTopicUpdateRequest": {
|
|
"type": "object",
|
|
"properties": {
|
|
"user": {
|
|
"type": "string"
|
|
},
|
|
"op": {
|
|
"type": "string",
|
|
"title": "add | remove | set"
|
|
},
|
|
"topics": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"UserTopicUpdateResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"error": {
|
|
"$ref": "#/definitions/Error"
|
|
},
|
|
"result": {
|
|
"$ref": "#/definitions/UserTopicUpdateResult"
|
|
}
|
|
}
|
|
},
|
|
"UserTopicUpdateResult": {
|
|
"type": "object"
|
|
},
|
|
"WebPushPushNotification": {
|
|
"type": "object",
|
|
"properties": {
|
|
"headers": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"payload": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"api.Disconnect": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"securityDefinitions": {
|
|
"ApiKeyAuth": {
|
|
"type": "apiKey",
|
|
"name": "X-API-Key",
|
|
"in": "header"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"ApiKeyAuth": []
|
|
}
|
|
],
|
|
"externalDocs": {
|
|
"description": "More about Centrifugo HTTP API",
|
|
"url": "https://centrifugal.dev/docs/server/server_api"
|
|
}
|
|
}
|