clear-skies 2.0.5__py3-none-any.whl → 2.0.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of clear-skies might be problematic. Click here for more details.

Files changed (252) hide show
  1. {clear_skies-2.0.5.dist-info → clear_skies-2.0.6.dist-info}/METADATA +1 -1
  2. clear_skies-2.0.6.dist-info/RECORD +251 -0
  3. clearskies/__init__.py +61 -0
  4. clearskies/action.py +7 -0
  5. clearskies/authentication/__init__.py +15 -0
  6. clearskies/authentication/authentication.py +46 -0
  7. clearskies/authentication/authorization.py +16 -0
  8. clearskies/authentication/authorization_pass_through.py +20 -0
  9. clearskies/authentication/jwks.py +163 -0
  10. clearskies/authentication/public.py +5 -0
  11. clearskies/authentication/secret_bearer.py +553 -0
  12. clearskies/autodoc/__init__.py +8 -0
  13. clearskies/autodoc/formats/__init__.py +5 -0
  14. clearskies/autodoc/formats/oai3_json/__init__.py +7 -0
  15. clearskies/autodoc/formats/oai3_json/oai3_json.py +87 -0
  16. clearskies/autodoc/formats/oai3_json/oai3_schema_resolver.py +15 -0
  17. clearskies/autodoc/formats/oai3_json/parameter.py +35 -0
  18. clearskies/autodoc/formats/oai3_json/request.py +68 -0
  19. clearskies/autodoc/formats/oai3_json/response.py +28 -0
  20. clearskies/autodoc/formats/oai3_json/schema/__init__.py +11 -0
  21. clearskies/autodoc/formats/oai3_json/schema/array.py +9 -0
  22. clearskies/autodoc/formats/oai3_json/schema/default.py +13 -0
  23. clearskies/autodoc/formats/oai3_json/schema/enum.py +7 -0
  24. clearskies/autodoc/formats/oai3_json/schema/object.py +35 -0
  25. clearskies/autodoc/formats/oai3_json/test.json +1985 -0
  26. clearskies/autodoc/py.typed +0 -0
  27. clearskies/autodoc/request/__init__.py +15 -0
  28. clearskies/autodoc/request/header.py +6 -0
  29. clearskies/autodoc/request/json_body.py +6 -0
  30. clearskies/autodoc/request/parameter.py +8 -0
  31. clearskies/autodoc/request/request.py +47 -0
  32. clearskies/autodoc/request/url_parameter.py +6 -0
  33. clearskies/autodoc/request/url_path.py +6 -0
  34. clearskies/autodoc/response/__init__.py +5 -0
  35. clearskies/autodoc/response/response.py +9 -0
  36. clearskies/autodoc/schema/__init__.py +31 -0
  37. clearskies/autodoc/schema/array.py +10 -0
  38. clearskies/autodoc/schema/base64.py +8 -0
  39. clearskies/autodoc/schema/boolean.py +5 -0
  40. clearskies/autodoc/schema/date.py +5 -0
  41. clearskies/autodoc/schema/datetime.py +5 -0
  42. clearskies/autodoc/schema/double.py +5 -0
  43. clearskies/autodoc/schema/enum.py +17 -0
  44. clearskies/autodoc/schema/integer.py +6 -0
  45. clearskies/autodoc/schema/long.py +5 -0
  46. clearskies/autodoc/schema/number.py +6 -0
  47. clearskies/autodoc/schema/object.py +13 -0
  48. clearskies/autodoc/schema/password.py +5 -0
  49. clearskies/autodoc/schema/schema.py +11 -0
  50. clearskies/autodoc/schema/string.py +5 -0
  51. clearskies/backends/__init__.py +65 -0
  52. clearskies/backends/api_backend.py +1178 -0
  53. clearskies/backends/backend.py +136 -0
  54. clearskies/backends/cursor_backend.py +335 -0
  55. clearskies/backends/memory_backend.py +797 -0
  56. clearskies/backends/secrets_backend.py +106 -0
  57. clearskies/column.py +1233 -0
  58. clearskies/columns/__init__.py +71 -0
  59. clearskies/columns/audit.py +206 -0
  60. clearskies/columns/belongs_to_id.py +483 -0
  61. clearskies/columns/belongs_to_model.py +132 -0
  62. clearskies/columns/belongs_to_self.py +105 -0
  63. clearskies/columns/boolean.py +113 -0
  64. clearskies/columns/category_tree.py +275 -0
  65. clearskies/columns/category_tree_ancestors.py +51 -0
  66. clearskies/columns/category_tree_children.py +127 -0
  67. clearskies/columns/category_tree_descendants.py +48 -0
  68. clearskies/columns/created.py +95 -0
  69. clearskies/columns/created_by_authorization_data.py +116 -0
  70. clearskies/columns/created_by_header.py +99 -0
  71. clearskies/columns/created_by_ip.py +92 -0
  72. clearskies/columns/created_by_routing_data.py +97 -0
  73. clearskies/columns/created_by_user_agent.py +92 -0
  74. clearskies/columns/date.py +234 -0
  75. clearskies/columns/datetime.py +282 -0
  76. clearskies/columns/email.py +76 -0
  77. clearskies/columns/float.py +153 -0
  78. clearskies/columns/has_many.py +505 -0
  79. clearskies/columns/has_many_self.py +56 -0
  80. clearskies/columns/has_one.py +14 -0
  81. clearskies/columns/integer.py +160 -0
  82. clearskies/columns/json.py +128 -0
  83. clearskies/columns/many_to_many_ids.py +337 -0
  84. clearskies/columns/many_to_many_ids_with_data.py +274 -0
  85. clearskies/columns/many_to_many_models.py +158 -0
  86. clearskies/columns/many_to_many_pivots.py +134 -0
  87. clearskies/columns/phone.py +159 -0
  88. clearskies/columns/select.py +92 -0
  89. clearskies/columns/string.py +102 -0
  90. clearskies/columns/timestamp.py +164 -0
  91. clearskies/columns/updated.py +110 -0
  92. clearskies/columns/uuid.py +86 -0
  93. clearskies/configs/README.md +105 -0
  94. clearskies/configs/__init__.py +162 -0
  95. clearskies/configs/actions.py +43 -0
  96. clearskies/configs/any.py +13 -0
  97. clearskies/configs/any_dict.py +22 -0
  98. clearskies/configs/any_dict_or_callable.py +23 -0
  99. clearskies/configs/authentication.py +23 -0
  100. clearskies/configs/authorization.py +23 -0
  101. clearskies/configs/boolean.py +16 -0
  102. clearskies/configs/boolean_or_callable.py +18 -0
  103. clearskies/configs/callable_config.py +18 -0
  104. clearskies/configs/columns.py +34 -0
  105. clearskies/configs/conditions.py +30 -0
  106. clearskies/configs/config.py +24 -0
  107. clearskies/configs/datetime.py +18 -0
  108. clearskies/configs/datetime_or_callable.py +19 -0
  109. clearskies/configs/endpoint.py +23 -0
  110. clearskies/configs/endpoint_list.py +29 -0
  111. clearskies/configs/float.py +16 -0
  112. clearskies/configs/float_or_callable.py +18 -0
  113. clearskies/configs/integer.py +16 -0
  114. clearskies/configs/integer_or_callable.py +18 -0
  115. clearskies/configs/joins.py +30 -0
  116. clearskies/configs/list_any_dict.py +30 -0
  117. clearskies/configs/list_any_dict_or_callable.py +31 -0
  118. clearskies/configs/model_class.py +35 -0
  119. clearskies/configs/model_column.py +65 -0
  120. clearskies/configs/model_columns.py +56 -0
  121. clearskies/configs/model_destination_name.py +25 -0
  122. clearskies/configs/model_to_id_column.py +43 -0
  123. clearskies/configs/readable_model_column.py +9 -0
  124. clearskies/configs/readable_model_columns.py +9 -0
  125. clearskies/configs/schema.py +23 -0
  126. clearskies/configs/searchable_model_columns.py +9 -0
  127. clearskies/configs/security_headers.py +39 -0
  128. clearskies/configs/select.py +26 -0
  129. clearskies/configs/select_list.py +47 -0
  130. clearskies/configs/string.py +29 -0
  131. clearskies/configs/string_dict.py +32 -0
  132. clearskies/configs/string_list.py +32 -0
  133. clearskies/configs/string_list_or_callable.py +35 -0
  134. clearskies/configs/string_or_callable.py +18 -0
  135. clearskies/configs/timedelta.py +18 -0
  136. clearskies/configs/timezone.py +18 -0
  137. clearskies/configs/url.py +23 -0
  138. clearskies/configs/validators.py +45 -0
  139. clearskies/configs/writeable_model_column.py +9 -0
  140. clearskies/configs/writeable_model_columns.py +9 -0
  141. clearskies/configurable.py +76 -0
  142. clearskies/contexts/__init__.py +11 -0
  143. clearskies/contexts/cli.py +117 -0
  144. clearskies/contexts/context.py +98 -0
  145. clearskies/contexts/wsgi.py +76 -0
  146. clearskies/contexts/wsgi_ref.py +82 -0
  147. clearskies/decorators.py +33 -0
  148. clearskies/di/__init__.py +14 -0
  149. clearskies/di/additional_config.py +130 -0
  150. clearskies/di/additional_config_auto_import.py +17 -0
  151. clearskies/di/di.py +973 -0
  152. clearskies/di/inject/__init__.py +23 -0
  153. clearskies/di/inject/by_class.py +21 -0
  154. clearskies/di/inject/by_name.py +18 -0
  155. clearskies/di/inject/di.py +13 -0
  156. clearskies/di/inject/environment.py +14 -0
  157. clearskies/di/inject/input_output.py +20 -0
  158. clearskies/di/inject/now.py +13 -0
  159. clearskies/di/inject/requests.py +13 -0
  160. clearskies/di/inject/secrets.py +14 -0
  161. clearskies/di/inject/utcnow.py +13 -0
  162. clearskies/di/inject/uuid.py +15 -0
  163. clearskies/di/injectable.py +29 -0
  164. clearskies/di/injectable_properties.py +131 -0
  165. clearskies/di/test_module/__init__.py +6 -0
  166. clearskies/di/test_module/another_module/__init__.py +2 -0
  167. clearskies/di/test_module/module_class.py +5 -0
  168. clearskies/end.py +183 -0
  169. clearskies/endpoint.py +1314 -0
  170. clearskies/endpoint_group.py +336 -0
  171. clearskies/endpoints/__init__.py +25 -0
  172. clearskies/endpoints/advanced_search.py +526 -0
  173. clearskies/endpoints/callable.py +388 -0
  174. clearskies/endpoints/create.py +205 -0
  175. clearskies/endpoints/delete.py +139 -0
  176. clearskies/endpoints/get.py +271 -0
  177. clearskies/endpoints/health_check.py +183 -0
  178. clearskies/endpoints/list.py +574 -0
  179. clearskies/endpoints/restful_api.py +427 -0
  180. clearskies/endpoints/schema.py +189 -0
  181. clearskies/endpoints/simple_search.py +286 -0
  182. clearskies/endpoints/update.py +193 -0
  183. clearskies/environment.py +104 -0
  184. clearskies/exceptions/__init__.py +19 -0
  185. clearskies/exceptions/authentication.py +2 -0
  186. clearskies/exceptions/authorization.py +2 -0
  187. clearskies/exceptions/client_error.py +2 -0
  188. clearskies/exceptions/input_errors.py +4 -0
  189. clearskies/exceptions/missing_dependency.py +2 -0
  190. clearskies/exceptions/moved_permanently.py +3 -0
  191. clearskies/exceptions/moved_temporarily.py +3 -0
  192. clearskies/exceptions/not_found.py +2 -0
  193. clearskies/functional/__init__.py +7 -0
  194. clearskies/functional/routing.py +92 -0
  195. clearskies/functional/string.py +112 -0
  196. clearskies/functional/validations.py +76 -0
  197. clearskies/input_outputs/__init__.py +13 -0
  198. clearskies/input_outputs/cli.py +171 -0
  199. clearskies/input_outputs/exceptions/__init__.py +2 -0
  200. clearskies/input_outputs/exceptions/cli_input_error.py +2 -0
  201. clearskies/input_outputs/exceptions/cli_not_found.py +2 -0
  202. clearskies/input_outputs/headers.py +45 -0
  203. clearskies/input_outputs/input_output.py +138 -0
  204. clearskies/input_outputs/programmatic.py +69 -0
  205. clearskies/input_outputs/py.typed +0 -0
  206. clearskies/input_outputs/wsgi.py +77 -0
  207. clearskies/model.py +1922 -0
  208. clearskies/py.typed +0 -0
  209. clearskies/query/__init__.py +12 -0
  210. clearskies/query/condition.py +223 -0
  211. clearskies/query/join.py +136 -0
  212. clearskies/query/query.py +196 -0
  213. clearskies/query/sort.py +27 -0
  214. clearskies/schema.py +82 -0
  215. clearskies/secrets/__init__.py +6 -0
  216. clearskies/secrets/additional_configs/__init__.py +32 -0
  217. clearskies/secrets/additional_configs/mysql_connection_dynamic_producer.py +61 -0
  218. clearskies/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +160 -0
  219. clearskies/secrets/akeyless.py +182 -0
  220. clearskies/secrets/exceptions/__init__.py +1 -0
  221. clearskies/secrets/exceptions/not_found.py +2 -0
  222. clearskies/secrets/secrets.py +38 -0
  223. clearskies/security_header.py +15 -0
  224. clearskies/security_headers/__init__.py +11 -0
  225. clearskies/security_headers/cache_control.py +67 -0
  226. clearskies/security_headers/cors.py +50 -0
  227. clearskies/security_headers/csp.py +94 -0
  228. clearskies/security_headers/hsts.py +22 -0
  229. clearskies/security_headers/x_content_type_options.py +0 -0
  230. clearskies/security_headers/x_frame_options.py +0 -0
  231. clearskies/test_base.py +8 -0
  232. clearskies/typing.py +11 -0
  233. clearskies/validator.py +37 -0
  234. clearskies/validators/__init__.py +33 -0
  235. clearskies/validators/after_column.py +62 -0
  236. clearskies/validators/before_column.py +13 -0
  237. clearskies/validators/in_the_future.py +32 -0
  238. clearskies/validators/in_the_future_at_least.py +11 -0
  239. clearskies/validators/in_the_future_at_most.py +10 -0
  240. clearskies/validators/in_the_past.py +32 -0
  241. clearskies/validators/in_the_past_at_least.py +10 -0
  242. clearskies/validators/in_the_past_at_most.py +10 -0
  243. clearskies/validators/maximum_length.py +26 -0
  244. clearskies/validators/maximum_value.py +29 -0
  245. clearskies/validators/minimum_length.py +26 -0
  246. clearskies/validators/minimum_value.py +29 -0
  247. clearskies/validators/required.py +34 -0
  248. clearskies/validators/timedelta.py +59 -0
  249. clearskies/validators/unique.py +30 -0
  250. clear_skies-2.0.5.dist-info/RECORD +0 -4
  251. {clear_skies-2.0.5.dist-info → clear_skies-2.0.6.dist-info}/WHEEL +0 -0
  252. {clear_skies-2.0.5.dist-info → clear_skies-2.0.6.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,1985 @@
1
+ {
2
+ "components": {
3
+ "schemas": {
4
+ "status": {
5
+ "properties": {
6
+ "name": {
7
+ "type": "string"
8
+ }
9
+ },
10
+ "type": "object"
11
+ },
12
+ "user": {
13
+ "properties": {
14
+ "age": {
15
+ "format": "int32",
16
+ "type": "integer"
17
+ },
18
+ "name": {
19
+ "type": "string"
20
+ }
21
+ },
22
+ "type": "object"
23
+ }
24
+ },
25
+ "securitySchemes": {
26
+ "ApiKey": {
27
+ "in": "header",
28
+ "name": "authorization",
29
+ "type": "apiKey"
30
+ }
31
+ }
32
+ },
33
+ "info": {
34
+ "title": "Auto generated by clearskies",
35
+ "version": "1.0"
36
+ },
37
+ "openapi": "3.0.0",
38
+ "paths": {
39
+ "/statuses": {
40
+ "get": {
41
+ "parameters": [
42
+ {
43
+ "description": "The number of records to return",
44
+ "in": "query",
45
+ "name": "limit",
46
+ "required": false,
47
+ "schema": {
48
+ "format": "int32",
49
+ "type": "integer"
50
+ }
51
+ },
52
+ {
53
+ "description": "The zero-indexed record number to start listing results from",
54
+ "in": "query",
55
+ "name": "start",
56
+ "required": false,
57
+ "schema": {
58
+ "format": "int32",
59
+ "type": "integer"
60
+ }
61
+ },
62
+ {
63
+ "description": "Column to sort by",
64
+ "in": "query",
65
+ "name": "sort",
66
+ "required": false,
67
+ "schema": {
68
+ "enum": [
69
+ "name",
70
+ null
71
+ ],
72
+ "nullable": true,
73
+ "type": "string"
74
+ }
75
+ },
76
+ {
77
+ "description": "Direction to sort",
78
+ "in": "query",
79
+ "name": "direction",
80
+ "required": false,
81
+ "schema": {
82
+ "enum": [
83
+ "asc",
84
+ "desc",
85
+ null
86
+ ],
87
+ "nullable": true,
88
+ "type": "string"
89
+ }
90
+ }
91
+ ],
92
+ "responses": {
93
+ "200": {
94
+ "content": {
95
+ "application/json": {
96
+ "schema": {
97
+ "properties": {
98
+ "data": {
99
+ "items": {
100
+ "$ref": "#/components/schemas/status",
101
+ "type": "object"
102
+ },
103
+ "type": "array"
104
+ },
105
+ "error": {
106
+ "type": "string"
107
+ },
108
+ "input_errors": {
109
+ "properties": {},
110
+ "type": "object"
111
+ },
112
+ "pagination": {
113
+ "properties": {
114
+ "limit": {
115
+ "example": 100,
116
+ "format": "int32",
117
+ "type": "integer"
118
+ },
119
+ "next_page": {
120
+ "properties": {
121
+ "start": {
122
+ "format": "int32",
123
+ "type": "integer"
124
+ }
125
+ },
126
+ "type": "object"
127
+ },
128
+ "number_results": {
129
+ "example": 10,
130
+ "format": "int32",
131
+ "type": "integer"
132
+ }
133
+ },
134
+ "type": "object"
135
+ },
136
+ "status": {
137
+ "example": "success",
138
+ "type": "string"
139
+ }
140
+ },
141
+ "type": "object"
142
+ }
143
+ }
144
+ },
145
+ "description": "The matching status records"
146
+ },
147
+ "400": {
148
+ "content": {
149
+ "application/json": {
150
+ "schema": {
151
+ "properties": {
152
+ "data": {
153
+ "properties": {},
154
+ "type": "object"
155
+ },
156
+ "error": {
157
+ "example": "User readable error message",
158
+ "type": "string"
159
+ },
160
+ "input_errors": {
161
+ "properties": {},
162
+ "type": "object"
163
+ },
164
+ "pagination": {
165
+ "properties": {},
166
+ "type": "object"
167
+ },
168
+ "status": {
169
+ "example": "error",
170
+ "type": "string"
171
+ }
172
+ },
173
+ "type": "object"
174
+ }
175
+ }
176
+ },
177
+ "description": "Invalid Call"
178
+ },
179
+ "401": {
180
+ "content": {
181
+ "application/json": {
182
+ "schema": {
183
+ "properties": {
184
+ "data": {
185
+ "properties": {},
186
+ "type": "object"
187
+ },
188
+ "error": {
189
+ "example": "User readable error message",
190
+ "type": "string"
191
+ },
192
+ "input_errors": {
193
+ "properties": {},
194
+ "type": "object"
195
+ },
196
+ "pagination": {
197
+ "properties": {},
198
+ "type": "object"
199
+ },
200
+ "status": {
201
+ "example": "error",
202
+ "type": "string"
203
+ }
204
+ },
205
+ "type": "object"
206
+ }
207
+ }
208
+ },
209
+ "description": "Access Denied"
210
+ }
211
+ },
212
+ "security": [
213
+ {
214
+ "ApiKey": []
215
+ }
216
+ ],
217
+ "summary": "Fetch the list of current status records"
218
+ }
219
+ },
220
+ "/statuses/search": {
221
+ "post": {
222
+ "parameters": [],
223
+ "requestBody": {
224
+ "content": {
225
+ "application/json": {
226
+ "schema": {
227
+ "properties": {
228
+ "limit": {
229
+ "format": "int32",
230
+ "type": "integer"
231
+ },
232
+ "sort": {
233
+ "items": {
234
+ "properties": {
235
+ "column": {
236
+ "enum": [
237
+ "name",
238
+ null
239
+ ],
240
+ "nullable": true,
241
+ "type": "string"
242
+ },
243
+ "direction": {
244
+ "enum": [
245
+ "asc",
246
+ "desc",
247
+ null
248
+ ],
249
+ "nullable": true,
250
+ "type": "string"
251
+ }
252
+ },
253
+ "type": "object"
254
+ },
255
+ "type": "array"
256
+ },
257
+ "start": {
258
+ "format": "int32",
259
+ "type": "integer"
260
+ },
261
+ "where": {
262
+ "items": {
263
+ "properties": {
264
+ "column": {
265
+ "enum": [
266
+ "name",
267
+ null
268
+ ],
269
+ "nullable": true,
270
+ "type": "string"
271
+ },
272
+ "operator": {
273
+ "enum": [
274
+ "<=>",
275
+ "!=",
276
+ "<=",
277
+ ">=",
278
+ ">",
279
+ "<",
280
+ "=",
281
+ "in",
282
+ "is not null",
283
+ "is null",
284
+ "is not",
285
+ "is",
286
+ "like",
287
+ null
288
+ ],
289
+ "nullable": true,
290
+ "type": "string"
291
+ },
292
+ "value": {
293
+ "example": "Jane",
294
+ "type": "string"
295
+ }
296
+ },
297
+ "type": "object"
298
+ },
299
+ "type": "array"
300
+ }
301
+ },
302
+ "type": "object"
303
+ }
304
+ }
305
+ },
306
+ "description": "Fetch the list of current status records",
307
+ "required": false
308
+ },
309
+ "responses": {
310
+ "200": {
311
+ "content": {
312
+ "application/json": {
313
+ "schema": {
314
+ "properties": {
315
+ "data": {
316
+ "items": {
317
+ "$ref": "#/components/schemas/status",
318
+ "type": "object"
319
+ },
320
+ "type": "array"
321
+ },
322
+ "error": {
323
+ "type": "string"
324
+ },
325
+ "input_errors": {
326
+ "properties": {},
327
+ "type": "object"
328
+ },
329
+ "pagination": {
330
+ "properties": {
331
+ "limit": {
332
+ "example": 100,
333
+ "format": "int32",
334
+ "type": "integer"
335
+ },
336
+ "next_page": {
337
+ "properties": {
338
+ "start": {
339
+ "format": "int32",
340
+ "type": "integer"
341
+ }
342
+ },
343
+ "type": "object"
344
+ },
345
+ "number_results": {
346
+ "example": 10,
347
+ "format": "int32",
348
+ "type": "integer"
349
+ }
350
+ },
351
+ "type": "object"
352
+ },
353
+ "status": {
354
+ "example": "success",
355
+ "type": "string"
356
+ }
357
+ },
358
+ "type": "object"
359
+ }
360
+ }
361
+ },
362
+ "description": "The matching status records"
363
+ },
364
+ "400": {
365
+ "content": {
366
+ "application/json": {
367
+ "schema": {
368
+ "properties": {
369
+ "data": {
370
+ "properties": {},
371
+ "type": "object"
372
+ },
373
+ "error": {
374
+ "example": "User readable error message",
375
+ "type": "string"
376
+ },
377
+ "input_errors": {
378
+ "properties": {},
379
+ "type": "object"
380
+ },
381
+ "pagination": {
382
+ "properties": {},
383
+ "type": "object"
384
+ },
385
+ "status": {
386
+ "example": "error",
387
+ "type": "string"
388
+ }
389
+ },
390
+ "type": "object"
391
+ }
392
+ }
393
+ },
394
+ "description": "Invalid Call"
395
+ },
396
+ "401": {
397
+ "content": {
398
+ "application/json": {
399
+ "schema": {
400
+ "properties": {
401
+ "data": {
402
+ "properties": {},
403
+ "type": "object"
404
+ },
405
+ "error": {
406
+ "example": "User readable error message",
407
+ "type": "string"
408
+ },
409
+ "input_errors": {
410
+ "properties": {},
411
+ "type": "object"
412
+ },
413
+ "pagination": {
414
+ "properties": {},
415
+ "type": "object"
416
+ },
417
+ "status": {
418
+ "example": "error",
419
+ "type": "string"
420
+ }
421
+ },
422
+ "type": "object"
423
+ }
424
+ }
425
+ },
426
+ "description": "Access Denied"
427
+ }
428
+ },
429
+ "security": [
430
+ {
431
+ "ApiKey": []
432
+ }
433
+ ],
434
+ "summary": "Fetch the list of current status records"
435
+ }
436
+ },
437
+ "/statuses/{id}": {
438
+ "get": {
439
+ "parameters": [
440
+ {
441
+ "description": "The id of the record to get",
442
+ "in": "path",
443
+ "name": "id",
444
+ "required": true,
445
+ "schema": {
446
+ "type": "string"
447
+ }
448
+ }
449
+ ],
450
+ "responses": {
451
+ "200": {
452
+ "content": {
453
+ "application/json": {
454
+ "schema": {
455
+ "properties": {
456
+ "data": {
457
+ "$ref": "#/components/schemas/status",
458
+ "type": "object"
459
+ },
460
+ "error": {
461
+ "type": "string"
462
+ },
463
+ "input_errors": {
464
+ "properties": {},
465
+ "type": "object"
466
+ },
467
+ "pagination": {
468
+ "properties": {},
469
+ "type": "object"
470
+ },
471
+ "status": {
472
+ "example": "success",
473
+ "type": "string"
474
+ }
475
+ },
476
+ "type": "object"
477
+ }
478
+ }
479
+ },
480
+ "description": "The status record"
481
+ },
482
+ "401": {
483
+ "content": {
484
+ "application/json": {
485
+ "schema": {
486
+ "properties": {
487
+ "data": {
488
+ "properties": {},
489
+ "type": "object"
490
+ },
491
+ "error": {
492
+ "example": "User readable error message",
493
+ "type": "string"
494
+ },
495
+ "input_errors": {
496
+ "properties": {},
497
+ "type": "object"
498
+ },
499
+ "pagination": {
500
+ "properties": {},
501
+ "type": "object"
502
+ },
503
+ "status": {
504
+ "example": "error",
505
+ "type": "string"
506
+ }
507
+ },
508
+ "type": "object"
509
+ }
510
+ }
511
+ },
512
+ "description": "Access Denied"
513
+ },
514
+ "404": {
515
+ "content": {
516
+ "application/json": {
517
+ "schema": {
518
+ "properties": {
519
+ "data": {
520
+ "properties": {},
521
+ "type": "object"
522
+ },
523
+ "error": {
524
+ "example": "User readable error message",
525
+ "type": "string"
526
+ },
527
+ "input_errors": {
528
+ "properties": {},
529
+ "type": "object"
530
+ },
531
+ "pagination": {
532
+ "properties": {},
533
+ "type": "object"
534
+ },
535
+ "status": {
536
+ "example": "error",
537
+ "type": "string"
538
+ }
539
+ },
540
+ "type": "object"
541
+ }
542
+ }
543
+ },
544
+ "description": "Not Found"
545
+ }
546
+ },
547
+ "security": [
548
+ {
549
+ "ApiKey": []
550
+ }
551
+ ],
552
+ "summary": "Fetch the status with an id of {id}"
553
+ }
554
+ },
555
+ "/users": {
556
+ "get": {
557
+ "parameters": [
558
+ {
559
+ "description": "The number of records to return",
560
+ "in": "query",
561
+ "name": "limit",
562
+ "required": false,
563
+ "schema": {
564
+ "format": "int32",
565
+ "type": "integer"
566
+ }
567
+ },
568
+ {
569
+ "description": "The zero-indexed record number to start listing results from",
570
+ "in": "query",
571
+ "name": "start",
572
+ "required": false,
573
+ "schema": {
574
+ "format": "int32",
575
+ "type": "integer"
576
+ }
577
+ },
578
+ {
579
+ "description": "Column to sort by",
580
+ "in": "query",
581
+ "name": "sort",
582
+ "required": false,
583
+ "schema": {
584
+ "enum": [
585
+ "name",
586
+ "age",
587
+ null
588
+ ],
589
+ "nullable": true,
590
+ "type": "string"
591
+ }
592
+ },
593
+ {
594
+ "description": "Direction to sort",
595
+ "in": "query",
596
+ "name": "direction",
597
+ "required": false,
598
+ "schema": {
599
+ "enum": [
600
+ "asc",
601
+ "desc",
602
+ null
603
+ ],
604
+ "nullable": true,
605
+ "type": "string"
606
+ }
607
+ }
608
+ ],
609
+ "responses": {
610
+ "200": {
611
+ "content": {
612
+ "application/json": {
613
+ "schema": {
614
+ "properties": {
615
+ "data": {
616
+ "items": {
617
+ "$ref": "#/components/schemas/user",
618
+ "type": "object"
619
+ },
620
+ "type": "array"
621
+ },
622
+ "error": {
623
+ "type": "string"
624
+ },
625
+ "input_errors": {
626
+ "properties": {},
627
+ "type": "object"
628
+ },
629
+ "pagination": {
630
+ "properties": {
631
+ "limit": {
632
+ "example": 100,
633
+ "format": "int32",
634
+ "type": "integer"
635
+ },
636
+ "next_page": {
637
+ "properties": {
638
+ "start": {
639
+ "format": "int32",
640
+ "type": "integer"
641
+ }
642
+ },
643
+ "type": "object"
644
+ },
645
+ "number_results": {
646
+ "example": 10,
647
+ "format": "int32",
648
+ "type": "integer"
649
+ }
650
+ },
651
+ "type": "object"
652
+ },
653
+ "status": {
654
+ "example": "success",
655
+ "type": "string"
656
+ }
657
+ },
658
+ "type": "object"
659
+ }
660
+ }
661
+ },
662
+ "description": "The matching user records"
663
+ },
664
+ "400": {
665
+ "content": {
666
+ "application/json": {
667
+ "schema": {
668
+ "properties": {
669
+ "data": {
670
+ "properties": {},
671
+ "type": "object"
672
+ },
673
+ "error": {
674
+ "example": "User readable error message",
675
+ "type": "string"
676
+ },
677
+ "input_errors": {
678
+ "properties": {},
679
+ "type": "object"
680
+ },
681
+ "pagination": {
682
+ "properties": {},
683
+ "type": "object"
684
+ },
685
+ "status": {
686
+ "example": "error",
687
+ "type": "string"
688
+ }
689
+ },
690
+ "type": "object"
691
+ }
692
+ }
693
+ },
694
+ "description": "Invalid Call"
695
+ },
696
+ "401": {
697
+ "content": {
698
+ "application/json": {
699
+ "schema": {
700
+ "properties": {
701
+ "data": {
702
+ "properties": {},
703
+ "type": "object"
704
+ },
705
+ "error": {
706
+ "example": "User readable error message",
707
+ "type": "string"
708
+ },
709
+ "input_errors": {
710
+ "properties": {},
711
+ "type": "object"
712
+ },
713
+ "pagination": {
714
+ "properties": {},
715
+ "type": "object"
716
+ },
717
+ "status": {
718
+ "example": "error",
719
+ "type": "string"
720
+ }
721
+ },
722
+ "type": "object"
723
+ }
724
+ }
725
+ },
726
+ "description": "Access Denied"
727
+ }
728
+ },
729
+ "security": [
730
+ {
731
+ "ApiKey": []
732
+ }
733
+ ],
734
+ "summary": "Fetch the list of current user records"
735
+ },
736
+ "post": {
737
+ "parameters": [],
738
+ "requestBody": {
739
+ "content": {
740
+ "application/json": {
741
+ "schema": {
742
+ "properties": {
743
+ "age": {
744
+ "format": "int32",
745
+ "type": "integer"
746
+ },
747
+ "name": {
748
+ "type": "string"
749
+ }
750
+ },
751
+ "type": "object"
752
+ }
753
+ }
754
+ },
755
+ "description": "Create a new user",
756
+ "required": false
757
+ },
758
+ "responses": {
759
+ "200": {
760
+ "content": {
761
+ "application/json": {
762
+ "schema": {
763
+ "properties": {
764
+ "data": {
765
+ "properties": {},
766
+ "type": "object"
767
+ },
768
+ "error": {
769
+ "type": "string"
770
+ },
771
+ "input_errors": {
772
+ "properties": {
773
+ "[COLUMN_NAME]": {
774
+ "example": "User friendly error message",
775
+ "type": "string"
776
+ }
777
+ },
778
+ "type": "object"
779
+ },
780
+ "pagination": {
781
+ "properties": {},
782
+ "type": "object"
783
+ },
784
+ "status": {
785
+ "example": "input_errors",
786
+ "type": "string"
787
+ }
788
+ },
789
+ "type": "object"
790
+ }
791
+ }
792
+ },
793
+ "description": "Invalid client-side input"
794
+ },
795
+ "401": {
796
+ "content": {
797
+ "application/json": {
798
+ "schema": {
799
+ "properties": {
800
+ "data": {
801
+ "properties": {},
802
+ "type": "object"
803
+ },
804
+ "error": {
805
+ "example": "User readable error message",
806
+ "type": "string"
807
+ },
808
+ "input_errors": {
809
+ "properties": {},
810
+ "type": "object"
811
+ },
812
+ "pagination": {
813
+ "properties": {},
814
+ "type": "object"
815
+ },
816
+ "status": {
817
+ "example": "error",
818
+ "type": "string"
819
+ }
820
+ },
821
+ "type": "object"
822
+ }
823
+ }
824
+ },
825
+ "description": "Access Denied"
826
+ },
827
+ "404": {
828
+ "content": {
829
+ "application/json": {
830
+ "schema": {
831
+ "properties": {
832
+ "data": {
833
+ "properties": {},
834
+ "type": "object"
835
+ },
836
+ "error": {
837
+ "example": "User readable error message",
838
+ "type": "string"
839
+ },
840
+ "input_errors": {
841
+ "properties": {},
842
+ "type": "object"
843
+ },
844
+ "pagination": {
845
+ "properties": {},
846
+ "type": "object"
847
+ },
848
+ "status": {
849
+ "example": "error",
850
+ "type": "string"
851
+ }
852
+ },
853
+ "type": "object"
854
+ }
855
+ }
856
+ },
857
+ "description": "Not Found"
858
+ }
859
+ },
860
+ "security": [
861
+ {
862
+ "ApiKey": []
863
+ }
864
+ ],
865
+ "summary": "Create a new user"
866
+ }
867
+ },
868
+ "/users/search": {
869
+ "post": {
870
+ "parameters": [],
871
+ "requestBody": {
872
+ "content": {
873
+ "application/json": {
874
+ "schema": {
875
+ "properties": {
876
+ "limit": {
877
+ "format": "int32",
878
+ "type": "integer"
879
+ },
880
+ "sort": {
881
+ "items": {
882
+ "properties": {
883
+ "column": {
884
+ "enum": [
885
+ "name",
886
+ "age",
887
+ null
888
+ ],
889
+ "nullable": true,
890
+ "type": "string"
891
+ },
892
+ "direction": {
893
+ "enum": [
894
+ "asc",
895
+ "desc",
896
+ null
897
+ ],
898
+ "nullable": true,
899
+ "type": "string"
900
+ }
901
+ },
902
+ "type": "object"
903
+ },
904
+ "type": "array"
905
+ },
906
+ "start": {
907
+ "format": "int32",
908
+ "type": "integer"
909
+ },
910
+ "where": {
911
+ "items": {
912
+ "properties": {
913
+ "column": {
914
+ "enum": [
915
+ "name",
916
+ null
917
+ ],
918
+ "nullable": true,
919
+ "type": "string"
920
+ },
921
+ "operator": {
922
+ "enum": [
923
+ "<=>",
924
+ "!=",
925
+ "<=",
926
+ ">=",
927
+ ">",
928
+ "<",
929
+ "=",
930
+ "in",
931
+ "is not null",
932
+ "is null",
933
+ "is not",
934
+ "is",
935
+ "like",
936
+ null
937
+ ],
938
+ "nullable": true,
939
+ "type": "string"
940
+ },
941
+ "value": {
942
+ "example": "Jane",
943
+ "type": "string"
944
+ }
945
+ },
946
+ "type": "object"
947
+ },
948
+ "type": "array"
949
+ }
950
+ },
951
+ "type": "object"
952
+ }
953
+ }
954
+ },
955
+ "description": "Fetch the list of current user records",
956
+ "required": false
957
+ },
958
+ "responses": {
959
+ "200": {
960
+ "content": {
961
+ "application/json": {
962
+ "schema": {
963
+ "properties": {
964
+ "data": {
965
+ "items": {
966
+ "$ref": "#/components/schemas/user",
967
+ "type": "object"
968
+ },
969
+ "type": "array"
970
+ },
971
+ "error": {
972
+ "type": "string"
973
+ },
974
+ "input_errors": {
975
+ "properties": {},
976
+ "type": "object"
977
+ },
978
+ "pagination": {
979
+ "properties": {
980
+ "limit": {
981
+ "example": 100,
982
+ "format": "int32",
983
+ "type": "integer"
984
+ },
985
+ "next_page": {
986
+ "properties": {
987
+ "start": {
988
+ "format": "int32",
989
+ "type": "integer"
990
+ }
991
+ },
992
+ "type": "object"
993
+ },
994
+ "number_results": {
995
+ "example": 10,
996
+ "format": "int32",
997
+ "type": "integer"
998
+ }
999
+ },
1000
+ "type": "object"
1001
+ },
1002
+ "status": {
1003
+ "example": "success",
1004
+ "type": "string"
1005
+ }
1006
+ },
1007
+ "type": "object"
1008
+ }
1009
+ }
1010
+ },
1011
+ "description": "The matching user records"
1012
+ },
1013
+ "400": {
1014
+ "content": {
1015
+ "application/json": {
1016
+ "schema": {
1017
+ "properties": {
1018
+ "data": {
1019
+ "properties": {},
1020
+ "type": "object"
1021
+ },
1022
+ "error": {
1023
+ "example": "User readable error message",
1024
+ "type": "string"
1025
+ },
1026
+ "input_errors": {
1027
+ "properties": {},
1028
+ "type": "object"
1029
+ },
1030
+ "pagination": {
1031
+ "properties": {},
1032
+ "type": "object"
1033
+ },
1034
+ "status": {
1035
+ "example": "error",
1036
+ "type": "string"
1037
+ }
1038
+ },
1039
+ "type": "object"
1040
+ }
1041
+ }
1042
+ },
1043
+ "description": "Invalid Call"
1044
+ },
1045
+ "401": {
1046
+ "content": {
1047
+ "application/json": {
1048
+ "schema": {
1049
+ "properties": {
1050
+ "data": {
1051
+ "properties": {},
1052
+ "type": "object"
1053
+ },
1054
+ "error": {
1055
+ "example": "User readable error message",
1056
+ "type": "string"
1057
+ },
1058
+ "input_errors": {
1059
+ "properties": {},
1060
+ "type": "object"
1061
+ },
1062
+ "pagination": {
1063
+ "properties": {},
1064
+ "type": "object"
1065
+ },
1066
+ "status": {
1067
+ "example": "error",
1068
+ "type": "string"
1069
+ }
1070
+ },
1071
+ "type": "object"
1072
+ }
1073
+ }
1074
+ },
1075
+ "description": "Access Denied"
1076
+ }
1077
+ },
1078
+ "security": [
1079
+ {
1080
+ "ApiKey": []
1081
+ }
1082
+ ],
1083
+ "summary": "Fetch the list of current user records"
1084
+ }
1085
+ },
1086
+ "/users/{id}": {
1087
+ "delete": {
1088
+ "parameters": [
1089
+ {
1090
+ "description": "The id of the record to delete.",
1091
+ "in": "path",
1092
+ "name": "id",
1093
+ "required": true,
1094
+ "schema": {
1095
+ "format": "int32",
1096
+ "type": "integer"
1097
+ }
1098
+ }
1099
+ ],
1100
+ "responses": {
1101
+ "200": {
1102
+ "content": {
1103
+ "application/json": {
1104
+ "schema": {
1105
+ "properties": {
1106
+ "data": {
1107
+ "properties": {},
1108
+ "type": "object"
1109
+ },
1110
+ "error": {
1111
+ "type": "string"
1112
+ },
1113
+ "input_errors": {
1114
+ "properties": {},
1115
+ "type": "object"
1116
+ },
1117
+ "pagination": {
1118
+ "properties": {},
1119
+ "type": "object"
1120
+ },
1121
+ "status": {
1122
+ "example": "success",
1123
+ "type": "string"
1124
+ }
1125
+ },
1126
+ "type": "object"
1127
+ }
1128
+ }
1129
+ },
1130
+ "description": "The user was deleted"
1131
+ },
1132
+ "401": {
1133
+ "content": {
1134
+ "application/json": {
1135
+ "schema": {
1136
+ "properties": {
1137
+ "data": {
1138
+ "properties": {},
1139
+ "type": "object"
1140
+ },
1141
+ "error": {
1142
+ "example": "User readable error message",
1143
+ "type": "string"
1144
+ },
1145
+ "input_errors": {
1146
+ "properties": {},
1147
+ "type": "object"
1148
+ },
1149
+ "pagination": {
1150
+ "properties": {},
1151
+ "type": "object"
1152
+ },
1153
+ "status": {
1154
+ "example": "error",
1155
+ "type": "string"
1156
+ }
1157
+ },
1158
+ "type": "object"
1159
+ }
1160
+ }
1161
+ },
1162
+ "description": "Access Denied"
1163
+ },
1164
+ "404": {
1165
+ "content": {
1166
+ "application/json": {
1167
+ "schema": {
1168
+ "properties": {
1169
+ "data": {
1170
+ "properties": {},
1171
+ "type": "object"
1172
+ },
1173
+ "error": {
1174
+ "example": "User readable error message",
1175
+ "type": "string"
1176
+ },
1177
+ "input_errors": {
1178
+ "properties": {},
1179
+ "type": "object"
1180
+ },
1181
+ "pagination": {
1182
+ "properties": {},
1183
+ "type": "object"
1184
+ },
1185
+ "status": {
1186
+ "example": "error",
1187
+ "type": "string"
1188
+ }
1189
+ },
1190
+ "type": "object"
1191
+ }
1192
+ }
1193
+ },
1194
+ "description": "Not Found"
1195
+ }
1196
+ },
1197
+ "security": [
1198
+ {
1199
+ "ApiKey": []
1200
+ }
1201
+ ],
1202
+ "summary": "Delete the user with an id of {id}"
1203
+ },
1204
+ "get": {
1205
+ "parameters": [
1206
+ {
1207
+ "description": "The id of the record to get",
1208
+ "in": "path",
1209
+ "name": "id",
1210
+ "required": true,
1211
+ "schema": {
1212
+ "type": "string"
1213
+ }
1214
+ }
1215
+ ],
1216
+ "responses": {
1217
+ "200": {
1218
+ "content": {
1219
+ "application/json": {
1220
+ "schema": {
1221
+ "properties": {
1222
+ "data": {
1223
+ "$ref": "#/components/schemas/user",
1224
+ "type": "object"
1225
+ },
1226
+ "error": {
1227
+ "type": "string"
1228
+ },
1229
+ "input_errors": {
1230
+ "properties": {},
1231
+ "type": "object"
1232
+ },
1233
+ "pagination": {
1234
+ "properties": {},
1235
+ "type": "object"
1236
+ },
1237
+ "status": {
1238
+ "example": "success",
1239
+ "type": "string"
1240
+ }
1241
+ },
1242
+ "type": "object"
1243
+ }
1244
+ }
1245
+ },
1246
+ "description": "The user record"
1247
+ },
1248
+ "401": {
1249
+ "content": {
1250
+ "application/json": {
1251
+ "schema": {
1252
+ "properties": {
1253
+ "data": {
1254
+ "properties": {},
1255
+ "type": "object"
1256
+ },
1257
+ "error": {
1258
+ "example": "User readable error message",
1259
+ "type": "string"
1260
+ },
1261
+ "input_errors": {
1262
+ "properties": {},
1263
+ "type": "object"
1264
+ },
1265
+ "pagination": {
1266
+ "properties": {},
1267
+ "type": "object"
1268
+ },
1269
+ "status": {
1270
+ "example": "error",
1271
+ "type": "string"
1272
+ }
1273
+ },
1274
+ "type": "object"
1275
+ }
1276
+ }
1277
+ },
1278
+ "description": "Access Denied"
1279
+ },
1280
+ "404": {
1281
+ "content": {
1282
+ "application/json": {
1283
+ "schema": {
1284
+ "properties": {
1285
+ "data": {
1286
+ "properties": {},
1287
+ "type": "object"
1288
+ },
1289
+ "error": {
1290
+ "example": "User readable error message",
1291
+ "type": "string"
1292
+ },
1293
+ "input_errors": {
1294
+ "properties": {},
1295
+ "type": "object"
1296
+ },
1297
+ "pagination": {
1298
+ "properties": {},
1299
+ "type": "object"
1300
+ },
1301
+ "status": {
1302
+ "example": "error",
1303
+ "type": "string"
1304
+ }
1305
+ },
1306
+ "type": "object"
1307
+ }
1308
+ }
1309
+ },
1310
+ "description": "Not Found"
1311
+ }
1312
+ },
1313
+ "security": [
1314
+ {
1315
+ "ApiKey": []
1316
+ }
1317
+ ],
1318
+ "summary": "Fetch the user with an id of {id}"
1319
+ },
1320
+ "put": {
1321
+ "parameters": [
1322
+ {
1323
+ "description": "The id of the record in question.",
1324
+ "in": "path",
1325
+ "name": "id",
1326
+ "required": true,
1327
+ "schema": {
1328
+ "type": "string"
1329
+ }
1330
+ }
1331
+ ],
1332
+ "requestBody": {
1333
+ "content": {
1334
+ "application/json": {
1335
+ "schema": {
1336
+ "properties": {
1337
+ "age": {
1338
+ "format": "int32",
1339
+ "type": "integer"
1340
+ },
1341
+ "name": {
1342
+ "type": "string"
1343
+ }
1344
+ },
1345
+ "type": "object"
1346
+ }
1347
+ }
1348
+ },
1349
+ "description": "Update the user with an id of {id}",
1350
+ "required": false
1351
+ },
1352
+ "responses": {
1353
+ "200": {
1354
+ "content": {
1355
+ "application/json": {
1356
+ "schema": {
1357
+ "properties": {
1358
+ "data": {
1359
+ "properties": {},
1360
+ "type": "object"
1361
+ },
1362
+ "error": {
1363
+ "type": "string"
1364
+ },
1365
+ "input_errors": {
1366
+ "properties": {
1367
+ "[COLUMN_NAME]": {
1368
+ "example": "User friendly error message",
1369
+ "type": "string"
1370
+ }
1371
+ },
1372
+ "type": "object"
1373
+ },
1374
+ "pagination": {
1375
+ "properties": {},
1376
+ "type": "object"
1377
+ },
1378
+ "status": {
1379
+ "example": "input_errors",
1380
+ "type": "string"
1381
+ }
1382
+ },
1383
+ "type": "object"
1384
+ }
1385
+ }
1386
+ },
1387
+ "description": "Invalid client-side input"
1388
+ },
1389
+ "401": {
1390
+ "content": {
1391
+ "application/json": {
1392
+ "schema": {
1393
+ "properties": {
1394
+ "data": {
1395
+ "properties": {},
1396
+ "type": "object"
1397
+ },
1398
+ "error": {
1399
+ "example": "User readable error message",
1400
+ "type": "string"
1401
+ },
1402
+ "input_errors": {
1403
+ "properties": {},
1404
+ "type": "object"
1405
+ },
1406
+ "pagination": {
1407
+ "properties": {},
1408
+ "type": "object"
1409
+ },
1410
+ "status": {
1411
+ "example": "error",
1412
+ "type": "string"
1413
+ }
1414
+ },
1415
+ "type": "object"
1416
+ }
1417
+ }
1418
+ },
1419
+ "description": "Access Denied"
1420
+ },
1421
+ "404": {
1422
+ "content": {
1423
+ "application/json": {
1424
+ "schema": {
1425
+ "properties": {
1426
+ "data": {
1427
+ "properties": {},
1428
+ "type": "object"
1429
+ },
1430
+ "error": {
1431
+ "example": "User readable error message",
1432
+ "type": "string"
1433
+ },
1434
+ "input_errors": {
1435
+ "properties": {},
1436
+ "type": "object"
1437
+ },
1438
+ "pagination": {
1439
+ "properties": {},
1440
+ "type": "object"
1441
+ },
1442
+ "status": {
1443
+ "example": "error",
1444
+ "type": "string"
1445
+ }
1446
+ },
1447
+ "type": "object"
1448
+ }
1449
+ }
1450
+ },
1451
+ "description": "Not Found"
1452
+ }
1453
+ },
1454
+ "security": [
1455
+ {
1456
+ "ApiKey": []
1457
+ }
1458
+ ],
1459
+ "summary": "Update the user with an id of {id}"
1460
+ }
1461
+ },
1462
+ "/v1/statuses": {
1463
+ "get": {
1464
+ "parameters": [
1465
+ {
1466
+ "description": "The number of records to return",
1467
+ "in": "query",
1468
+ "name": "limit",
1469
+ "required": false,
1470
+ "schema": {
1471
+ "format": "int32",
1472
+ "type": "integer"
1473
+ }
1474
+ },
1475
+ {
1476
+ "description": "The zero-indexed record number to start listing results from",
1477
+ "in": "query",
1478
+ "name": "start",
1479
+ "required": false,
1480
+ "schema": {
1481
+ "format": "int32",
1482
+ "type": "integer"
1483
+ }
1484
+ },
1485
+ {
1486
+ "description": "Column to sort by",
1487
+ "in": "query",
1488
+ "name": "sort",
1489
+ "required": false,
1490
+ "schema": {
1491
+ "enum": [
1492
+ "name",
1493
+ null
1494
+ ],
1495
+ "nullable": true,
1496
+ "type": "string"
1497
+ }
1498
+ },
1499
+ {
1500
+ "description": "Direction to sort",
1501
+ "in": "query",
1502
+ "name": "direction",
1503
+ "required": false,
1504
+ "schema": {
1505
+ "enum": [
1506
+ "asc",
1507
+ "desc",
1508
+ null
1509
+ ],
1510
+ "nullable": true,
1511
+ "type": "string"
1512
+ }
1513
+ }
1514
+ ],
1515
+ "responses": {
1516
+ "200": {
1517
+ "content": {
1518
+ "application/json": {
1519
+ "schema": {
1520
+ "properties": {
1521
+ "data": {
1522
+ "items": {
1523
+ "$ref": "#/components/schemas/status",
1524
+ "type": "object"
1525
+ },
1526
+ "type": "array"
1527
+ },
1528
+ "error": {
1529
+ "type": "string"
1530
+ },
1531
+ "input_errors": {
1532
+ "properties": {},
1533
+ "type": "object"
1534
+ },
1535
+ "pagination": {
1536
+ "properties": {
1537
+ "limit": {
1538
+ "example": 100,
1539
+ "format": "int32",
1540
+ "type": "integer"
1541
+ },
1542
+ "next_page": {
1543
+ "properties": {
1544
+ "start": {
1545
+ "format": "int32",
1546
+ "type": "integer"
1547
+ }
1548
+ },
1549
+ "type": "object"
1550
+ },
1551
+ "number_results": {
1552
+ "example": 10,
1553
+ "format": "int32",
1554
+ "type": "integer"
1555
+ }
1556
+ },
1557
+ "type": "object"
1558
+ },
1559
+ "status": {
1560
+ "example": "success",
1561
+ "type": "string"
1562
+ }
1563
+ },
1564
+ "type": "object"
1565
+ }
1566
+ }
1567
+ },
1568
+ "description": "The matching status records"
1569
+ },
1570
+ "400": {
1571
+ "content": {
1572
+ "application/json": {
1573
+ "schema": {
1574
+ "properties": {
1575
+ "data": {
1576
+ "properties": {},
1577
+ "type": "object"
1578
+ },
1579
+ "error": {
1580
+ "example": "User readable error message",
1581
+ "type": "string"
1582
+ },
1583
+ "input_errors": {
1584
+ "properties": {},
1585
+ "type": "object"
1586
+ },
1587
+ "pagination": {
1588
+ "properties": {},
1589
+ "type": "object"
1590
+ },
1591
+ "status": {
1592
+ "example": "error",
1593
+ "type": "string"
1594
+ }
1595
+ },
1596
+ "type": "object"
1597
+ }
1598
+ }
1599
+ },
1600
+ "description": "Invalid Call"
1601
+ },
1602
+ "401": {
1603
+ "content": {
1604
+ "application/json": {
1605
+ "schema": {
1606
+ "properties": {
1607
+ "data": {
1608
+ "properties": {},
1609
+ "type": "object"
1610
+ },
1611
+ "error": {
1612
+ "example": "User readable error message",
1613
+ "type": "string"
1614
+ },
1615
+ "input_errors": {
1616
+ "properties": {},
1617
+ "type": "object"
1618
+ },
1619
+ "pagination": {
1620
+ "properties": {},
1621
+ "type": "object"
1622
+ },
1623
+ "status": {
1624
+ "example": "error",
1625
+ "type": "string"
1626
+ }
1627
+ },
1628
+ "type": "object"
1629
+ }
1630
+ }
1631
+ },
1632
+ "description": "Access Denied"
1633
+ }
1634
+ },
1635
+ "security": [
1636
+ {
1637
+ "ApiKey": []
1638
+ }
1639
+ ],
1640
+ "summary": "Fetch the list of current status records"
1641
+ }
1642
+ },
1643
+ "/v1/statuses/search": {
1644
+ "post": {
1645
+ "parameters": [],
1646
+ "requestBody": {
1647
+ "content": {
1648
+ "application/json": {
1649
+ "schema": {
1650
+ "properties": {
1651
+ "limit": {
1652
+ "format": "int32",
1653
+ "type": "integer"
1654
+ },
1655
+ "sort": {
1656
+ "items": {
1657
+ "properties": {
1658
+ "column": {
1659
+ "enum": [
1660
+ "name",
1661
+ null
1662
+ ],
1663
+ "nullable": true,
1664
+ "type": "string"
1665
+ },
1666
+ "direction": {
1667
+ "enum": [
1668
+ "asc",
1669
+ "desc",
1670
+ null
1671
+ ],
1672
+ "nullable": true,
1673
+ "type": "string"
1674
+ }
1675
+ },
1676
+ "type": "object"
1677
+ },
1678
+ "type": "array"
1679
+ },
1680
+ "start": {
1681
+ "format": "int32",
1682
+ "type": "integer"
1683
+ },
1684
+ "where": {
1685
+ "items": {
1686
+ "properties": {
1687
+ "column": {
1688
+ "enum": [
1689
+ "name",
1690
+ null
1691
+ ],
1692
+ "nullable": true,
1693
+ "type": "string"
1694
+ },
1695
+ "operator": {
1696
+ "enum": [
1697
+ "<=>",
1698
+ "!=",
1699
+ "<=",
1700
+ ">=",
1701
+ ">",
1702
+ "<",
1703
+ "=",
1704
+ "in",
1705
+ "is not null",
1706
+ "is null",
1707
+ "is not",
1708
+ "is",
1709
+ "like",
1710
+ null
1711
+ ],
1712
+ "nullable": true,
1713
+ "type": "string"
1714
+ },
1715
+ "value": {
1716
+ "example": "Jane",
1717
+ "type": "string"
1718
+ }
1719
+ },
1720
+ "type": "object"
1721
+ },
1722
+ "type": "array"
1723
+ }
1724
+ },
1725
+ "type": "object"
1726
+ }
1727
+ }
1728
+ },
1729
+ "description": "Fetch the list of current status records",
1730
+ "required": false
1731
+ },
1732
+ "responses": {
1733
+ "200": {
1734
+ "content": {
1735
+ "application/json": {
1736
+ "schema": {
1737
+ "properties": {
1738
+ "data": {
1739
+ "items": {
1740
+ "$ref": "#/components/schemas/status",
1741
+ "type": "object"
1742
+ },
1743
+ "type": "array"
1744
+ },
1745
+ "error": {
1746
+ "type": "string"
1747
+ },
1748
+ "input_errors": {
1749
+ "properties": {},
1750
+ "type": "object"
1751
+ },
1752
+ "pagination": {
1753
+ "properties": {
1754
+ "limit": {
1755
+ "example": 100,
1756
+ "format": "int32",
1757
+ "type": "integer"
1758
+ },
1759
+ "next_page": {
1760
+ "properties": {
1761
+ "start": {
1762
+ "format": "int32",
1763
+ "type": "integer"
1764
+ }
1765
+ },
1766
+ "type": "object"
1767
+ },
1768
+ "number_results": {
1769
+ "example": 10,
1770
+ "format": "int32",
1771
+ "type": "integer"
1772
+ }
1773
+ },
1774
+ "type": "object"
1775
+ },
1776
+ "status": {
1777
+ "example": "success",
1778
+ "type": "string"
1779
+ }
1780
+ },
1781
+ "type": "object"
1782
+ }
1783
+ }
1784
+ },
1785
+ "description": "The matching status records"
1786
+ },
1787
+ "400": {
1788
+ "content": {
1789
+ "application/json": {
1790
+ "schema": {
1791
+ "properties": {
1792
+ "data": {
1793
+ "properties": {},
1794
+ "type": "object"
1795
+ },
1796
+ "error": {
1797
+ "example": "User readable error message",
1798
+ "type": "string"
1799
+ },
1800
+ "input_errors": {
1801
+ "properties": {},
1802
+ "type": "object"
1803
+ },
1804
+ "pagination": {
1805
+ "properties": {},
1806
+ "type": "object"
1807
+ },
1808
+ "status": {
1809
+ "example": "error",
1810
+ "type": "string"
1811
+ }
1812
+ },
1813
+ "type": "object"
1814
+ }
1815
+ }
1816
+ },
1817
+ "description": "Invalid Call"
1818
+ },
1819
+ "401": {
1820
+ "content": {
1821
+ "application/json": {
1822
+ "schema": {
1823
+ "properties": {
1824
+ "data": {
1825
+ "properties": {},
1826
+ "type": "object"
1827
+ },
1828
+ "error": {
1829
+ "example": "User readable error message",
1830
+ "type": "string"
1831
+ },
1832
+ "input_errors": {
1833
+ "properties": {},
1834
+ "type": "object"
1835
+ },
1836
+ "pagination": {
1837
+ "properties": {},
1838
+ "type": "object"
1839
+ },
1840
+ "status": {
1841
+ "example": "error",
1842
+ "type": "string"
1843
+ }
1844
+ },
1845
+ "type": "object"
1846
+ }
1847
+ }
1848
+ },
1849
+ "description": "Access Denied"
1850
+ }
1851
+ },
1852
+ "security": [
1853
+ {
1854
+ "ApiKey": []
1855
+ }
1856
+ ],
1857
+ "summary": "Fetch the list of current status records"
1858
+ }
1859
+ },
1860
+ "/v1/statuses/{id}": {
1861
+ "get": {
1862
+ "parameters": [
1863
+ {
1864
+ "description": "The id of the record to get",
1865
+ "in": "path",
1866
+ "name": "id",
1867
+ "required": true,
1868
+ "schema": {
1869
+ "type": "string"
1870
+ }
1871
+ }
1872
+ ],
1873
+ "responses": {
1874
+ "200": {
1875
+ "content": {
1876
+ "application/json": {
1877
+ "schema": {
1878
+ "properties": {
1879
+ "data": {
1880
+ "$ref": "#/components/schemas/status",
1881
+ "type": "object"
1882
+ },
1883
+ "error": {
1884
+ "type": "string"
1885
+ },
1886
+ "input_errors": {
1887
+ "properties": {},
1888
+ "type": "object"
1889
+ },
1890
+ "pagination": {
1891
+ "properties": {},
1892
+ "type": "object"
1893
+ },
1894
+ "status": {
1895
+ "example": "success",
1896
+ "type": "string"
1897
+ }
1898
+ },
1899
+ "type": "object"
1900
+ }
1901
+ }
1902
+ },
1903
+ "description": "The status record"
1904
+ },
1905
+ "401": {
1906
+ "content": {
1907
+ "application/json": {
1908
+ "schema": {
1909
+ "properties": {
1910
+ "data": {
1911
+ "properties": {},
1912
+ "type": "object"
1913
+ },
1914
+ "error": {
1915
+ "example": "User readable error message",
1916
+ "type": "string"
1917
+ },
1918
+ "input_errors": {
1919
+ "properties": {},
1920
+ "type": "object"
1921
+ },
1922
+ "pagination": {
1923
+ "properties": {},
1924
+ "type": "object"
1925
+ },
1926
+ "status": {
1927
+ "example": "error",
1928
+ "type": "string"
1929
+ }
1930
+ },
1931
+ "type": "object"
1932
+ }
1933
+ }
1934
+ },
1935
+ "description": "Access Denied"
1936
+ },
1937
+ "404": {
1938
+ "content": {
1939
+ "application/json": {
1940
+ "schema": {
1941
+ "properties": {
1942
+ "data": {
1943
+ "properties": {},
1944
+ "type": "object"
1945
+ },
1946
+ "error": {
1947
+ "example": "User readable error message",
1948
+ "type": "string"
1949
+ },
1950
+ "input_errors": {
1951
+ "properties": {},
1952
+ "type": "object"
1953
+ },
1954
+ "pagination": {
1955
+ "properties": {},
1956
+ "type": "object"
1957
+ },
1958
+ "status": {
1959
+ "example": "error",
1960
+ "type": "string"
1961
+ }
1962
+ },
1963
+ "type": "object"
1964
+ }
1965
+ }
1966
+ },
1967
+ "description": "Not Found"
1968
+ }
1969
+ },
1970
+ "security": [
1971
+ {
1972
+ "ApiKey": []
1973
+ }
1974
+ ],
1975
+ "summary": "Fetch the status with an id of {id}"
1976
+ }
1977
+ }
1978
+ },
1979
+ "servers": [
1980
+ {
1981
+ "description": "Production",
1982
+ "url": "https://production.example.com/v1"
1983
+ }
1984
+ ]
1985
+ }