-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathschema.yaml
287 lines (287 loc) · 8.54 KB
/
schema.yaml
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
openapi: 3.0.0
info:
title: Workers Queue Demo
version: '1.0'
description: 'Edge queue REST API implemented on Cloudflare Workers.'
contact: {}
license:
name: MIT
servers:
- description: Dev
url: 'https://workers-queue-demo.your-account.workers.dev'
paths:
'/queues':
get:
description: 'Lists queues. If you have more than 1,000 queues 1,000 will be returned plus a cursor. The cursor may be used to fetch the next 1,000 queues'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
queues:
type: array
description: Array of queues
items:
$ref: '#/components/schemas/Queue'
cursor:
type: string
example: 06779da6940b431db6e566b4846d64db
description: 'If you have more than 1,000 queues only 1,000 will be returned. Additionally, a cursor will be returned. In this case, you can call this operation again with the cursor value to get the next 1,000 queues.'
required:
- queues
operationId: list-queues
parameters:
- schema:
type: string
in: query
name: cursor
description: 'String used to fetch the next 1,000 queues'
post:
description: Creates a queue
operationId: create-queue
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Queue'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Optional name
example: things todo someday...
visibility_timeout:
type: integer
description: Default is 30 seconds
default: 30
minimum: 0
maximum: 43200
'/queues/{queue_id}':
parameters:
- schema:
type: string
name: queue_id
in: path
required: true
description: 'queue id '
get:
description: Describes a queue
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Queue'
'404':
description: Not Found
operationId: get-queue
delete:
description: Deletes a queue and all messages in it.
operationId: delete-queue
responses:
'200':
description: OK
'404':
description: Not Found
'/queues/{queue_id}/messages':
parameters:
- schema:
type: string
name: queue_id
in: path
required: true
description: 'Queue identifier'
get:
description: Gets messages from a queue
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
messages:
type: array
items:
$ref: '#/components/schemas/PoppedMessage'
required:
- messages
'400':
description: Bad Request
'404':
description: Not Found
operationId: get-messages
parameters:
- schema:
type: integer
default: 1
in: query
name: limit
description: Maximum number of messages to fetch.
- schema:
type: integer
default: 30
minimum: 0
maximum: 43200
in: query
name: visibility_timeout
description: Number of seconds to hide returned messages from other clients. Overrides the queue's visibility timeout for this call.
summary: ''
post:
description: Adds a message to a queue
operationId: create-message
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/MessageMetadata'
'400':
description: Bad Request
'404':
description: Not Found
requestBody:
content:
application/json:
schema:
type: object
properties:
message_body:
type: string
description: Your message body
example: A love letter perhaps...
ttl:
type: number
description: Seconds to leave the message in the queue before expiring. Default is message never expires. NOT IMPLEMENTED!
minimum: 1
required:
- message_body
description: ''
'/queues/{queue_id}/messages/{message_id}':
parameters:
- schema:
type: string
name: queue_id
in: path
required: true
description: Queue identifier
- schema:
type: string
name: message_id
in: path
required: true
description: Message identifier
delete:
description: Deletes a message from a queue
operationId: delete-message
responses:
'200':
description: OK
'400':
description: Bad Request
parameters:
- schema:
type: string
in: query
name: pop_receipt
description: Token proving prior receipt of the message
required: true
components:
schemas:
Message:
title: Message
allOf:
- $ref: '#/components/schemas/MessageMetadata'
- $ref: '#/components/schemas/MessageBody'
Queue:
title: Queue
type: object
description: Metadata about a queue
properties:
queue_id:
type: string
description: Queue identifier
example: 01FMBTJ88TSBVDWGEPWANRK8ZR
name:
type: string
description: Optional name metadata
example: WOPR Tasks
created_time:
type: string
description: ISO 8601 formatted date string
example: '2021-11-13T04:55:03.808Z'
visibility_timeout:
type: integer
description: 'Length of time (in seconds) delivered messages will be invisible to other clients. '
example: 30
default: 30
required:
- queue_id
- created_time
- visibility_timeout
MessageBody:
title: MessageBody
description: The body of the message.
type: object
properties:
message_body:
type: string
description: Your message body as a raw string or perhaps base64 encoded if you'd like
example: SHALL WE PLAY A GAME?
required:
- message_body
MessageMetadata:
title: MessageMetadata
type: object
description: 'Necessary metadata about a message in the queue. Returned when adding a new message to a queue. '
properties:
queue_id:
type: string
example: 01FM074SR6ZEM89Z91WH1MZTDX
description: Queue identifier for this message
message_id:
type: string
description: Message identifier
example: 01FMBT32NYPA2FASH9REZZ3DBV
inserted_time:
type: string
description: 'When the message was added to the queue, ISO 8601 formatted'
example: '2021-11-13T04:55:03.808Z'
required:
- queue_id
- message_id
- inserted_time
PoppedMessage:
title: PoppedMessage
allOf:
- $ref: '#/components/schemas/MessageMetadata'
- type: object
properties:
pop_receipt:
type: string
description: Token certifying receipt of the message
example: 01FMBT0ZCBNMYWV320FBMPGZJ9
visibility_timeout:
type: number
minimum: 0
maximum: 43200
default: 0
example: 30
description: Seconds this message will remain hidden from other clients.
required:
- pop_receipt
- visibility_timeout
- $ref: '#/components/schemas/MessageBody'
description: A message returned from the get-messages operation