Repository navigation
Expand file tree
/
Copy pathnotification-api-v1.yaml
More file actions
149 lines (141 loc) · 3.84 KB
/
Copy pathnotification-api-v1.yaml
File metadata and controls
149 lines (141 loc) · 3.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
openapi: 3.0.3
info:
title: Notification API
description: Provide (push) notification functionality to users and devices.
version: 1.0.0
servers:
- url: /v1/notification
paths:
/device:
post:
summary: Register a new device to receive notifications.
tags:
- device
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceRegistration'
responses:
204:
description: Device registration successful
400:
description: Bad request (e.g. the device is already registered, the device token contains `/`, `?`, `#`, `%` or whitespace, or no subject in the token)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
401:
description: No valid access token
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/device/{deviceId}:
get:
summary: Check if the device is correctly registered for push notifications
parameters:
- in: path
name: deviceId
schema:
type: string
required: true
tags:
- device
responses:
403:
description: Device does not belong to user
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
404:
description: Device registration does not exist
200:
description: Device registration exists
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceRegistrationCheckResponse'
delete:
summary: Delete an existing device registration.
parameters:
- in: path
name: deviceId
schema:
type: string
required: true
tags:
- device
responses:
403:
description: Device does not belong to user
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
404:
description: Device registration does not exist
204:
description: Device registration was removed
/message/device-test:
post:
summary: Send a hello-world notification to all registered devices of the current user
tags:
- message
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/TestMessageResponse'
components:
schemas:
DeviceRegistration:
type: object
required:
- deviceToken
properties:
deviceName:
type: string
deviceToken:
type: string
TestMessageResponse:
type: object
required:
- outcome
properties:
outcome:
$ref: '#/components/schemas/CreateNotificationData'
CreateNotificationData:
type: object
required:
- success
- messageCreated
- messageReference
properties:
success:
type: boolean
messageCreated:
type: boolean
description: Whether a push message was created (false e.g. when the user has no registered devices).
messageReference:
type: string
nullable: true
description: Reference to the created push message, or null when none was created.
DeviceRegistrationCheckResponse:
type: object
properties:
deviceToken:
type: string
deviceName:
type: string
Error:
type: object
properties:
errorCode:
type: string
errorMessage:
type: string