SimpleCloudNotifier/scnserver/swagger/swagger.yaml

2104 lines
54 KiB
YAML
Raw Normal View History

2022-11-18 21:25:40 +01:00
basePath: /
2022-11-13 19:17:07 +01:00
definitions:
2022-11-18 21:25:40 +01:00
ginresp.apiError:
2022-11-13 19:17:07 +01:00
properties:
errhighlight:
type: integer
error:
type: integer
message:
type: string
success:
type: boolean
type: object
2022-11-20 01:28:32 +01:00
ginresp.compatAPIError:
properties:
errid:
type: integer
message:
type: string
success:
type: boolean
type: object
2022-11-13 19:17:07 +01:00
handler.Ack.response:
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
type: object
2022-11-19 12:59:25 +01:00
handler.AddClient.body:
properties:
agent_model:
type: string
agent_version:
type: string
client_type:
type: string
fcm_token:
type: string
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
type: object
2022-12-14 18:38:30 +01:00
handler.CreateChannel.body:
properties:
name:
type: string
subscribe:
type: boolean
2022-12-14 18:38:30 +01:00
type: object
2022-11-20 00:19:41 +01:00
handler.CreateSubscription.body:
properties:
channel_id:
type: integer
channel_internal_name:
2022-11-20 00:19:41 +01:00
type: string
2022-11-30 17:58:04 +01:00
channel_owner_user_id:
2022-11-20 00:19:41 +01:00
type: integer
type: object
2022-11-18 21:25:40 +01:00
handler.CreateUser.body:
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
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
type: object
2022-11-13 19:17:07 +01:00
handler.DatabaseTest.response:
properties:
libVersion:
type: string
libVersionNumber:
type: integer
sourceID:
type: string
success:
type: boolean
type: object
handler.Expand.response:
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
type: object
handler.Health.response:
properties:
status:
type: string
type: object
handler.Info.response:
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
type: object
2022-11-20 00:30:30 +01:00
handler.ListChannelMessages.response:
properties:
messages:
items:
$ref: '#/definitions/models.MessageJSON'
type: array
next_page_token:
type: string
page_size:
type: integer
type: object
2022-11-20 00:19:41 +01:00
handler.ListChannelSubscriptions.response:
properties:
subscriptions:
items:
$ref: '#/definitions/models.SubscriptionJSON'
type: array
type: object
handler.ListChannels.response:
properties:
channels:
items:
$ref: '#/definitions/models.ChannelWithSubscriptionJSON'
2022-11-20 00:19:41 +01:00
type: array
type: object
handler.ListClients.response:
2022-11-19 12:47:23 +01:00
properties:
clients:
items:
$ref: '#/definitions/models.ClientJSON'
type: array
type: object
2022-11-20 00:19:41 +01:00
handler.ListMessages.response:
properties:
messages:
items:
$ref: '#/definitions/models.MessageJSON'
type: array
next_page_token:
type: string
page_size:
type: integer
type: object
handler.ListUserSubscriptions.response:
properties:
subscriptions:
items:
$ref: '#/definitions/models.SubscriptionJSON'
type: array
type: object
2022-11-13 19:17:07 +01:00
handler.Register.response:
properties:
is_pro:
type: integer
2022-11-13 19:17:07 +01:00
message:
type: string
quota:
type: integer
2022-11-13 19:17:07 +01:00
quota_max:
type: integer
2022-11-13 19:17:07 +01:00
success:
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
type: object
handler.Requery.response:
properties:
count:
type: integer
data:
items:
$ref: '#/definitions/models.CompatMessage'
type: array
message:
type: string
success:
2022-11-20 01:28:32 +01:00
type: boolean
2022-11-13 19:17:07 +01:00
type: object
2022-11-30 17:58:04 +01:00
handler.SendMessage.combined:
2022-11-19 15:13:47 +01:00
properties:
2022-11-20 21:15:06 +01:00
chan_key:
2022-11-30 17:58:04 +01:00
example: qhnUbKcLgp6tg
2022-11-20 00:19:41 +01:00
type: string
channel:
2022-11-30 17:58:04 +01:00
example: test
2022-11-20 00:19:41 +01:00
type: string
2022-11-20 03:06:08 +01:00
content:
2022-11-30 17:58:04 +01:00
example: This is a message
2022-11-19 15:13:47 +01:00
type: string
2022-11-20 00:19:41 +01:00
msg_id:
2022-11-30 17:58:04 +01:00
example: db8b0e6a-a08c-4646
2022-11-20 00:19:41 +01:00
type: string
2022-11-19 15:13:47 +01:00
priority:
2022-11-30 17:58:04 +01:00
enum:
- 0
- 1
- 2
example: 1
2022-11-19 15:13:47 +01:00
type: integer
sender_name:
2022-11-30 17:58:04 +01:00
example: example-server
type: string
2022-11-20 00:19:41 +01:00
timestamp:
2022-11-30 17:58:04 +01:00
example: 1669824037
2022-11-20 00:19:41 +01:00
type: number
2022-11-20 03:06:08 +01:00
title:
2022-11-30 17:58:04 +01:00
example: Hello World
2022-11-20 03:06:08 +01:00
type: string
2022-11-19 15:13:47 +01:00
user_id:
2022-11-30 17:58:04 +01:00
example: 7725
2022-11-20 00:19:41 +01:00
type: integer
2022-11-19 15:13:47 +01:00
user_key:
2022-11-30 17:58:04 +01:00
example: P3TNH8mvv14fm
2022-11-19 15:13:47 +01:00
type: string
2022-11-20 00:19:41 +01:00
type: object
2022-11-23 20:21:49 +01:00
handler.Sleep.response:
properties:
duration:
type: number
end:
type: string
start:
type: string
type: object
2022-11-13 19:17:07 +01:00
handler.Update.response:
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
type: object
handler.UpdateSubscription.body:
properties:
confirmed:
type: boolean
type: object
2022-11-13 19:17:07 +01:00
handler.Upgrade.response:
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
type: object
handler.pingResponse:
properties:
info:
$ref: '#/definitions/handler.pingResponseInfo'
message:
type: string
type: object
handler.pingResponseInfo:
properties:
addr:
type: string
headers:
additionalProperties:
items:
type: string
type: array
type: object
method:
type: string
request:
type: string
uri:
type: string
type: object
2022-11-20 03:06:08 +01:00
handler.sendMessageInternal.response:
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
type: object
models.ChannelWithSubscriptionJSON:
2022-11-20 00:19:41 +01:00
properties:
channel_id:
type: integer
description_name:
type: string
display_name:
type: string
internal_name:
type: string
2022-11-20 00:19:41 +01:00
messages_sent:
type: integer
owner_user_id:
type: integer
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
subscription:
$ref: '#/definitions/models.SubscriptionJSON'
2022-11-20 00:19:41 +01:00
timestamp_created:
type: string
timestamp_lastsent:
2022-11-20 00:19:41 +01:00
type: string
type: object
2022-11-19 12:47:23 +01:00
models.ClientJSON:
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
type: object
2022-11-13 19:17:07 +01:00
models.CompatMessage:
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
type: object
2022-11-20 00:19:41 +01:00
models.MessageJSON:
properties:
channel_id:
type: integer
channel_internal_name:
2022-11-20 00:19:41 +01:00
type: string
content:
type: string
2022-11-20 00:19:41 +01:00
owner_user_id:
type: integer
priority:
type: integer
scn_message_id:
type: integer
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:
type: string
type: object
models.SubscriptionJSON:
properties:
channel_id:
type: integer
channel_internal_name:
2022-11-20 00:19:41 +01:00
type: string
channel_owner_user_id:
type: integer
confirmed:
type: boolean
subscriber_user_id:
type: integer
subscription_id:
type: integer
timestamp_created:
type: string
type: object
2022-11-18 21:25:40 +01:00
models.UserJSON:
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-12-14 18:38:30 +01:00
quota_max:
type: integer
quota_remaining:
type: integer
2022-11-20 00:19:41 +01:00
quota_used:
2022-11-18 21:25:40 +01:00
type: integer
read_key:
type: string
send_key:
type: string
timestamp_created:
type: string
timestamp_lastread:
2022-11-18 21:25:40 +01:00
type: string
timestamp_lastsent:
2022-11-18 21:25:40 +01:00
type: string
user_id:
type: integer
username:
type: string
type: object
2022-11-24 12:53:27 +01:00
models.UserJSONWithClients:
properties:
admin_key:
type: string
clients:
items:
$ref: '#/definitions/models.ClientJSON'
type: array
default_channel:
type: string
is_pro:
type: boolean
messages_sent:
type: integer
2022-12-14 18:38:30 +01:00
quota_max:
type: integer
quota_remaining:
type: integer
2022-11-24 12:53:27 +01:00
quota_used:
type: integer
read_key:
type: string
send_key:
type: string
timestamp_created:
type: string
timestamp_lastread:
2022-11-24 12:53:27 +01:00
type: string
timestamp_lastsent:
2022-11-24 12:53:27 +01:00
type: string
user_id:
type: integer
username:
type: string
type: object
2022-11-13 19:17:07 +01:00
host: scn.blackforestbytes.com
info:
contact: {}
description: API for SCN
title: SimpleCloudNotifier API
version: "2.0"
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-19 15:13:47 +01:00
parameters:
2022-11-30 17:58:04 +01:00
- example: qhnUbKcLgp6tg
in: query
name: chan_key
2022-11-20 00:19:41 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: test
in: query
2022-11-20 00:19:41 +01:00
name: channel
2022-11-19 15:13:47 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: This is a message
in: query
2022-11-20 00:19:41 +01:00
name: content
2022-11-19 15:13:47 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: db8b0e6a-a08c-4646
in: query
name: msg_id
type: string
2022-11-30 17:58:04 +01:00
- enum:
- 0
- 1
- 2
example: 1
in: query
2022-11-19 15:13:47 +01:00
name: priority
type: integer
2022-11-30 17:58:04 +01:00
- example: example-server
in: query
name: sender_name
type: string
2022-11-30 17:58:04 +01:00
- example: 1669824037
in: query
name: timestamp
type: number
2022-11-30 17:58:04 +01:00
- example: Hello World
in: query
2022-11-20 00:19:41 +01:00
name: title
2022-11-19 15:13:47 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: 7725
in: query
name: user_id
2022-11-20 00:19:41 +01:00
type: integer
2022-11-30 17:58:04 +01:00
- example: P3TNH8mvv14fm
in: query
name: user_key
2022-11-19 15:13:47 +01:00
type: string
- description: ' '
in: body
name: post_body
schema:
2022-11-30 17:58:04 +01:00
$ref: '#/definitions/handler.SendMessage.combined'
- example: qhnUbKcLgp6tg
in: formData
2022-11-20 21:15:06 +01:00
name: chan_key
type: string
2022-11-30 17:58:04 +01:00
- example: test
in: formData
2022-11-20 21:15:06 +01:00
name: channel
type: string
2022-11-30 17:58:04 +01:00
- example: This is a message
in: formData
2022-11-20 21:15:06 +01:00
name: content
type: string
2022-11-30 17:58:04 +01:00
- example: db8b0e6a-a08c-4646
in: formData
2022-11-20 21:15:06 +01:00
name: msg_id
type: string
2022-11-30 17:58:04 +01:00
- enum:
- 0
- 1
- 2
example: 1
in: formData
2022-11-20 21:15:06 +01:00
name: priority
type: integer
2022-11-30 17:58:04 +01:00
- example: example-server
in: formData
name: sender_name
type: string
2022-11-30 17:58:04 +01:00
- example: 1669824037
in: formData
2022-11-20 21:15:06 +01:00
name: timestamp
type: number
2022-11-30 17:58:04 +01:00
- example: Hello World
in: formData
2022-11-20 21:15:06 +01:00
name: title
type: string
2022-11-30 17:58:04 +01:00
- example: 7725
in: formData
2022-11-20 21:15:06 +01:00
name: user_id
type: integer
2022-11-30 17:58:04 +01:00
- example: P3TNH8mvv14fm
in: formData
2022-11-20 21:15:06 +01:00
name: user_key
type: string
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-19 15:13:47 +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-19 15:13:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-20 00:19:41 +01:00
"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-19 15:13:47 +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-19 15:13:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Send a new message
2022-11-23 19:32:23 +01:00
tags:
- External
/api/ack.php:
get:
deprecated: true
operationId: compat-ack
parameters:
- description: the user_id
in: query
name: user_id
required: true
type: string
- description: the user_key
in: query
name: user_key
required: true
type: string
- description: the message id
in: query
name: scn_msg_id
required: true
type: string
- description: the user_id
in: formData
name: user_id
required: true
type: string
- description: the user_key
in: formData
name: user_key
required: true
type: string
- description: the message id
in: formData
name: scn_msg_id
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ginresp.compatAPIError'
summary: Acknowledge that a message was received
tags:
- API-v1
/api/db-test:
post:
2022-11-23 19:32:23 +01:00
operationId: api-common-dbtest
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.DatabaseTest.response'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Check for a working database connection
2022-11-23 19:32:23 +01:00
tags:
- Common
/api/expand.php:
get:
deprecated: true
operationId: compat-expand
parameters:
- description: The user_id
in: query
name: user_id
required: true
type: string
- description: The user_key
in: query
name: user_key
required: true
type: string
- description: The message-id
in: query
name: scn_msg_id
required: true
type: string
- description: The user_id
in: formData
name: user_id
required: true
type: string
- description: The user_key
in: formData
name: user_key
required: true
type: string
- description: The message-id
in: formData
name: scn_msg_id
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ginresp.compatAPIError'
summary: Get a whole (potentially truncated) message
tags:
- API-v1
/api/health:
get:
operationId: api-common-health
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.Health.response'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Server Health-checks
tags:
- Common
/api/info.php:
get:
deprecated: true
operationId: compat-info
parameters:
- description: the user_id
in: query
name: user_id
required: true
type: string
- description: the user_key
in: query
name: user_key
required: true
type: string
- description: the user_id
in: formData
name: user_id
required: true
type: string
- description: the user_key
in: formData
name: user_key
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ginresp.compatAPIError'
summary: Get information about the current user
tags:
- API-v1
/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
Simply 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
If there are no more entries the token "@end" will be returned
By default we return long messages with a trimmed body, if trimmed=false is supplied we return full messages (this reduces the max page_size)
operationId: api-messages-list
parameters:
- in: query
name: filter
type: string
- in: query
name: next_page_token
2022-11-20 00:19:41 +01:00
type: string
- in: query
name: page_size
2022-11-20 00:19:41 +01:00
type: integer
- description: TODO more filter (sender-name, channel, timestamps, prio, )
in: query
2022-11-20 00:19:41 +01:00
name: trimmed
type: boolean
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.ListMessages.response'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: List all (subscribed) messages
2022-11-23 19:32:23 +01:00
tags:
- API-v2
/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
operationId: api-messages-delete
parameters:
- description: SCNMessageID
in: path
name: mid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.MessageJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: message not found
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Delete a single message
2022-11-23 19:32:23 +01:00
tags:
- API-v2
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
Or the user must subscribe to the corresponding channel (and be confirmed) and request the resource with the READ or ADMIN Key
The returned message is never trimmed
operationId: api-messages-get
parameters:
- description: SCNMessageID
in: path
name: mid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.MessageJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: message not found
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Get a single message (untrimmed)
tags:
- API-v2
2022-11-23 19:32:23 +01:00
/api/ping:
delete:
2022-11-18 21:25:40 +01:00
responses:
"200":
description: OK
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/handler.pingResponse'
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
summary: Simple endpoint to test connection (any http method)
tags:
- Common
2022-11-18 23:28:37 +01:00
get:
responses:
"200":
description: OK
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/handler.pingResponse'
2022-11-18 23:28:37 +01:00
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-23 19:32:23 +01:00
summary: Simple endpoint to test connection (any http method)
tags:
- Common
2022-11-18 23:28:37 +01:00
patch:
responses:
"200":
description: OK
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/handler.pingResponse'
"500":
description: Internal Server Error
2022-11-18 23:28:37 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-23 19:32:23 +01:00
summary: Simple endpoint to test connection (any http method)
tags:
- Common
post:
responses:
"200":
description: OK
2022-11-18 23:28:37 +01:00
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/handler.pingResponse'
"500":
description: Internal Server Error
2022-11-18 23:28:37 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-23 19:32:23 +01:00
summary: Simple endpoint to test connection (any http method)
tags:
- Common
put:
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.pingResponse'
2022-11-18 23:28:37 +01:00
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-23 19:32:23 +01:00
summary: Simple endpoint to test connection (any http method)
tags:
- Common
/api/register.php:
2022-11-20 00:19:41 +01:00
get:
2022-11-23 19:32:23 +01:00
deprecated: true
operationId: compat-register
2022-11-20 00:19:41 +01:00
parameters:
2022-11-23 19:32:23 +01:00
- description: the (android) fcm token
2022-11-20 21:15:06 +01:00
in: query
2022-11-23 19:32:23 +01:00
name: fcm_token
2022-11-20 21:15:06 +01:00
required: true
type: string
2022-11-23 19:32:23 +01:00
- description: if the user is a paid account
enum:
- "true"
- "false"
in: query
name: pro
required: true
type: string
- description: the (android) IAP token
in: query
name: pro_token
required: true
type: string
- description: the (android) fcm token
in: formData
name: fcm_token
required: true
type: string
- description: if the user is a paid account
enum:
- "true"
- "false"
in: formData
name: pro
required: true
type: string
- description: the (android) IAP token
in: formData
name: pro_token
required: true
type: string
responses:
2022-11-20 00:19:41 +01:00
"200":
description: OK
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/ginresp.compatAPIError'
summary: Register a new account
tags:
- API-v1
/api/requery.php:
get:
deprecated: true
operationId: compat-requery
parameters:
- description: the user_id
in: query
name: user_id
required: true
type: string
- description: the user_key
in: query
name: user_key
required: true
type: string
- description: the user_id
in: formData
name: user_id
required: true
type: string
- description: the user_key
in: formData
name: user_key
required: true
type: string
responses:
"200":
description: OK
2022-11-20 00:19:41 +01:00
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/ginresp.compatAPIError'
summary: Return all not-acknowledged messages
tags:
- API-v1
2022-11-23 20:21:49 +01:00
/api/sleep/{secs}:
post:
operationId: api-common-sleep
2022-11-23 22:12:47 +01:00
parameters:
- description: sleep delay (in seconds)
in: path
name: secs
required: true
type: number
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'
summary: Return 200 after x seconds
tags:
- Common
2022-11-23 19:32:23 +01:00
/api/update.php:
get:
deprecated: true
operationId: compat-update
parameters:
- description: the user_id
in: query
name: user_id
required: true
type: string
- description: the user_key
in: query
name: user_key
required: true
type: string
- description: the (android) fcm token
in: query
name: fcm_token
required: true
type: string
- description: the user_id
in: formData
name: user_id
required: true
type: string
- description: the user_key
in: formData
name: user_key
required: true
type: string
- description: the (android) fcm token
in: formData
name: fcm_token
required: true
type: string
responses:
"200":
description: OK
2022-11-20 00:19:41 +01:00
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/ginresp.compatAPIError'
summary: Set the fcm-token (android)
tags:
- API-v1
/api/upgrade.php:
get:
deprecated: true
operationId: compat-upgrade
parameters:
- description: the user_id
in: query
name: user_id
required: true
type: string
- description: the user_key
in: query
name: user_key
required: true
type: string
- description: if the user is a paid account
enum:
- "true"
- "false"
in: query
name: pro
required: true
type: string
- description: the (android) IAP token
in: query
name: pro_token
required: true
type: string
- description: the user_id
in: formData
name: user_id
required: true
type: string
- description: the user_key
in: formData
name: user_key
required: true
type: string
- description: if the user is a paid account
enum:
- "true"
- "false"
in: formData
name: pro
required: true
type: string
- description: the (android) IAP token
in: formData
name: pro_token
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/ginresp.compatAPIError'
summary: Upgrade a free account to a paid account
tags:
- API-v1
/api/users:
2022-11-23 19:32:23 +01:00
post:
operationId: api-user-create
parameters:
- description: ' '
in: body
name: post_body
schema:
$ref: '#/definitions/handler.CreateUser.body'
responses:
"200":
description: OK
schema:
2022-11-24 12:53:27 +01:00
$ref: '#/definitions/models.UserJSONWithClients'
2022-11-23 19:32:23 +01:00
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
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
summary: Create a new user
tags:
- API-v2
/api/users/{uid}:
2022-11-20 00:19:41 +01:00
get:
2022-11-23 19:32:23 +01:00
operationId: api-user-get
2022-11-20 00:19:41 +01:00
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
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":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: user not found
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
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
summary: Get a user
tags:
- API-v2
patch:
2022-11-23 19:32:23 +01:00
description: The body-values are optional, only send the ones you want to update
operationId: api-user-update
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
2022-11-23 19:32:23 +01:00
- description: Change the username (send an empty string to clear it)
in: body
2022-11-23 19:32:23 +01:00
name: username
schema:
type: string
- description: Send a verification of permium purchase
in: body
name: pro_token
schema:
type: string
- description: Send `true` to create a new read_key
in: body
name: read_key
schema:
type: string
- description: Send `true` to create a new send_key
in: body
name: send_key
schema:
type: string
2022-11-23 19:32:23 +01:00
- description: Send `true` to create a new admin_key
in: body
name: admin_key
schema:
type: string
responses:
"200":
description: OK
schema:
2022-11-23 19:32:23 +01:00
$ref: '#/definitions/models.UserJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: user not found
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-23 19:32:23 +01:00
summary: (Partially) update a user
tags:
- API-v2
/api/users/{uid}/channels:
2022-11-20 00:30:30 +01:00
get:
description: |-
2022-11-23 19:32:23 +01:00
The possible values for 'selector' are:
- "owned" Return all channels of the user
- "subscribed" Return all channels that the user is subscribing to
- "all" Return channels that the user owns or is subscribing
2022-11-23 19:32:23 +01:00
- "subscribed_any" Return all channels that the user is subscribing to (even unconfirmed)
- "all_any" Return channels that the user owns or is subscribing (even unconfirmed)
2022-11-23 19:32:23 +01:00
operationId: api-channels-list
2022-11-20 00:30:30 +01:00
parameters:
2022-11-23 19:32:23 +01:00
- description: UserID
in: path
name: uid
required: true
2022-11-20 00:30:30 +01:00
type: integer
2022-11-23 19:32:23 +01:00
- description: 'Filter channels (default: owned)'
enum:
- owned
- subscribed
- all
- subscribed_any
- all_any
in: query
name: selector
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.ListChannels.response'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: List channels of a user (subscribed/owned/all)
2022-11-23 19:32:23 +01:00
tags:
- API-v2
2022-12-14 18:38:30 +01:00
post:
operationId: api-channels-create
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ' '
in: body
name: post_body
schema:
$ref: '#/definitions/handler.CreateChannel.body'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ChannelWithSubscriptionJSON'
2022-12-14 18:38:30 +01:00
"400":
description: supplied values/parameters cannot be parsed / are invalid
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
description: user is not authorized / has missing permissions
schema:
$ref: '#/definitions/ginresp.apiError'
"409":
description: channel already exists
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
description: internal server error
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Create a new (empty) channel
tags:
- API-v2
2022-11-23 19:32:23 +01:00
/api/users/{uid}/channels/{cid}:
get:
operationId: api-channels-get
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ChannelID
in: path
name: cid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ChannelWithSubscriptionJSON'
2022-11-23 19:32:23 +01:00
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: channel not found
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Get a single channel
2022-11-23 19:32:23 +01:00
tags:
- API-v2
patch:
operationId: api-channels-update
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ChannelID
in: path
name: cid
required: true
type: integer
- description: Send `true` to create a new subscribe_key
in: body
name: subscribe_key
schema:
type: string
- description: Send `true` to create a new send_key
in: body
name: send_key
schema:
type: string
- description: Change the cahnnel display-name (only chnages to lowercase/uppercase
are allowed - internal_name must stay the same)
in: body
name: display_name
schema:
type: string
2022-11-23 19:32:23 +01:00
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ChannelWithSubscriptionJSON'
2022-11-23 19:32:23 +01:00
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: channel not found
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-23 19:32:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: (Partially) update a channel
tags:
- API-v2
/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
Simply 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
If there are no more entries the token "@end" will be returned
By default we return long messages with a trimmed body, if trimmed=false is supplied we return full messages (this reduces the max page_size)
operationId: api-channel-messages
parameters:
- in: query
name: filter
type: string
- in: query
name: next_page_token
2022-11-23 19:32:23 +01:00
type: string
- in: query
name: page_size
2022-11-23 19:32:23 +01:00
type: integer
- in: query
name: trimmed
type: boolean
2022-11-23 22:12:47 +01:00
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ChannelID
in: path
name: cid
required: true
type: integer
2022-11-20 00:30:30 +01:00
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.ListChannelMessages.response'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:30:30 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:30:30 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: channel not found
2022-11-20 00:30:30 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:30:30 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: List messages of a channel
2022-11-23 19:32:23 +01:00
tags:
- API-v2
/api/users/{uid}/channels/{cid}/subscriptions:
2022-11-20 00:19:41 +01:00
get:
operationId: api-chan-subscriptions-list
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ChannelID
in: path
name: cid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.ListChannelSubscriptions.response'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: channel not found
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: List all subscriptions of a channel
2022-11-23 19:32:23 +01:00
tags:
- API-v2
/api/users/{uid}/clients:
get:
operationId: api-clients-list
2022-11-23 22:12:47 +01:00
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.ListClients.response'
2022-11-23 22:12:47 +01:00
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-23 22:12:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: List all clients
2022-11-23 22:12:47 +01:00
tags:
- API-v2
post:
operationId: api-clients-create
2022-11-19 12:47:23 +01:00
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ' '
in: body
name: post_body
schema:
$ref: '#/definitions/handler.AddClient.body'
2022-11-19 12:47:23 +01:00
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ClientJSON'
2022-11-19 12:47:23 +01:00
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-19 12:47:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-19 12:47:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-19 12:47:23 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Add a new clients
2022-11-23 19:32:23 +01:00
tags:
- API-v2
/api/users/{uid}/clients/{cid}:
delete:
operationId: api-clients-delete
2022-11-19 12:59:25 +01:00
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ClientID
in: path
name: cid
required: true
type: integer
2022-11-19 12:59:25 +01:00
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ClientJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-19 12:59:25 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-19 12:59:25 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: client not found
2022-11-19 12:59:25 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-19 12:59:25 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Delete a client
2022-11-23 19:32:23 +01:00
tags:
- API-v2
2022-11-19 12:50:41 +01:00
get:
operationId: api-clients-get
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: ClientID
in: path
name: cid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.ClientJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-19 12:50:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-19 12:50:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: client not found
2022-11-19 12:50:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-19 12:50:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Get a single client
2022-11-23 19:32:23 +01:00
tags:
- API-v2
/api/users/{uid}/subscriptions:
2022-11-20 00:19:41 +01:00
get:
description: |-
The possible values for 'selector' are:
- "outgoing_all" All subscriptions (confirmed/unconfirmed) with the user as subscriber (= subscriptions he can use to read channels)
- "outgoing_confirmed" Confirmed subscriptions with the user as subscriber
- "outgoing_unconfirmed" Unconfirmed (Pending) subscriptions with the user as subscriber
- "incoming_all" All subscriptions (confirmed/unconfirmed) from other users to channels of this user (= incoming subscriptions and subscription requests)
- "incoming_confirmed" Confirmed subscriptions from other users to channels of this user
- "incoming_unconfirmed" Unconfirmed subscriptions from other users to channels of this user (= requests)
2022-11-20 00:19:41 +01:00
operationId: api-user-subscriptions-list
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: 'Filter subscriptions (default: owner_all)'
enum:
- outgoing_all
- outgoing_confirmed
- outgoing_unconfirmed
- incoming_all
- incoming_confirmed
- incoming_unconfirmed
in: query
name: selector
required: true
type: string
2022-11-20 00:19:41 +01:00
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.ListUserSubscriptions.response'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: List all subscriptions of a user (incoming/owned)
2022-11-23 19:32:23 +01:00
tags:
- API-v2
2022-11-20 00:19:41 +01:00
post:
description: Either [channel_owner_user_id, channel_internal_name] or [channel_id]
must be supplied in the request body
2022-11-20 00:19:41 +01:00
operationId: api-subscriptions-create
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- in: query
name: chan_subscribe_key
2022-11-20 00:19:41 +01:00
type: string
- description: ' '
in: body
name: post_data
schema:
$ref: '#/definitions/handler.CreateSubscription.body'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.SubscriptionJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Create/Request a subscription
2022-11-23 19:32:23 +01:00
tags:
- API-v2
/api/users/{uid}/subscriptions/{sid}:
2022-11-20 00:19:41 +01:00
delete:
operationId: api-subscriptions-delete
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: SubscriptionID
in: path
name: sid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.SubscriptionJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: subscription not found
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Cancel (delete) subscription
2022-11-23 19:32:23 +01:00
tags:
- API-v2
2022-11-20 00:19:41 +01:00
get:
operationId: api-subscriptions-get
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: SubscriptionID
in: path
name: sid
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.SubscriptionJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: subscription not found
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Get a single subscription
2022-11-23 19:32:23 +01:00
tags:
- API-v2
2022-11-20 00:19:41 +01:00
patch:
operationId: api-subscriptions-update
parameters:
- description: UserID
in: path
name: uid
required: true
type: integer
- description: SubscriptionID
in: path
name: sid
required: true
type: integer
- description: ' '
in: body
name: post_data
schema:
$ref: '#/definitions/handler.UpdateSubscription.body'
2022-11-20 00:19:41 +01:00
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.SubscriptionJSON'
"400":
2022-12-14 14:27:41 +01:00
description: supplied values/parameters cannot be parsed / are invalid
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
2022-12-14 14:27:41 +01:00
description: user is not authorized / has missing permissions
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"404":
2022-12-14 14:27:41 +01:00
description: subscription not found
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
2022-12-14 14:27:41 +01:00
description: internal server error
2022-11-20 00:19:41 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Update a subscription (e.g. confirm)
2022-11-23 19:32:23 +01:00
tags:
- API-v2
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-19 15:13:47 +01:00
parameters:
2022-11-30 17:58:04 +01:00
- example: qhnUbKcLgp6tg
in: query
name: chan_key
2022-11-19 15:13:47 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: test
in: query
2022-11-20 00:19:41 +01:00
name: channel
type: string
2022-11-30 17:58:04 +01:00
- example: This is a message
in: query
2022-11-20 00:19:41 +01:00
name: content
2022-11-19 15:13:47 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: db8b0e6a-a08c-4646
in: query
name: msg_id
type: string
2022-11-30 17:58:04 +01:00
- enum:
- 0
- 1
- 2
example: 1
in: query
2022-11-19 15:13:47 +01:00
name: priority
type: integer
2022-11-30 17:58:04 +01:00
- example: example-server
in: query
name: sender_name
type: string
2022-11-30 17:58:04 +01:00
- example: 1669824037
in: query
name: timestamp
type: number
2022-11-30 17:58:04 +01:00
- example: Hello World
in: query
2022-11-20 00:19:41 +01:00
name: title
2022-11-19 15:13:47 +01:00
type: string
2022-11-30 17:58:04 +01:00
- example: 7725
in: query
name: user_id
2022-11-20 00:19:41 +01:00
type: integer
2022-11-30 17:58:04 +01:00
- example: P3TNH8mvv14fm
in: query
name: user_key
2022-11-19 15:13:47 +01:00
type: string
- description: ' '
in: body
name: post_body
schema:
2022-11-30 17:58:04 +01:00
$ref: '#/definitions/handler.SendMessage.combined'
- example: qhnUbKcLgp6tg
in: formData
2022-11-20 21:15:06 +01:00
name: chan_key
type: string
2022-11-30 17:58:04 +01:00
- example: test
in: formData
2022-11-20 21:15:06 +01:00
name: channel
type: string
2022-11-30 17:58:04 +01:00
- example: This is a message
in: formData
2022-11-20 21:15:06 +01:00
name: content
type: string
2022-11-30 17:58:04 +01:00
- example: db8b0e6a-a08c-4646
in: formData
2022-11-20 21:15:06 +01:00
name: msg_id
type: string
2022-11-30 17:58:04 +01:00
- enum:
- 0
- 1
- 2
example: 1
in: formData
2022-11-20 21:15:06 +01:00
name: priority
type: integer
2022-11-30 17:58:04 +01:00
- example: example-server
in: formData
name: sender_name
type: string
2022-11-30 17:58:04 +01:00
- example: 1669824037
in: formData
2022-11-20 21:15:06 +01:00
name: timestamp
type: number
2022-11-30 17:58:04 +01:00
- example: Hello World
in: formData
2022-11-20 21:15:06 +01:00
name: title
type: string
2022-11-30 17:58:04 +01:00
- example: 7725
in: formData
2022-11-20 21:15:06 +01:00
name: user_id
type: integer
2022-11-30 17:58:04 +01:00
- example: P3TNH8mvv14fm
in: formData
2022-11-20 21:15:06 +01:00
name: user_key
type: string
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-19 15:13:47 +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-19 15:13:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
2022-11-20 00:19:41 +01:00
"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-19 15:13:47 +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-19 15:13:47 +01:00
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Send a new message
2022-11-23 19:32:23 +01:00
tags:
- External
2022-11-20 03:06:08 +01:00
/send.php:
post:
deprecated: true
description: All parameter can be set via query-parameter or form-data body.
Only UserID, UserKey and Title are required
parameters:
- in: query
name: content
type: string
- in: query
name: msg_id
type: string
2022-11-20 03:06:08 +01:00
- in: query
name: priority
type: integer
- in: query
name: timestamp
2022-11-20 03:06:08 +01:00
type: number
- in: query
name: title
type: string
- in: query
name: user_id
2022-11-20 03:06:08 +01:00
type: integer
- in: query
name: user_key
2022-11-20 03:06:08 +01:00
type: string
- in: formData
name: content
type: string
2022-11-30 17:58:04 +01:00
- in: formData
name: msg_id
type: string
2022-11-20 03:06:08 +01:00
- in: formData
name: priority
type: integer
- in: formData
2022-11-30 17:58:04 +01:00
name: timestamp
2022-11-20 03:06:08 +01:00
type: number
- in: formData
name: title
type: string
- in: formData
2022-11-30 17:58:04 +01:00
name: user_id
2022-11-20 03:06:08 +01:00
type: integer
- in: formData
2022-11-30 17:58:04 +01:00
name: user_key
2022-11-20 03:06:08 +01:00
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/handler.sendMessageInternal.response'
"400":
description: Bad Request
schema:
$ref: '#/definitions/ginresp.apiError'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/ginresp.apiError'
"403":
description: Forbidden
schema:
$ref: '#/definitions/ginresp.apiError'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/ginresp.apiError'
summary: Send a new message (compatibility)
2022-11-23 19:32:23 +01:00
tags:
- External
2022-11-13 19:17:07 +01:00
swagger: "2.0"
2022-11-23 19:32:23 +01:00
tags:
- name: External
- name: API-v1
- name: API-v2
2022-11-30 17:58:04 +01:00
- name: Common