2022-11-13 19:17:07 +01:00
{
"swagger" : "2.0" ,
"info" : {
"description" : "API for SCN" ,
"title" : "SimpleCloudNotifier API" ,
"contact" : { } ,
"version" : "2.0"
} ,
"host" : "scn.blackforestbytes.com" ,
2022-11-18 21:25:40 +01:00
"basePath" : "/" ,
2022-11-13 19:17:07 +01:00
"paths" : {
2022-11-19 15:13:47 +01:00
"/" : {
"post" : {
2022-11-20 00:19:41 +01:00
"description" : "All parameter can be set via query-parameter or the json body. Only UserID, UserKey and Title are required" ,
2022-11-23 19:32:23 +01:00
"tags" : [
"External"
] ,
2022-11-19 15:13:47 +01:00
"summary" : "Send a new message" ,
"parameters" : [
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "chanKey" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "channel" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "content" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "priority" ,
"in" : "query"
} ,
{
2022-11-20 00:19:41 +01:00
"type" : "number" ,
2022-11-19 15:13:47 +01:00
"name" : "sendTimestamp" ,
"in" : "query"
} ,
2022-11-29 11:07:15 +01:00
{
"type" : "string" ,
"name" : "senderName" ,
"in" : "query"
} ,
2022-11-19 15:13:47 +01:00
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "title" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "userID" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "userKey" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "userMessageID" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"description" : " " ,
"name" : "post_body" ,
"in" : "body" ,
"schema" : {
"$ref" : "#/definitions/handler.SendMessage.body"
}
2022-11-20 21:15:06 +01:00
} ,
{
"type" : "string" ,
"name" : "chan_key" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "channel" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "content" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "msg_id" ,
"in" : "formData"
} ,
{
"type" : "integer" ,
"name" : "priority" ,
"in" : "formData"
} ,
2022-11-29 11:07:15 +01:00
{
"type" : "string" ,
"name" : "sender_name" ,
"in" : "formData"
} ,
2022-11-20 21:15:06 +01:00
{
"type" : "number" ,
"name" : "timestamp" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "title" ,
"in" : "formData"
} ,
{
"type" : "integer" ,
"name" : "user_id" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "user_key" ,
"in" : "formData"
2022-11-19 15:13:47 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-20 03:06:08 +01:00
"$ref" : "#/definitions/handler.sendMessageInternal.response"
2022-11-20 00:19:41 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
2022-11-21 22:52:44 +01:00
"description" : "The user_id was not found or the user_key is wrong" ,
2022-11-20 00:19:41 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"403" : {
2022-11-21 22:52:44 +01:00
"description" : "The user has exceeded its daily quota - wait 24 hours or upgrade your account" ,
2022-11-20 00:19:41 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
2022-11-21 22:52:44 +01:00
"description" : "An internal server error occurred - try again later" ,
2022-11-20 00:19:41 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/ack.php" : {
"get" : {
"tags" : [
"API-v1"
] ,
"summary" : "Acknowledge that a message was received" ,
"operationId" : "compat-ack" ,
"deprecated" : true ,
"parameters" : [
{
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the message id" ,
"name" : "scn_msg_id" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the message id" ,
"name" : "scn_msg_id" ,
"in" : "formData" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/ginresp.compatAPIError"
}
}
}
}
} ,
"/api/db-test" : {
2022-11-25 22:42:21 +01:00
"post" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"Common"
] ,
"summary" : "Check for a wroking database connection" ,
"operationId" : "api-common-dbtest" ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/handler.DatabaseTest.response"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
"/api/expand.php" : {
"get" : {
"tags" : [
"API-v1"
] ,
"summary" : "Get a whole (potentially truncated) message" ,
"operationId" : "compat-expand" ,
"deprecated" : true ,
"parameters" : [
{
"type" : "string" ,
"description" : "The user_id" ,
"name" : "user_id" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The user_key" ,
"name" : "user_key" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The message-id" ,
"name" : "scn_msg_id" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The user_id" ,
"name" : "user_id" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The user_key" ,
"name" : "user_key" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "The message-id" ,
"name" : "scn_msg_id" ,
"in" : "formData" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/ginresp.compatAPIError"
}
}
}
}
} ,
"/api/health" : {
"get" : {
"tags" : [
"Common"
] ,
"summary" : "Server Health-checks" ,
"operationId" : "api-common-health" ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/handler.Health.response"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
"/api/info.php" : {
"get" : {
"tags" : [
"API-v1"
] ,
"summary" : "Get information about the current user" ,
"operationId" : "compat-info" ,
"deprecated" : true ,
"parameters" : [
{
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "formData" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/ginresp.compatAPIError"
}
}
}
}
} ,
"/api/messages" : {
2022-11-20 00:19:41 +01:00
"get" : {
"description" : "The next_page_token is an opaque token, the special value \"@start\" (or empty-string) is the beginning and \"@end\" is the end\nSimply start the pagination without a next_page_token and get the next page by calling this endpoint with the returned next_page_token of the last query\nIf there are no more entries the token \"@end\" will be returned\nBy default we return long messages with a trimmed body, if trimmed=false is supplied we return full messages (this reduces the max page_size)" ,
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
2022-11-20 00:19:41 +01:00
"summary" : "List all (subscribed) messages" ,
"operationId" : "api-messages-list" ,
"parameters" : [
{
"type" : "string" ,
"name" : "filter" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "nextPageToken" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "pageSize" ,
"in" : "query"
} ,
{
"type" : "boolean" ,
2022-11-29 11:07:15 +01:00
"description" : "TODO more filter (sender-name, channel, timestamps, prio, )" ,
2022-11-20 00:19:41 +01:00
"name" : "trimmed" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/handler.ListMessages.response"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/messages/{mid}" : {
2022-11-23 22:12:47 +01:00
"delete" : {
2022-11-20 00:19:41 +01:00
"description" : "The user must own the message and request the resource with the ADMIN Key" ,
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
2022-11-20 00:19:41 +01:00
"summary" : "Delete a single message" ,
"operationId" : "api-messages-delete" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "SCNMessageID" ,
"name" : "mid" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/models.MessageJSON"
2022-11-19 15:13:47 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 22:12:47 +01:00
} ,
"patch" : {
"description" : "The user must either own the message and request the resource with the READ or ADMIN Key\nOr the user must subscribe to the corresponding channel (and be confirmed) and request the resource with the READ or ADMIN Key\nThe returned message is never trimmed" ,
"tags" : [
"API-v2"
] ,
"summary" : "Get a single message (untrimmed)" ,
"operationId" : "api-messages-get" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "SCNMessageID" ,
"name" : "mid" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/models.MessageJSON"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-19 15:13:47 +01:00
}
} ,
2022-11-23 19:32:23 +01:00
"/api/ping" : {
"get" : {
"tags" : [
"Common"
2022-11-20 00:19:41 +01:00
] ,
2022-11-23 19:32:23 +01:00
"summary" : "Simple endpoint to test connection (any http method)" ,
2022-11-20 00:19:41 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.pingResponse"
2022-11-20 00:19:41 +01:00
}
} ,
2022-11-23 19:32:23 +01:00
"500" : {
"description" : "Internal Server Error" ,
2022-11-20 00:19:41 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
2022-11-23 19:32:23 +01:00
}
}
} ,
"put" : {
"tags" : [
"Common"
] ,
"summary" : "Simple endpoint to test connection (any http method)" ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/handler.pingResponse"
}
2022-11-20 00:19:41 +01:00
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
} ,
"post" : {
"tags" : [
"Common"
2022-11-20 00:19:41 +01:00
] ,
2022-11-23 19:32:23 +01:00
"summary" : "Simple endpoint to test connection (any http method)" ,
2022-11-20 00:19:41 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.pingResponse"
2022-11-20 00:19:41 +01:00
}
} ,
2022-11-23 19:32:23 +01:00
"500" : {
"description" : "Internal Server Error" ,
2022-11-20 00:19:41 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
2022-11-23 19:32:23 +01:00
}
}
} ,
"delete" : {
"tags" : [
"Common"
] ,
"summary" : "Simple endpoint to test connection (any http method)" ,
"responses" : {
"200" : {
"description" : "OK" ,
2022-11-20 00:19:41 +01:00
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.pingResponse"
2022-11-20 00:19:41 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
} ,
"patch" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"Common"
2022-11-20 00:19:41 +01:00
] ,
2022-11-23 19:32:23 +01:00
"summary" : "Simple endpoint to test connection (any http method)" ,
2022-11-20 00:19:41 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.pingResponse"
2022-11-20 00:19:41 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/register.php" : {
2022-11-20 00:19:41 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v1"
] ,
"summary" : "Register a new account" ,
"operationId" : "compat-register" ,
"deprecated" : true ,
2022-11-20 00:19:41 +01:00
"parameters" : [
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the (android) fcm token" ,
"name" : "fcm_token" ,
"in" : "query" ,
2022-11-20 00:19:41 +01:00
"required" : true
2022-11-20 21:15:06 +01:00
} ,
{
"enum" : [
2022-11-23 19:32:23 +01:00
"true" ,
"false"
2022-11-20 21:15:06 +01:00
] ,
"type" : "string" ,
2022-11-23 19:32:23 +01:00
"description" : "if the user is a paid account" ,
"name" : "pro" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the (android) IAP token" ,
"name" : "pro_token" ,
2022-11-20 21:15:06 +01:00
"in" : "query" ,
"required" : true
2022-11-23 19:32:23 +01:00
} ,
{
"type" : "string" ,
"description" : "the (android) fcm token" ,
"name" : "fcm_token" ,
"in" : "formData" ,
"required" : true
} ,
{
"enum" : [
"true" ,
"false"
] ,
"type" : "string" ,
"description" : "if the user is a paid account" ,
"name" : "pro" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the (android) IAP token" ,
"name" : "pro_token" ,
"in" : "formData" ,
"required" : true
2022-11-20 00:19:41 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/ginresp.compatAPIError"
2022-11-20 00:19:41 +01:00
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/requery.php" : {
2022-11-20 00:19:41 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v1"
] ,
"summary" : "Return all not-acknowledged messages" ,
"operationId" : "compat-requery" ,
"deprecated" : true ,
2022-11-20 00:19:41 +01:00
"parameters" : [
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "query" ,
2022-11-20 00:19:41 +01:00
"required" : true
} ,
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "formData" ,
2022-11-20 00:19:41 +01:00
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/ginresp.compatAPIError"
2022-11-20 00:19:41 +01:00
}
}
}
2022-11-23 19:32:23 +01:00
}
} ,
2022-11-23 20:21:49 +01:00
"/api/sleep/{secs}" : {
"post" : {
"tags" : [
"Common"
] ,
"summary" : "Return 200 after x seconds" ,
"operationId" : "api-common-sleep" ,
2022-11-23 22:12:47 +01:00
"parameters" : [
{
"type" : "number" ,
"description" : "sleep delay (in seconds)" ,
"name" : "secs" ,
"in" : "path" ,
"required" : true
}
] ,
2022-11-23 20:21:49 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/handler.Sleep.response"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/update.php" : {
"get" : {
"tags" : [
"API-v1"
] ,
"summary" : "Set the fcm-token (android)" ,
"operationId" : "compat-update" ,
"deprecated" : true ,
2022-11-20 21:35:08 +01:00
"parameters" : [
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "query" ,
"required" : true
2022-11-20 21:35:08 +01:00
} ,
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "query" ,
2022-11-20 21:35:08 +01:00
"required" : true
} ,
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the (android) fcm token" ,
"name" : "fcm_token" ,
"in" : "query" ,
"required" : true
2022-11-20 21:35:08 +01:00
} ,
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the (android) fcm token" ,
"name" : "fcm_token" ,
"in" : "formData" ,
"required" : true
2022-11-20 21:35:08 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/ginresp.compatAPIError"
2022-11-20 21:35:08 +01:00
}
}
}
2022-11-20 00:19:41 +01:00
}
} ,
2022-11-23 19:32:23 +01:00
"/api/upgrade.php" : {
2022-11-20 00:30:30 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v1"
] ,
"summary" : "Upgrade a free account to a paid account" ,
"operationId" : "compat-upgrade" ,
"deprecated" : true ,
2022-11-20 00:30:30 +01:00
"parameters" : [
{
"type" : "string" ,
2022-11-23 19:32:23 +01:00
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "query" ,
"required" : true
2022-11-20 00:30:30 +01:00
} ,
{
"type" : "string" ,
2022-11-23 19:32:23 +01:00
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "query" ,
"required" : true
2022-11-20 00:30:30 +01:00
} ,
{
2022-11-23 19:32:23 +01:00
"enum" : [
"true" ,
"false"
] ,
"type" : "string" ,
"description" : "if the user is a paid account" ,
"name" : "pro" ,
"in" : "query" ,
"required" : true
2022-11-20 00:30:30 +01:00
} ,
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"description" : "the (android) IAP token" ,
"name" : "pro_token" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_id" ,
"name" : "user_id" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the user_key" ,
"name" : "user_key" ,
"in" : "formData" ,
"required" : true
} ,
{
"enum" : [
"true" ,
"false"
] ,
"type" : "string" ,
"description" : "if the user is a paid account" ,
"name" : "pro" ,
"in" : "formData" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "the (android) IAP token" ,
"name" : "pro_token" ,
"in" : "formData" ,
"required" : true
2022-11-20 00:30:30 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/ginresp.compatAPIError"
2022-11-20 00:30:30 +01:00
}
2022-11-23 19:32:23 +01:00
}
}
}
} ,
2022-11-25 22:42:21 +01:00
"/api/users" : {
2022-11-23 19:32:23 +01:00
"post" : {
"tags" : [
"API-v2"
] ,
"summary" : "Create a new user" ,
"operationId" : "api-user-create" ,
"parameters" : [
{
"description" : " " ,
"name" : "post_body" ,
"in" : "body" ,
2022-11-20 00:30:30 +01:00
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.CreateUser.body"
2022-11-20 00:30:30 +01:00
}
2022-11-23 19:32:23 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
2022-11-20 00:30:30 +01:00
"schema" : {
2022-11-24 12:53:27 +01:00
"$ref" : "#/definitions/models.UserJSONWithClients"
2022-11-20 00:30:30 +01:00
}
} ,
2022-11-23 19:32:23 +01:00
"400" : {
"description" : "Bad Request" ,
2022-11-20 00:30:30 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/users/{uid}" : {
2022-11-20 00:19:41 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "Get a user" ,
"operationId" : "api-user-get" ,
2022-11-20 00:19:41 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.UserJSON"
2022-11-20 00:19:41 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
} ,
"patch" : {
"description" : "The body-values are optional, only send the ones you want to update" ,
"tags" : [
"API-v2"
] ,
"summary" : "(Partially) update a user" ,
"operationId" : "api-user-update" ,
2022-11-20 00:19:41 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
2022-11-23 19:32:23 +01:00
} ,
{
"description" : "Change the username (send an empty string to clear it)" ,
"name" : "username" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
} ,
{
"description" : "Send a verification of permium purchase" ,
"name" : "pro_token" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
} ,
{
"description" : "Send `true` to create a new read_key" ,
"name" : "read_key" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
} ,
{
"description" : "Send `true` to create a new send_key" ,
"name" : "send_key" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
} ,
{
"description" : "Send `true` to create a new admin_key" ,
"name" : "admin_key" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
2022-11-20 00:19:41 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.UserJSON"
2022-11-20 00:19:41 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
}
} ,
"/api/users/{uid}/channels" : {
"get" : {
"description" : "The possible values for 'selector' are:\n- \"owned\" Return all channels of the user\n- \"subscribed\" Return all channels that the user is subscribing to\n- \"all\" Return channels that the user owns or is subscribing\n- \"subscribed_any\" Return all channels that the user is subscribing to (even unconfirmed)\n- \"all_any\" Return channels that the user owns or is subscribing (even unconfirmed)" ,
"tags" : [
"API-v2"
] ,
"summary" : "List channels of a user (subscribed/owned)" ,
"operationId" : "api-channels-list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
2022-11-20 00:19:41 +01:00
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
2022-11-23 19:32:23 +01:00
"enum" : [
"owned" ,
"subscribed" ,
"all" ,
"subscribed_any" ,
"all_any"
] ,
"type" : "string" ,
"description" : "Filter channels (default: owned)" ,
"name" : "selector" ,
"in" : "query" ,
2022-11-20 00:19:41 +01:00
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.ListChannels.response"
2022-11-20 00:19:41 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/users/{uid}/channels/{cid}" : {
2022-11-20 00:19:41 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "List all channels of a user" ,
"operationId" : "api-channels-get" ,
2022-11-20 00:19:41 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2022-11-23 19:32:23 +01:00
"description" : "ChannelID" ,
2022-11-20 00:19:41 +01:00
"name" : "cid" ,
"in" : "path" ,
"required" : true
2022-11-18 21:25:40 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.ChannelJSON"
2022-11-18 21:25:40 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
2022-11-20 00:19:41 +01:00
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
2022-11-18 21:25:40 +01:00
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
} ,
"patch" : {
"tags" : [
"API-v2"
] ,
"summary" : "(Partially) update a channel" ,
"operationId" : "api-channels-update" ,
2022-11-18 23:28:37 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
2022-11-23 19:32:23 +01:00
} ,
{
"type" : "integer" ,
"description" : "ChannelID" ,
"name" : "cid" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : "Send `true` to create a new subscribe_key" ,
"name" : "subscribe_key" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
} ,
{
"description" : "Send `true` to create a new send_key" ,
"name" : "send_key" ,
"in" : "body" ,
"schema" : {
"type" : "string"
}
2022-11-18 23:28:37 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.ChannelJSON"
2022-11-18 23:28:37 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
}
} ,
"/api/users/{uid}/channels/{cid}/messages" : {
"get" : {
"description" : "The next_page_token is an opaque token, the special value \"@start\" (or empty-string) is the beginning and \"@end\" is the end\nSimply start the pagination without a next_page_token and get the next page by calling this endpoint with the returned next_page_token of the last query\nIf there are no more entries the token \"@end\" will be returned\nBy default we return long messages with a trimmed body, if trimmed=false is supplied we return full messages (this reduces the max page_size)" ,
"tags" : [
"API-v2"
] ,
"summary" : "List messages of a channel" ,
"operationId" : "api-channel-messages" ,
2022-11-18 23:28:37 +01:00
"parameters" : [
2022-11-20 00:19:41 +01:00
{
2022-11-23 19:32:23 +01:00
"type" : "string" ,
"name" : "filter" ,
"in" : "query"
2022-11-20 00:19:41 +01:00
} ,
{
"type" : "string" ,
2022-11-23 19:32:23 +01:00
"name" : "nextPageToken" ,
2022-11-20 00:19:41 +01:00
"in" : "query"
} ,
2022-11-18 23:28:37 +01:00
{
2022-11-23 19:32:23 +01:00
"type" : "integer" ,
"name" : "pageSize" ,
"in" : "query"
} ,
{
"type" : "boolean" ,
"name" : "trimmed" ,
"in" : "query"
2022-11-23 22:12:47 +01:00
} ,
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "ChannelID" ,
"name" : "cid" ,
"in" : "path" ,
"required" : true
2022-11-18 23:28:37 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.ListChannelMessages.response"
2022-11-18 23:28:37 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/users/{uid}/channels/{cid}/subscriptions" : {
2022-11-19 12:47:23 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "List all subscriptions of a channel" ,
"operationId" : "api-chan-subscriptions-list" ,
2022-11-19 12:47:23 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
2022-11-20 00:19:41 +01:00
} ,
{
"type" : "integer" ,
2022-11-23 19:32:23 +01:00
"description" : "ChannelID" ,
"name" : "cid" ,
2022-11-20 00:19:41 +01:00
"in" : "path" ,
"required" : true
2022-11-19 12:47:23 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.ListChannelSubscriptions.response"
2022-11-19 12:47:23 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-19 12:50:41 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
}
} ,
"/api/users/{uid}/clients" : {
"get" : {
"tags" : [
"API-v2"
] ,
"summary" : "List all clients" ,
"operationId" : "api-clients-list" ,
2022-11-19 12:59:25 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.ListClients.response"
2022-11-19 12:59:25 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-20 00:19:41 +01:00
} ,
2022-11-23 19:32:23 +01:00
"post" : {
2022-11-23 22:12:47 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "Add a new clients" ,
"operationId" : "api-clients-create" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"description" : " " ,
"name" : "post_body" ,
"in" : "body" ,
"schema" : {
"$ref" : "#/definitions/handler.AddClient.body"
}
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/models.ClientJSON"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
} ,
"delete" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "Delete a client" ,
"operationId" : "api-clients-delete" ,
2022-11-19 12:50:41 +01:00
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
2022-11-23 19:32:23 +01:00
"description" : "ClientID" ,
"name" : "cid" ,
2022-11-19 12:50:41 +01:00
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.ClientJSON"
2022-11-19 12:50:41 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-19 12:47:23 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/users/{uid}/clients/{cid}" : {
2022-11-13 19:17:07 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
2022-11-13 19:17:07 +01:00
] ,
2022-11-23 19:32:23 +01:00
"summary" : "Get a single clients" ,
"operationId" : "api-clients-get" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
2022-11-20 13:18:09 +01:00
"required" : true
} ,
{
2022-11-23 19:32:23 +01:00
"type" : "integer" ,
"description" : "ClientID" ,
"name" : "cid" ,
"in" : "path" ,
2022-11-20 13:18:09 +01:00
"required" : true
2022-11-13 19:17:07 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.ClientJSON"
2022-11-13 19:17:07 +01:00
}
2022-11-23 19:32:23 +01:00
} ,
"400" : {
"description" : "Bad Request" ,
2022-11-18 21:25:40 +01:00
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
2022-11-23 19:32:23 +01:00
"401" : {
"description" : "Unauthorized" ,
2022-11-18 21:25:40 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
2022-11-23 19:32:23 +01:00
} ,
"404" : {
"description" : "Not Found" ,
2022-11-18 21:25:40 +01:00
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
2022-11-13 19:17:07 +01:00
}
}
} ,
2022-11-23 19:32:23 +01:00
"/api/users/{uid}/subscriptions" : {
2022-11-18 21:25:40 +01:00
"get" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "List all channels of a user" ,
"operationId" : "api-user-subscriptions-list" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
}
] ,
2022-11-18 21:25:40 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/handler.ListUserSubscriptions.response"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
} ,
2022-11-23 19:32:23 +01:00
"post" : {
"tags" : [
"API-v2"
] ,
"summary" : "Creare/Request a subscription" ,
"operationId" : "api-subscriptions-create" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "string" ,
"name" : "chanSubscribeKey" ,
"in" : "query"
} ,
{
"description" : " " ,
"name" : "post_data" ,
"in" : "body" ,
"schema" : {
"$ref" : "#/definitions/handler.CreateSubscription.body"
}
}
] ,
2022-11-18 21:25:40 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.SubscriptionJSON"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
2022-11-23 19:32:23 +01:00
}
} ,
"/api/users/{uid}/subscriptions/{sid}" : {
"get" : {
"tags" : [
"API-v2"
] ,
"summary" : "Get a single subscription" ,
"operationId" : "api-subscriptions-get" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "SubscriptionID" ,
"name" : "sid" ,
"in" : "path" ,
"required" : true
}
] ,
2022-11-18 21:25:40 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.SubscriptionJSON"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
} ,
"delete" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "Cancel (delete) subscription" ,
"operationId" : "api-subscriptions-delete" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "SubscriptionID" ,
"name" : "sid" ,
"in" : "path" ,
"required" : true
}
] ,
2022-11-18 21:25:40 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.SubscriptionJSON"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
} ,
"patch" : {
2022-11-23 19:32:23 +01:00
"tags" : [
"API-v2"
] ,
"summary" : "Update a subscription (e.g. confirm)" ,
"operationId" : "api-subscriptions-update" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "UserID" ,
"name" : "uid" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "SubscriptionID" ,
"name" : "sid" ,
"in" : "path" ,
"required" : true
}
] ,
2022-11-18 21:25:40 +01:00
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-23 19:32:23 +01:00
"$ref" : "#/definitions/models.SubscriptionJSON"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"404" : {
"description" : "Not Found" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
2022-11-18 21:25:40 +01:00
}
} ,
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
2022-11-19 15:13:47 +01:00
} ,
"/send" : {
"post" : {
2022-11-20 00:19:41 +01:00
"description" : "All parameter can be set via query-parameter or the json body. Only UserID, UserKey and Title are required" ,
2022-11-23 19:32:23 +01:00
"tags" : [
"External"
] ,
2022-11-19 15:13:47 +01:00
"summary" : "Send a new message" ,
"parameters" : [
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "chanKey" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "channel" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "content" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "priority" ,
"in" : "query"
} ,
{
2022-11-20 00:19:41 +01:00
"type" : "number" ,
2022-11-19 15:13:47 +01:00
"name" : "sendTimestamp" ,
"in" : "query"
} ,
2022-11-29 11:07:15 +01:00
{
"type" : "string" ,
"name" : "senderName" ,
"in" : "query"
} ,
2022-11-19 15:13:47 +01:00
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "title" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "userID" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "userKey" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"type" : "string" ,
2022-11-20 00:19:41 +01:00
"name" : "userMessageID" ,
2022-11-19 15:13:47 +01:00
"in" : "query"
} ,
{
"description" : " " ,
"name" : "post_body" ,
"in" : "body" ,
"schema" : {
"$ref" : "#/definitions/handler.SendMessage.body"
}
2022-11-20 21:15:06 +01:00
} ,
{
"type" : "string" ,
"name" : "chan_key" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "channel" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "content" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "msg_id" ,
"in" : "formData"
} ,
{
"type" : "integer" ,
"name" : "priority" ,
"in" : "formData"
} ,
2022-11-29 11:07:15 +01:00
{
"type" : "string" ,
"name" : "sender_name" ,
"in" : "formData"
} ,
2022-11-20 21:15:06 +01:00
{
"type" : "number" ,
"name" : "timestamp" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "title" ,
"in" : "formData"
} ,
{
"type" : "integer" ,
"name" : "user_id" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "user_key" ,
"in" : "formData"
2022-11-19 15:13:47 +01:00
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
2022-11-20 03:06:08 +01:00
"$ref" : "#/definitions/handler.sendMessageInternal.response"
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
2022-11-21 22:52:44 +01:00
"description" : "The user_id was not found or the user_key is wrong" ,
2022-11-20 03:06:08 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"403" : {
2022-11-21 22:52:44 +01:00
"description" : "The user has exceeded its daily quota - wait 24 hours or upgrade your account" ,
2022-11-20 03:06:08 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"500" : {
2022-11-21 22:52:44 +01:00
"description" : "An internal server error occurred - try again later" ,
2022-11-20 03:06:08 +01:00
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
} ,
"/send.php" : {
"post" : {
"description" : "All parameter can be set via query-parameter or form-data body. Only UserID, UserKey and Title are required" ,
2022-11-23 19:32:23 +01:00
"tags" : [
"External"
] ,
2022-11-20 03:06:08 +01:00
"summary" : "Send a new message (compatibility)" ,
"deprecated" : true ,
"parameters" : [
{
"type" : "string" ,
"name" : "content" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "priority" ,
"in" : "query"
} ,
{
"type" : "number" ,
"name" : "sendTimestamp" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "title" ,
"in" : "query"
} ,
{
"type" : "integer" ,
"name" : "userID" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "userKey" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "userMessageID" ,
"in" : "query"
} ,
{
"type" : "string" ,
"name" : "content" ,
"in" : "formData"
} ,
{
"type" : "integer" ,
"name" : "priority" ,
"in" : "formData"
} ,
{
"type" : "number" ,
"name" : "sendTimestamp" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "title" ,
"in" : "formData"
} ,
{
"type" : "integer" ,
"name" : "userID" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "userKey" ,
"in" : "formData"
} ,
{
"type" : "string" ,
"name" : "userMessageID" ,
"in" : "formData"
}
] ,
"responses" : {
"200" : {
"description" : "OK" ,
"schema" : {
"$ref" : "#/definitions/handler.sendMessageInternal.response"
2022-11-19 15:13:47 +01:00
}
} ,
"400" : {
"description" : "Bad Request" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
"401" : {
"description" : "Unauthorized" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
2022-11-20 00:19:41 +01:00
"403" : {
"description" : "Forbidden" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
} ,
2022-11-19 15:13:47 +01:00
"500" : {
"description" : "Internal Server Error" ,
"schema" : {
"$ref" : "#/definitions/ginresp.apiError"
}
}
}
}
2022-11-18 21:25:40 +01:00
}
} ,
"definitions" : {
"ginresp.apiError" : {
2022-11-13 19:17:07 +01:00
"type" : "object" ,
"properties" : {
"errhighlight" : {
"type" : "integer"
} ,
"error" : {
"type" : "integer"
} ,
2022-11-20 03:06:08 +01:00
"errorObj" : {
"type" : "string"
} ,
2022-11-13 19:17:07 +01:00
"message" : {
"type" : "string"
} ,
"success" : {
"type" : "boolean"
2022-11-20 03:06:08 +01:00
} ,
"traceObj" : {
"type" : "string"
2022-11-13 19:17:07 +01:00
}
}
} ,
2022-11-20 01:28:32 +01:00
"ginresp.compatAPIError" : {
"type" : "object" ,
"properties" : {
"errid" : {
"type" : "integer"
} ,
"message" : {
"type" : "string"
} ,
"success" : {
"type" : "boolean"
}
}
} ,
2022-11-13 19:17:07 +01:00
"handler.Ack.response" : {
"type" : "object" ,
"properties" : {
"message" : {
"type" : "string"
} ,
"new_ack" : {
"type" : "integer"
} ,
"prev_ack" : {
"type" : "integer"
} ,
"success" : {
2022-11-20 01:28:32 +01:00
"type" : "boolean"
2022-11-13 19:17:07 +01:00
}
}
} ,
2022-11-19 12:59:25 +01:00
"handler.AddClient.body" : {
"type" : "object" ,
2022-11-20 03:06:08 +01:00
"required" : [
"agent_model" ,
"agent_version" ,
"client_type" ,
"fcm_token"
] ,
2022-11-19 12:59:25 +01:00
"properties" : {
"agent_model" : {
"type" : "string"
} ,
"agent_version" : {
"type" : "string"
} ,
"client_type" : {
"type" : "string"
} ,
"fcm_token" : {
"type" : "string"
}
}
} ,
2022-11-20 00:19:41 +01:00
"handler.CreateSubscription.body" : {
"type" : "object" ,
2022-11-20 03:06:08 +01:00
"required" : [
"channel" ,
"channelOwnerUserID"
] ,
2022-11-20 00:19:41 +01:00
"properties" : {
"channel" : {
"type" : "string"
} ,
"channelOwnerUserID" : {
"type" : "integer"
}
}
} ,
2022-11-18 21:25:40 +01:00
"handler.CreateUser.body" : {
"type" : "object" ,
"properties" : {
2022-11-18 23:28:37 +01:00
"agent_model" : {
2022-11-18 21:25:40 +01:00
"type" : "string"
} ,
2022-11-18 23:28:37 +01:00
"agent_version" : {
2022-11-18 21:25:40 +01:00
"type" : "string"
} ,
2022-11-18 23:28:37 +01:00
"client_type" : {
2022-11-18 21:25:40 +01:00
"type" : "string"
} ,
2022-11-18 23:28:37 +01:00
"fcm_token" : {
2022-11-18 21:25:40 +01:00
"type" : "string"
} ,
2022-11-25 22:42:21 +01:00
"no_client" : {
"type" : "boolean"
} ,
2022-11-18 23:28:37 +01:00
"pro_token" : {
2022-11-18 21:25:40 +01:00
"type" : "string"
} ,
"username" : {
"type" : "string"
}
}
} ,
2022-11-13 19:17:07 +01:00
"handler.DatabaseTest.response" : {
"type" : "object" ,
"properties" : {
"libVersion" : {
"type" : "string"
} ,
"libVersionNumber" : {
"type" : "integer"
} ,
"sourceID" : {
"type" : "string"
} ,
"success" : {
"type" : "boolean"
}
}
} ,
"handler.Expand.response" : {
"type" : "object" ,
"properties" : {
"data" : {
2022-11-20 01:28:32 +01:00
"$ref" : "#/definitions/models.CompatMessage"
2022-11-13 19:17:07 +01:00
} ,
"message" : {
"type" : "string"
} ,
"success" : {
2022-11-20 01:28:32 +01:00
"type" : "boolean"
2022-11-13 19:17:07 +01:00
}
}
} ,
"handler.Health.response" : {
"type" : "object" ,
"properties" : {
"status" : {
"type" : "string"
}
}
} ,
"handler.Info.response" : {
"type" : "object" ,
"properties" : {
"fcm_token_set" : {
"type" : "boolean"
} ,
"is_pro" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"message" : {
"type" : "string"
} ,
"quota" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"quota_max" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"success" : {
2022-11-20 01:28:32 +01:00
"type" : "boolean"
2022-11-13 19:17:07 +01:00
} ,
"unack_count" : {
"type" : "integer"
} ,
"user_id" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"user_key" : {
"type" : "string"
}
}
} ,
2022-11-20 00:30:30 +01:00
"handler.ListChannelMessages.response" : {
"type" : "object" ,
"properties" : {
"messages" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.MessageJSON"
}
} ,
"next_page_token" : {
"type" : "string"
} ,
"page_size" : {
"type" : "integer"
}
}
} ,
2022-11-20 00:19:41 +01:00
"handler.ListChannelSubscriptions.response" : {
"type" : "object" ,
"properties" : {
"subscriptions" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.SubscriptionJSON"
}
}
}
} ,
"handler.ListChannels.response" : {
"type" : "object" ,
"properties" : {
"channels" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.ChannelJSON"
}
}
}
} ,
"handler.ListClients.response" : {
2022-11-19 12:47:23 +01:00
"type" : "object" ,
"properties" : {
"clients" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.ClientJSON"
}
}
}
} ,
2022-11-20 00:19:41 +01:00
"handler.ListMessages.response" : {
"type" : "object" ,
"properties" : {
"messages" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.MessageJSON"
}
} ,
"next_page_token" : {
"type" : "string"
} ,
"page_size" : {
"type" : "integer"
}
}
} ,
"handler.ListUserSubscriptions.response" : {
"type" : "object" ,
"properties" : {
"subscriptions" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.SubscriptionJSON"
}
}
}
} ,
2022-11-13 19:17:07 +01:00
"handler.Register.response" : {
"type" : "object" ,
"properties" : {
"is_pro" : {
2022-11-13 22:31:28 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"message" : {
"type" : "string"
} ,
"quota" : {
2022-11-13 22:31:28 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"quota_max" : {
2022-11-13 22:31:28 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"success" : {
2022-11-13 22:31:28 +01:00
"type" : "boolean"
2022-11-13 19:17:07 +01:00
} ,
"user_id" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"user_key" : {
"type" : "string"
}
}
} ,
"handler.Requery.response" : {
"type" : "object" ,
"properties" : {
"count" : {
"type" : "integer"
} ,
"data" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.CompatMessage"
}
} ,
"message" : {
"type" : "string"
} ,
"success" : {
2022-11-20 01:28:32 +01:00
"type" : "boolean"
2022-11-13 19:17:07 +01:00
}
}
} ,
2022-11-19 15:13:47 +01:00
"handler.SendMessage.body" : {
"type" : "object" ,
"properties" : {
2022-11-20 21:15:06 +01:00
"chan_key" : {
2022-11-20 00:19:41 +01:00
"type" : "string"
} ,
"channel" : {
"type" : "string"
} ,
2022-11-20 03:06:08 +01:00
"content" : {
2022-11-19 15:13:47 +01:00
"type" : "string"
} ,
2022-11-20 00:19:41 +01:00
"msg_id" : {
"type" : "string"
} ,
2022-11-19 15:13:47 +01:00
"priority" : {
"type" : "integer"
} ,
2022-11-29 11:07:15 +01:00
"sender_name" : {
"type" : "string"
} ,
2022-11-20 00:19:41 +01:00
"timestamp" : {
"type" : "number"
} ,
2022-11-20 03:06:08 +01:00
"title" : {
2022-11-19 15:13:47 +01:00
"type" : "string"
} ,
2022-11-20 03:06:08 +01:00
"user_id" : {
2022-11-20 00:19:41 +01:00
"type" : "integer"
2022-11-19 15:13:47 +01:00
} ,
2022-11-20 03:06:08 +01:00
"user_key" : {
2022-11-19 15:13:47 +01:00
"type" : "string"
}
}
} ,
2022-11-23 20:21:49 +01:00
"handler.Sleep.response" : {
"type" : "object" ,
"properties" : {
"duration" : {
"type" : "number"
} ,
"end" : {
"type" : "string"
} ,
"start" : {
"type" : "string"
}
}
} ,
2022-11-13 19:17:07 +01:00
"handler.Update.response" : {
"type" : "object" ,
"properties" : {
"is_pro" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"message" : {
"type" : "string"
} ,
"quota" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"quota_max" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"success" : {
2022-11-20 01:28:32 +01:00
"type" : "boolean"
2022-11-13 19:17:07 +01:00
} ,
"user_id" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"user_key" : {
"type" : "string"
2022-11-18 23:28:37 +01:00
}
}
} ,
2022-11-13 19:17:07 +01:00
"handler.Upgrade.response" : {
"type" : "object" ,
"properties" : {
2022-11-20 01:28:32 +01:00
"is_pro" : {
"type" : "boolean"
2022-11-13 19:17:07 +01:00
} ,
"message" : {
"type" : "string"
} ,
2022-11-20 01:28:32 +01:00
"quota" : {
"type" : "integer"
} ,
"quota_max" : {
"type" : "integer"
} ,
2022-11-13 19:17:07 +01:00
"success" : {
2022-11-20 01:28:32 +01:00
"type" : "boolean"
} ,
"user_id" : {
"type" : "integer"
2022-11-13 19:17:07 +01:00
}
}
} ,
"handler.pingResponse" : {
"type" : "object" ,
"properties" : {
"info" : {
"$ref" : "#/definitions/handler.pingResponseInfo"
} ,
"message" : {
"type" : "string"
}
}
} ,
"handler.pingResponseInfo" : {
"type" : "object" ,
"properties" : {
"addr" : {
"type" : "string"
} ,
"headers" : {
"type" : "object" ,
"additionalProperties" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
}
} ,
"method" : {
"type" : "string"
} ,
"request" : {
"type" : "string"
} ,
"uri" : {
"type" : "string"
}
}
} ,
2022-11-20 03:06:08 +01:00
"handler.sendMessageInternal.response" : {
"type" : "object" ,
"properties" : {
"errhighlight" : {
"type" : "integer"
} ,
"error" : {
"type" : "integer"
} ,
"is_pro" : {
"type" : "boolean"
} ,
"message" : {
"type" : "string"
} ,
"messagecount" : {
"type" : "integer"
} ,
"quota" : {
"type" : "integer"
} ,
"quota_max" : {
"type" : "integer"
} ,
"scn_msg_id" : {
"type" : "integer"
} ,
"success" : {
"type" : "boolean"
} ,
"suppress_send" : {
"type" : "boolean"
}
}
} ,
2022-11-20 00:19:41 +01:00
"models.ChannelJSON" : {
"type" : "object" ,
"properties" : {
"channel_id" : {
"type" : "integer"
} ,
"messages_sent" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"owner_user_id" : {
"type" : "integer"
} ,
2022-11-20 21:35:08 +01:00
"send_key" : {
"description" : "can be nil, depending on endpoint" ,
"type" : "string"
} ,
2022-11-20 00:19:41 +01:00
"subscribe_key" : {
2022-11-20 21:15:06 +01:00
"description" : "can be nil, depending on endpoint" ,
2022-11-20 00:19:41 +01:00
"type" : "string"
} ,
"timestamp_created" : {
"type" : "string"
} ,
"timestamp_last_sent" : {
"type" : "string"
}
}
} ,
2022-11-19 12:47:23 +01:00
"models.ClientJSON" : {
"type" : "object" ,
"properties" : {
"agent_model" : {
"type" : "string"
} ,
"agent_version" : {
"type" : "string"
} ,
"client_id" : {
"type" : "integer"
} ,
"fcm_token" : {
"type" : "string"
} ,
"timestamp_created" : {
"type" : "string"
} ,
"type" : {
"type" : "string"
} ,
"user_id" : {
"type" : "integer"
}
}
} ,
2022-11-13 19:17:07 +01:00
"models.CompatMessage" : {
"type" : "object" ,
"properties" : {
"body" : {
"type" : "string"
} ,
"priority" : {
"type" : "integer"
} ,
"scn_msg_id" : {
2022-11-20 01:28:32 +01:00
"type" : "integer"
2022-11-13 19:17:07 +01:00
} ,
"timestamp" : {
"type" : "integer"
} ,
"title" : {
"type" : "string"
} ,
2022-11-20 01:28:32 +01:00
"trimmed" : {
"type" : "boolean"
} ,
2022-11-13 19:17:07 +01:00
"usr_msg_id" : {
"type" : "string"
}
}
} ,
2022-11-20 00:19:41 +01:00
"models.MessageJSON" : {
"type" : "object" ,
"properties" : {
"body" : {
"type" : "string"
} ,
"channel_id" : {
"type" : "integer"
} ,
"channel_name" : {
"type" : "string"
} ,
"owner_user_id" : {
"type" : "integer"
} ,
"priority" : {
"type" : "integer"
} ,
"scn_message_id" : {
"type" : "integer"
} ,
2022-11-29 11:07:15 +01:00
"sender_ip" : {
"type" : "string"
} ,
"sender_name" : {
"type" : "string"
} ,
2022-11-20 00:19:41 +01:00
"sender_user_id" : {
"type" : "integer"
} ,
"timestamp" : {
"type" : "string"
} ,
"title" : {
"type" : "string"
} ,
"trimmed" : {
"type" : "boolean"
} ,
"usr_message_id" : {
2022-11-13 19:17:07 +01:00
"type" : "string"
}
}
2022-11-18 21:25:40 +01:00
} ,
2022-11-20 00:19:41 +01:00
"models.SubscriptionJSON" : {
"type" : "object" ,
"properties" : {
"channel_id" : {
"type" : "integer"
} ,
"channel_name" : {
"type" : "string"
} ,
"channel_owner_user_id" : {
"type" : "integer"
} ,
"confirmed" : {
"type" : "boolean"
} ,
"subscriber_user_id" : {
"type" : "integer"
} ,
"subscription_id" : {
"type" : "integer"
} ,
"timestamp_created" : {
"type" : "string"
}
}
} ,
2022-11-18 21:25:40 +01:00
"models.UserJSON" : {
"type" : "object" ,
"properties" : {
"admin_key" : {
"type" : "string"
} ,
2022-11-20 22:18:24 +01:00
"default_channel" : {
"type" : "string"
} ,
2022-11-18 21:25:40 +01:00
"is_pro" : {
"type" : "boolean"
} ,
"messages_sent" : {
"type" : "integer"
} ,
2022-11-20 00:19:41 +01:00
"quota_used" : {
2022-11-18 21:25:40 +01:00
"type" : "integer"
2022-11-24 12:53:27 +01:00
} ,
"quota_used_day" : {
"type" : "string"
} ,
"read_key" : {
"type" : "string"
} ,
"send_key" : {
"type" : "string"
} ,
"timestamp_created" : {
"type" : "string"
} ,
"timestamp_last_read" : {
"type" : "string"
} ,
"timestamp_last_sent" : {
"type" : "string"
} ,
"user_id" : {
"type" : "integer"
} ,
"username" : {
"type" : "string"
}
}
} ,
"models.UserJSONWithClients" : {
"type" : "object" ,
"properties" : {
"admin_key" : {
"type" : "string"
} ,
"clients" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/models.ClientJSON"
}
} ,
"default_channel" : {
"type" : "string"
} ,
"is_pro" : {
"type" : "boolean"
} ,
"messages_sent" : {
"type" : "integer"
} ,
"quota_used" : {
"type" : "integer"
2022-11-18 21:25:40 +01:00
} ,
2022-11-20 00:19:41 +01:00
"quota_used_day" : {
"type" : "string"
} ,
2022-11-18 21:25:40 +01:00
"read_key" : {
"type" : "string"
} ,
"send_key" : {
"type" : "string"
} ,
"timestamp_created" : {
"type" : "string"
} ,
"timestamp_last_read" : {
"type" : "string"
} ,
"timestamp_last_sent" : {
"type" : "string"
} ,
"user_id" : {
"type" : "integer"
} ,
"username" : {
"type" : "string"
}
}
2022-11-13 19:17:07 +01:00
}
2022-11-23 19:32:23 +01:00
} ,
"tags" : [
{
"name" : "Common"
} ,
{
"name" : "External"
} ,
{
"name" : "API-v1"
} ,
{
"name" : "API-v2"
}
]
2022-11-13 19:17:07 +01:00
}