forked from cahyofireblocks/tech-writer-test
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-spec
More file actions
253 lines (253 loc) · 7.46 KB
/
test-spec
File metadata and controls
253 lines (253 loc) · 7.46 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
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
openapi: 3.0.0
info:
title: Technical Writer Tasks API
description: API for managing technical writer tasks.
version: 1.0.0
servers:
- url: https://api.techwriter.xyz
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
schemas:
Task:
type: object
properties:
task_id:
type: integer
description: This is a new description.
example: 17
title:
type: string
description: The name of the task.
example: Update POST /task endpoint request body
description:
type: string
description: Detailed information about a task.
example: Complete the request body section for POST/task endpoint.
status:
$ref: '#/components/schemas/StatusEnum'
category:
$ref: '#/components/schemas/CategoryEnum'
last_updated:
type: string
format: date
description: The date of the latest edit to the task.
example: '2025-04-03'
connected_tasks:
type: array
items:
$ref: '#/components/schemas/ConnectedTask'
TaskInput:
type: object
properties:
title:
type: string
description: The name of the task.
example: Update POST /task endpoint request body
description:
type: string
description: Detailed information about a task.
example: Complete the request body section for POST/task endpoint.
status:
$ref: '#/components/schemas/StatusEnum'
category:
$ref: '#/components/schemas/CategoryEnum'
connected_tasks:
type: array
description: An array of tasks related to the identified task.
items:
type: integer
example: 12
required:
- title
- description
ConnectedTask:
type: object
description: A task related to the identified task.
properties:
task_id:
type: integer
description: The id of the identified task.
example: 12
title:
type: string
description: The name of the task.
example: Validate Technical Writer Tasks API OAS
description:
type: string
description: Detailed information about a task.
example: Correct errors in the existing TWT API OAS to validate the specification file.
status:
$ref: '#/components/schemas/StatusEnum'
StatusEnum:
type: string
enum:
- OPEN
- IN_PROGRESS
- COMPLETED
description: The position of the task in the workflow.
default: OPEN
CategoryEnum:
type: string
enum:
- API_DOCS
- HELP_CENTER
- SDK_DOCS
- OAS_FILE
description: A label used for organizing and tracking a task.
default: API_DOCS
Error:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
- message
responses:
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Bad Request
message: The request does not match the expected schema or has incorrect fields.
NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Not Found
message: The requested resource cannot be found.
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Unauthorized
message: The API key is missing or invalid.
headers:
WWW_Authenticate:
schema:
type: string
TooManyRequests:
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Too Many Requests
message: This endpoint has received too many requests from the current API key.
security:
- ApiKeyAuth: []
paths:
/tasks:
get:
summary: Get Tech Writer tasks
operationId: getTasks
description: |
Get all current technical writer tasks by status and that's maybe my final change.
parameters:
- name: status
in: query
description: Filter tasks by status.
required: false
schema:
$ref: '#/components/schemas/StatusEnum'
- name: category
in: query
description: Filter tasks by category.
required: false
schema:
$ref: '#/components/schemas/CategoryEnum'
- name: updatedAfter
in: query
description: Filter tasks that have been updated after a specific date (YYYY-MM-DD).
required: false
schema:
type: string
format: date
example: YYYY-MM-DD
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
headers:
X-RateLimit-Limit:
schema:
type: integer
description: Request limit for the current time window.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests left for the current time window.
X-RateLimit-Reset:
schema:
type: string
format: date-time
description: The date/time at which the current rate limit window resets.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
/task:
post:
summary: Add new Tech Writer task
operationId: addTask
description: ->
Create a new technical writer task by status.
requestBody:
required: true
description: Create a new task.
content:
application/json:
schema:
$ref: '#/components/schemas/TaskInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
headers:
X-RateLimit-Limit:
schema:
type: integer
description: Request limit for the current time window.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests left for the current time window.
X-RateLimit-Reset:
schema:
type: string
format: date-time
description: The date/time at which the current rate limit window resets.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'