spree_api 4.2.7 → 4.3.0.rc1

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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +14 -1
  3. data/app/controllers/concerns/spree/api/v2/product_list_includes.rb +23 -0
  4. data/app/controllers/spree/api/v1/classifications_controller.rb +4 -3
  5. data/app/controllers/spree/api/v1/orders_controller.rb +5 -1
  6. data/app/controllers/spree/api/v1/products_controller.rb +2 -2
  7. data/app/controllers/spree/api/v1/taxonomies_controller.rb +1 -1
  8. data/app/controllers/spree/api/v2/base_controller.rb +29 -6
  9. data/app/controllers/spree/api/v2/platform/addresses_controller.rb +19 -0
  10. data/app/controllers/spree/api/v2/platform/classifications_controller.rb +43 -0
  11. data/app/controllers/spree/api/v2/platform/cms_pages_controller.rb +15 -0
  12. data/app/controllers/spree/api/v2/platform/cms_sections_controller.rb +34 -0
  13. data/app/controllers/spree/api/v2/platform/countries_controller.rb +19 -0
  14. data/app/controllers/spree/api/v2/platform/menu_items_controller.rb +35 -0
  15. data/app/controllers/spree/api/v2/platform/menus_controller.rb +19 -0
  16. data/app/controllers/spree/api/v2/platform/option_types_controller.rb +15 -0
  17. data/app/controllers/spree/api/v2/platform/option_values_controller.rb +19 -0
  18. data/app/controllers/spree/api/v2/platform/products_controller.rb +21 -0
  19. data/app/controllers/spree/api/v2/platform/resource_controller.rb +112 -0
  20. data/app/controllers/spree/api/v2/platform/taxons_controller.rb +30 -0
  21. data/app/controllers/spree/api/v2/platform/users_controller.rb +28 -0
  22. data/app/controllers/spree/api/v2/resource_controller.rb +18 -6
  23. data/app/controllers/spree/api/v2/storefront/account/addresses_controller.rb +2 -14
  24. data/app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb +13 -11
  25. data/app/controllers/spree/api/v2/storefront/account/orders_controller.rb +2 -2
  26. data/app/controllers/spree/api/v2/storefront/account_controller.rb +32 -1
  27. data/app/controllers/spree/api/v2/storefront/cart_controller.rb +28 -6
  28. data/app/controllers/spree/api/v2/storefront/checkout_controller.rb +2 -1
  29. data/app/controllers/spree/api/v2/storefront/cms_pages_controller.rb +41 -0
  30. data/app/controllers/spree/api/v2/storefront/countries_controller.rb +9 -14
  31. data/app/controllers/spree/api/v2/storefront/menus_controller.rb +35 -0
  32. data/app/controllers/spree/api/v2/storefront/order_status_controller.rb +1 -1
  33. data/app/controllers/spree/api/v2/storefront/products_controller.rb +6 -12
  34. data/app/controllers/spree/api/v2/storefront/stores_controller.rb +1 -1
  35. data/app/controllers/spree/api/v2/storefront/taxons_controller.rb +7 -8
  36. data/app/helpers/spree/api/v2/display_money_helper.rb +2 -2
  37. data/app/models/spree/api_configuration.rb +1 -0
  38. data/app/models/spree/api_dependencies.rb +19 -5
  39. data/app/serializers/concerns/spree/api/v2/resource_serializer_concern.rb +16 -0
  40. data/app/serializers/spree/api/v2/base_serializer.rb +32 -0
  41. data/app/serializers/spree/api/v2/platform/address_serializer.rb +15 -0
  42. data/app/serializers/spree/api/v2/platform/base_serializer.rb +10 -0
  43. data/app/serializers/spree/api/v2/platform/classification_serializer.rb +14 -0
  44. data/app/serializers/spree/api/v2/platform/cms_page_serializer.rb +13 -0
  45. data/app/serializers/spree/api/v2/platform/cms_section_serializer.rb +11 -0
  46. data/app/serializers/spree/api/v2/platform/country_serializer.rb +13 -0
  47. data/app/serializers/spree/api/v2/platform/image_serializer.rb +15 -0
  48. data/app/serializers/spree/api/v2/platform/menu_item_serializer.rb +22 -0
  49. data/app/serializers/spree/api/v2/platform/menu_serializer.rb +13 -0
  50. data/app/serializers/spree/api/v2/platform/option_type_serializer.rb +13 -0
  51. data/app/serializers/spree/api/v2/platform/option_value_serializer.rb +13 -0
  52. data/app/serializers/spree/api/v2/platform/product_property_serializer.rb +11 -0
  53. data/app/serializers/spree/api/v2/platform/product_serializer.rb +78 -0
  54. data/app/serializers/spree/api/v2/platform/state_serializer.rb +13 -0
  55. data/app/serializers/spree/api/v2/platform/stock_item_serializer.rb +20 -0
  56. data/app/serializers/spree/api/v2/platform/stock_location_serializer.rb +16 -0
  57. data/app/serializers/spree/api/v2/platform/store_serializer.rb +14 -0
  58. data/app/serializers/spree/api/v2/platform/tax_category_serializer.rb +13 -0
  59. data/app/serializers/spree/api/v2/platform/taxon_image_serializer.rb +13 -0
  60. data/app/serializers/spree/api/v2/platform/taxon_serializer.rb +38 -0
  61. data/app/serializers/spree/api/v2/platform/taxonomy_serializer.rb +14 -0
  62. data/app/serializers/spree/api/v2/platform/user_serializer.rb +21 -0
  63. data/app/serializers/spree/api/v2/platform/variant_serializer.rb +57 -0
  64. data/app/serializers/spree/v2/storefront/base_serializer.rb +3 -2
  65. data/app/serializers/spree/v2/storefront/cms_page_serializer.rb +14 -0
  66. data/app/serializers/spree/v2/storefront/cms_section_serializer.rb +28 -0
  67. data/app/serializers/spree/v2/storefront/country_serializer.rb +4 -4
  68. data/app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb +2 -0
  69. data/app/serializers/spree/v2/storefront/menu_item_serializer.rb +37 -0
  70. data/app/serializers/spree/v2/storefront/menu_serializer.rb +13 -0
  71. data/app/serializers/spree/v2/storefront/product_property_serializer.rb +1 -1
  72. data/app/serializers/spree/v2/storefront/product_serializer.rb +4 -1
  73. data/app/serializers/spree/v2/storefront/store_serializer.rb +10 -0
  74. data/app/serializers/spree/v2/storefront/taxon_serializer.rb +6 -5
  75. data/config/initializers/doorkeeper.rb +8 -1
  76. data/config/initializers/rabl.rb +9 -0
  77. data/config/routes.rb +115 -3
  78. data/db/migrate/20210727102516_change_integer_id_columns_type.rb +9 -0
  79. data/docs/oauth/index.yml +2 -2
  80. data/docs/v2/platform/index.yaml +1501 -0
  81. data/docs/v2/storefront/index.yaml +48 -2
  82. data/lib/spree/api/engine.rb +6 -17
  83. data/lib/spree/api/testing_support/v2/base.rb +1 -1
  84. data/lib/spree/api/testing_support/v2/platform_contexts.rb +214 -0
  85. data/lib/spree/api/testing_support/v2/serializers_params.rb +14 -0
  86. data/lib/spree/api.rb +1 -0
  87. data/spree_api.gemspec +3 -0
  88. metadata +101 -11
  89. data/app/assets/javascripts/spree/api/main.js +0 -36
  90. data/app/assets/javascripts/spree/api/storefront/cart.js +0 -49
@@ -0,0 +1,1501 @@
1
+ ---
2
+ openapi: 3.0.1
3
+ info:
4
+ title: Platform API V2
5
+ version: v2
6
+ paths:
7
+ "/api/v2/platform/addresses":
8
+ get:
9
+ summary: Returns a list of Addresses
10
+ tags:
11
+ - Addresses
12
+ security:
13
+ - bearer_auth: []
14
+ parameters:
15
+ - name: page
16
+ in: query
17
+ example: 1
18
+ schema:
19
+ type: integer
20
+ - name: per_page
21
+ in: query
22
+ example: 50
23
+ schema:
24
+ type: integer
25
+ - name: include
26
+ in: query
27
+ descripton: 'Select which associated resources you would like to fetch, see:
28
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
29
+ example: user,country,state
30
+ schema:
31
+ type: string
32
+ - name: filter
33
+ in: query
34
+ descripton: ''
35
+ example: user_id_eq=1&firstname_cont=Joh
36
+ schema:
37
+ type: string
38
+ responses:
39
+ '200':
40
+ description: Records returned
41
+ content:
42
+ application/vnd.api+json:
43
+ examples:
44
+ Example:
45
+ value:
46
+ data:
47
+ - id: '1'
48
+ type: address
49
+ attributes:
50
+ firstname: John
51
+ lastname: Doe
52
+ address1: 1 Lovely Street
53
+ address2: Northwest
54
+ city: Herndon
55
+ zipcode: '35005'
56
+ phone: 555-555-0199
57
+ state_name:
58
+ alternative_phone: 555-555-0199
59
+ company: Company
60
+ created_at: '2021-08-06T06:53:18.846Z'
61
+ updated_at: '2021-08-06T06:53:18.846Z'
62
+ deleted_at:
63
+ label:
64
+ relationships:
65
+ country:
66
+ data:
67
+ id: '1'
68
+ type: country
69
+ state:
70
+ data:
71
+ id: '1'
72
+ type: state
73
+ user:
74
+ data:
75
+ - id: '2'
76
+ type: address
77
+ attributes:
78
+ firstname: John
79
+ lastname: Doe
80
+ address1: 2 Lovely Street
81
+ address2: Northwest
82
+ city: Herndon
83
+ zipcode: '35005'
84
+ phone: 555-555-0199
85
+ state_name:
86
+ alternative_phone: 555-555-0199
87
+ company: Company
88
+ created_at: '2021-08-06T06:53:18.853Z'
89
+ updated_at: '2021-08-06T06:53:18.853Z'
90
+ deleted_at:
91
+ label:
92
+ relationships:
93
+ country:
94
+ data:
95
+ id: '1'
96
+ type: country
97
+ state:
98
+ data:
99
+ id: '2'
100
+ type: state
101
+ user:
102
+ data:
103
+ meta:
104
+ count: 2
105
+ total_count: 2
106
+ total_pages: 1
107
+ links:
108
+ self: http://www.example.com/api/v2/platform/addresses?page=1&per_page=&include=&filter=
109
+ next: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
110
+ prev: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
111
+ last: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
112
+ first: http://www.example.com/api/v2/platform/addresses?include=&page=1&per_page=
113
+ '401':
114
+ description: Authentication Failed
115
+ content:
116
+ application/vnd.api+json:
117
+ examples:
118
+ Example:
119
+ value:
120
+ error: The access token is invalid
121
+ post:
122
+ summary: Creates an Address
123
+ tags:
124
+ - Addresses
125
+ security:
126
+ - bearer_auth: []
127
+ parameters:
128
+ - name: include
129
+ in: query
130
+ descripton: 'Select which associated resources you would like to fetch, see:
131
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
132
+ example: user,country,state
133
+ schema:
134
+ type: string
135
+ responses:
136
+ '201':
137
+ description: record created
138
+ content:
139
+ application/vnd.api+json:
140
+ examples:
141
+ Example:
142
+ value:
143
+ data:
144
+ id: '5'
145
+ type: address
146
+ attributes:
147
+ firstname: John
148
+ lastname: Doe
149
+ address1: 5 Lovely Street
150
+ address2: Northwest
151
+ city: Herndon
152
+ zipcode: '35005'
153
+ phone: 555-555-0199
154
+ state_name:
155
+ alternative_phone: 555-555-0199
156
+ company: Company
157
+ created_at: '2021-08-06T06:53:19.077Z'
158
+ updated_at: '2021-08-06T06:53:19.077Z'
159
+ deleted_at:
160
+ label:
161
+ relationships:
162
+ country:
163
+ data:
164
+ id: '4'
165
+ type: country
166
+ state:
167
+ data:
168
+ id: '5'
169
+ type: state
170
+ user:
171
+ data:
172
+ id: '1'
173
+ type: user
174
+ '422':
175
+ description: invalid request
176
+ content:
177
+ application/vnd.api+json:
178
+ examples:
179
+ Example:
180
+ value:
181
+ error: First Name can't be blank, Last Name can't be blank, Address
182
+ can't be blank, City can't be blank, Country can't be blank,
183
+ Zip Code can't be blank, and Phone can't be blank
184
+ errors:
185
+ firstname:
186
+ - can't be blank
187
+ lastname:
188
+ - can't be blank
189
+ address1:
190
+ - can't be blank
191
+ city:
192
+ - can't be blank
193
+ country:
194
+ - can't be blank
195
+ zipcode:
196
+ - can't be blank
197
+ phone:
198
+ - can't be blank
199
+ requestBody:
200
+ content:
201
+ application/json:
202
+ schema:
203
+ "$ref": "#/components/schemas/address_params"
204
+ "/api/v2/platform/addresses/{id}":
205
+ get:
206
+ summary: Returns an Address
207
+ tags:
208
+ - Addresses
209
+ security:
210
+ - bearer_auth: []
211
+ parameters:
212
+ - name: id
213
+ in: path
214
+ required: true
215
+ schema:
216
+ type: string
217
+ - name: include
218
+ in: query
219
+ descripton: 'Select which associated resources you would like to fetch, see:
220
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
221
+ example: user,country,state
222
+ schema:
223
+ type: string
224
+ responses:
225
+ '200':
226
+ description: Record found
227
+ content:
228
+ application/vnd.api+json:
229
+ examples:
230
+ Example:
231
+ value:
232
+ data:
233
+ id: '6'
234
+ type: address
235
+ attributes:
236
+ firstname: John
237
+ lastname: Doe
238
+ address1: 6 Lovely Street
239
+ address2: Northwest
240
+ city: Herndon
241
+ zipcode: '35005'
242
+ phone: 555-555-0199
243
+ state_name:
244
+ alternative_phone: 555-555-0199
245
+ company: Company
246
+ created_at: '2021-08-06T06:53:19.150Z'
247
+ updated_at: '2021-08-06T06:53:19.150Z'
248
+ deleted_at:
249
+ label:
250
+ relationships:
251
+ country:
252
+ data:
253
+ id: '6'
254
+ type: country
255
+ state:
256
+ data:
257
+ id: '6'
258
+ type: state
259
+ user:
260
+ data:
261
+ '404':
262
+ description: Record not found
263
+ content:
264
+ application/vnd.api+json:
265
+ examples:
266
+ Example:
267
+ value:
268
+ error: The resource you were looking for could not be found.
269
+ '401':
270
+ description: Authentication Failed
271
+ content:
272
+ application/vnd.api+json:
273
+ examples:
274
+ Example:
275
+ value:
276
+ error: The access token is invalid
277
+ put:
278
+ summary: Updates an Address
279
+ tags:
280
+ - Addresses
281
+ security:
282
+ - bearer_auth: []
283
+ parameters:
284
+ - name: id
285
+ in: path
286
+ required: true
287
+ schema:
288
+ type: string
289
+ - name: include
290
+ in: query
291
+ descripton: 'Select which associated resources you would like to fetch, see:
292
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
293
+ example: user,country,state
294
+ schema:
295
+ type: string
296
+ responses:
297
+ '200':
298
+ description: record updated
299
+ content:
300
+ application/vnd.api+json:
301
+ examples:
302
+ Example:
303
+ value:
304
+ data:
305
+ id: '8'
306
+ type: address
307
+ attributes:
308
+ firstname: Jack
309
+ lastname: Doe
310
+ address1: 8 Lovely Street
311
+ address2: Northwest
312
+ city: Herndon
313
+ zipcode: '35005'
314
+ phone: 555-555-0199
315
+ state_name:
316
+ alternative_phone: 555-555-0199
317
+ company: Company
318
+ created_at: '2021-08-06T06:53:19.236Z'
319
+ updated_at: '2021-08-06T06:53:19.247Z'
320
+ deleted_at:
321
+ label:
322
+ relationships:
323
+ country:
324
+ data:
325
+ id: '9'
326
+ type: country
327
+ state:
328
+ data:
329
+ id: '8'
330
+ type: state
331
+ user:
332
+ data:
333
+ '422':
334
+ description: invalid request
335
+ content:
336
+ application/vnd.api+json:
337
+ examples:
338
+ Example:
339
+ value:
340
+ error: First Name can't be blank and Last Name can't be blank
341
+ errors:
342
+ firstname:
343
+ - can't be blank
344
+ lastname:
345
+ - can't be blank
346
+ '404':
347
+ description: Record not found
348
+ content:
349
+ application/vnd.api+json:
350
+ examples:
351
+ Example:
352
+ value:
353
+ error: The resource you were looking for could not be found.
354
+ '401':
355
+ description: Authentication Failed
356
+ content:
357
+ application/vnd.api+json:
358
+ examples:
359
+ Example:
360
+ value:
361
+ error: The access token is invalid
362
+ requestBody:
363
+ content:
364
+ application/json:
365
+ schema:
366
+ "$ref": "#/components/schemas/address_params"
367
+ delete:
368
+ summary: Deletes an Address
369
+ tags:
370
+ - Addresses
371
+ security:
372
+ - bearer_auth: []
373
+ parameters:
374
+ - name: id
375
+ in: path
376
+ required: true
377
+ schema:
378
+ type: string
379
+ responses:
380
+ '204':
381
+ description: Record deleted
382
+ '404':
383
+ description: Record not found
384
+ content:
385
+ application/vnd.api+json:
386
+ examples:
387
+ Example:
388
+ value:
389
+ error: The resource you were looking for could not be found.
390
+ '401':
391
+ description: Authentication Failed
392
+ content:
393
+ application/vnd.api+json:
394
+ examples:
395
+ Example:
396
+ value:
397
+ error: The access token is invalid
398
+ "/api/v2/platform/classifications":
399
+ get:
400
+ summary: Returns a list of Classifications
401
+ tags:
402
+ - Classifications
403
+ security:
404
+ - bearer_auth: []
405
+ parameters:
406
+ - name: page
407
+ in: query
408
+ example: 1
409
+ schema:
410
+ type: integer
411
+ - name: per_page
412
+ in: query
413
+ example: 50
414
+ schema:
415
+ type: integer
416
+ - name: include
417
+ in: query
418
+ descripton: 'Select which associated resources you would like to fetch, see:
419
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
420
+ example: product,taxon
421
+ schema:
422
+ type: string
423
+ - name: filter
424
+ in: query
425
+ descripton: ''
426
+ example: taxon_id_eq=1
427
+ schema:
428
+ type: string
429
+ responses:
430
+ '200':
431
+ description: Records returned
432
+ content:
433
+ application/vnd.api+json:
434
+ examples:
435
+ Example:
436
+ value:
437
+ data:
438
+ - id: '1'
439
+ type: classification
440
+ attributes:
441
+ position: 1
442
+ created_at: '2021-08-06T06:53:19.739Z'
443
+ updated_at: '2021-08-06T06:53:19.739Z'
444
+ relationships:
445
+ product:
446
+ data:
447
+ id: '1'
448
+ type: product
449
+ taxon:
450
+ data:
451
+ id: '2'
452
+ type: taxon
453
+ - id: '2'
454
+ type: classification
455
+ attributes:
456
+ position: 1
457
+ created_at: '2021-08-06T06:53:19.836Z'
458
+ updated_at: '2021-08-06T06:53:19.836Z'
459
+ relationships:
460
+ product:
461
+ data:
462
+ id: '2'
463
+ type: product
464
+ taxon:
465
+ data:
466
+ id: '4'
467
+ type: taxon
468
+ meta:
469
+ count: 2
470
+ total_count: 2
471
+ total_pages: 1
472
+ links:
473
+ self: http://www.example.com/api/v2/platform/classifications?page=1&per_page=&include=&filter=
474
+ next: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
475
+ prev: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
476
+ last: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
477
+ first: http://www.example.com/api/v2/platform/classifications?include=&page=1&per_page=
478
+ '401':
479
+ description: Authentication Failed
480
+ content:
481
+ application/vnd.api+json:
482
+ examples:
483
+ Example:
484
+ value:
485
+ error: The access token is invalid
486
+ post:
487
+ summary: Creates a Classification
488
+ tags:
489
+ - Classifications
490
+ security:
491
+ - bearer_auth: []
492
+ parameters:
493
+ - name: include
494
+ in: query
495
+ descripton: 'Select which associated resources you would like to fetch, see:
496
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
497
+ example: product,taxon
498
+ schema:
499
+ type: string
500
+ responses:
501
+ '201':
502
+ description: record created
503
+ content:
504
+ application/vnd.api+json:
505
+ examples:
506
+ Example:
507
+ value:
508
+ data:
509
+ id: '5'
510
+ type: classification
511
+ attributes:
512
+ position: 1
513
+ created_at: '2021-08-06T06:53:20.242Z'
514
+ updated_at: '2021-08-06T06:53:20.242Z'
515
+ relationships:
516
+ product:
517
+ data:
518
+ id: '5'
519
+ type: product
520
+ taxon:
521
+ data:
522
+ id: '10'
523
+ type: taxon
524
+ '422':
525
+ description: invalid request
526
+ content:
527
+ application/vnd.api+json:
528
+ examples:
529
+ Example:
530
+ value:
531
+ error: Taxon can't be blank and Product can't be blank
532
+ errors:
533
+ taxon:
534
+ - can't be blank
535
+ product:
536
+ - can't be blank
537
+ requestBody:
538
+ content:
539
+ application/json:
540
+ schema:
541
+ "$ref": "#/components/schemas/classification_params"
542
+ "/api/v2/platform/classifications/{id}":
543
+ get:
544
+ summary: Returns a Classification
545
+ tags:
546
+ - Classifications
547
+ security:
548
+ - bearer_auth: []
549
+ parameters:
550
+ - name: id
551
+ in: path
552
+ required: true
553
+ schema:
554
+ type: string
555
+ - name: include
556
+ in: query
557
+ descripton: 'Select which associated resources you would like to fetch, see:
558
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
559
+ example: product,taxon
560
+ schema:
561
+ type: string
562
+ responses:
563
+ '200':
564
+ description: Record found
565
+ content:
566
+ application/vnd.api+json:
567
+ examples:
568
+ Example:
569
+ value:
570
+ data:
571
+ id: '6'
572
+ type: classification
573
+ attributes:
574
+ position: 1
575
+ created_at: '2021-08-06T06:53:20.399Z'
576
+ updated_at: '2021-08-06T06:53:20.399Z'
577
+ relationships:
578
+ product:
579
+ data:
580
+ id: '6'
581
+ type: product
582
+ taxon:
583
+ data:
584
+ id: '12'
585
+ type: taxon
586
+ '404':
587
+ description: Record not found
588
+ content:
589
+ application/vnd.api+json:
590
+ examples:
591
+ Example:
592
+ value:
593
+ error: The resource you were looking for could not be found.
594
+ '401':
595
+ description: Authentication Failed
596
+ content:
597
+ application/vnd.api+json:
598
+ examples:
599
+ Example:
600
+ value:
601
+ error: The access token is invalid
602
+ put:
603
+ summary: Updates a Classification
604
+ tags:
605
+ - Classifications
606
+ security:
607
+ - bearer_auth: []
608
+ parameters:
609
+ - name: id
610
+ in: path
611
+ required: true
612
+ schema:
613
+ type: string
614
+ - name: include
615
+ in: query
616
+ descripton: 'Select which associated resources you would like to fetch, see:
617
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
618
+ example: product,taxon
619
+ schema:
620
+ type: string
621
+ responses:
622
+ '200':
623
+ description: record updated
624
+ content:
625
+ application/vnd.api+json:
626
+ examples:
627
+ Example:
628
+ value:
629
+ data:
630
+ id: '8'
631
+ type: classification
632
+ attributes:
633
+ position: 1
634
+ created_at: '2021-08-06T06:53:20.705Z'
635
+ updated_at: '2021-08-06T06:53:20.705Z'
636
+ relationships:
637
+ product:
638
+ data:
639
+ id: '8'
640
+ type: product
641
+ taxon:
642
+ data:
643
+ id: '16'
644
+ type: taxon
645
+ '422':
646
+ description: invalid request
647
+ content:
648
+ application/vnd.api+json:
649
+ examples:
650
+ Example:
651
+ value:
652
+ error: Product can't be blank
653
+ errors:
654
+ product:
655
+ - can't be blank
656
+ '404':
657
+ description: Record not found
658
+ content:
659
+ application/vnd.api+json:
660
+ examples:
661
+ Example:
662
+ value:
663
+ error: The resource you were looking for could not be found.
664
+ '401':
665
+ description: Authentication Failed
666
+ content:
667
+ application/vnd.api+json:
668
+ examples:
669
+ Example:
670
+ value:
671
+ error: The access token is invalid
672
+ requestBody:
673
+ content:
674
+ application/json:
675
+ schema:
676
+ "$ref": "#/components/schemas/classification_params"
677
+ delete:
678
+ summary: Deletes a Classification
679
+ tags:
680
+ - Classifications
681
+ security:
682
+ - bearer_auth: []
683
+ parameters:
684
+ - name: id
685
+ in: path
686
+ required: true
687
+ schema:
688
+ type: string
689
+ responses:
690
+ '204':
691
+ description: Record deleted
692
+ '404':
693
+ description: Record not found
694
+ content:
695
+ application/vnd.api+json:
696
+ examples:
697
+ Example:
698
+ value:
699
+ error: The resource you were looking for could not be found.
700
+ '401':
701
+ description: Authentication Failed
702
+ content:
703
+ application/vnd.api+json:
704
+ examples:
705
+ Example:
706
+ value:
707
+ error: The access token is invalid
708
+ "/api/v2/platform/classifications/{id}/reposition":
709
+ put:
710
+ summary: Reposition a Classification
711
+ tags:
712
+ - Classifications
713
+ security:
714
+ - bearer_auth: []
715
+ parameters:
716
+ - name: id
717
+ in: path
718
+ required: true
719
+ schema:
720
+ type: string
721
+ - name: include
722
+ in: query
723
+ descripton: 'Select which associated resources you would like to fetch, see:
724
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
725
+ example: product,taxon
726
+ schema:
727
+ type: string
728
+ responses:
729
+ '200':
730
+ description: record updated
731
+ content:
732
+ application/vnd.api+json:
733
+ examples:
734
+ Example:
735
+ value:
736
+ data:
737
+ id: '13'
738
+ type: classification
739
+ attributes:
740
+ position: 2
741
+ created_at: '2021-08-06T06:53:21.437Z'
742
+ updated_at: '2021-08-06T06:53:21.461Z'
743
+ relationships:
744
+ product:
745
+ data:
746
+ id: '13'
747
+ type: product
748
+ taxon:
749
+ data:
750
+ id: '26'
751
+ type: taxon
752
+ '422':
753
+ description: invalid request
754
+ content:
755
+ application/vnd.api+json:
756
+ examples:
757
+ Example:
758
+ value:
759
+ error: is not a number
760
+ errors: {}
761
+ '404':
762
+ description: Record not found
763
+ content:
764
+ application/vnd.api+json:
765
+ examples:
766
+ Example:
767
+ value:
768
+ error: The resource you were looking for could not be found.
769
+ '401':
770
+ description: Authentication Failed
771
+ content:
772
+ application/vnd.api+json:
773
+ examples:
774
+ Example:
775
+ value:
776
+ error: The access token is invalid
777
+ requestBody:
778
+ content:
779
+ application/json:
780
+ schema:
781
+ "$ref": "#/components/schemas/classification_params"
782
+ "/api/v2/platform/countries":
783
+ get:
784
+ summary: Returns a list of Countries
785
+ tags:
786
+ - Countries
787
+ security:
788
+ - bearer_auth: []
789
+ responses:
790
+ '200':
791
+ description: Records returned
792
+ content:
793
+ application/vnd.api+json:
794
+ examples:
795
+ Example:
796
+ value:
797
+ data:
798
+ - id: '34'
799
+ type: country
800
+ attributes:
801
+ iso_name: UNITED STATES
802
+ iso: US
803
+ iso3: IS34
804
+ name: United States of America
805
+ numcode: 840
806
+ states_required: true
807
+ updated_at: '2021-08-06T06:53:21.782Z'
808
+ zipcode_required: true
809
+ created_at: '2021-08-06T06:53:21.782Z'
810
+ relationships:
811
+ states:
812
+ data: []
813
+ - id: '35'
814
+ type: country
815
+ attributes:
816
+ iso_name: ISO_NAME_2
817
+ iso: I2
818
+ iso3: IS35
819
+ name: NAME_2
820
+ numcode: 840
821
+ states_required: false
822
+ updated_at: '2021-08-06T06:53:21.793Z'
823
+ zipcode_required: true
824
+ created_at: '2021-08-06T06:53:21.793Z'
825
+ relationships:
826
+ states:
827
+ data: []
828
+ - id: '36'
829
+ type: country
830
+ attributes:
831
+ iso_name: ISO_NAME_3
832
+ iso: I3
833
+ iso3: IS36
834
+ name: NAME_3
835
+ numcode: 840
836
+ states_required: false
837
+ updated_at: '2021-08-06T06:53:21.796Z'
838
+ zipcode_required: true
839
+ created_at: '2021-08-06T06:53:21.796Z'
840
+ relationships:
841
+ states:
842
+ data: []
843
+ meta:
844
+ count: 3
845
+ total_count: 3
846
+ total_pages: 1
847
+ links:
848
+ self: http://www.example.com/api/v2/platform/countries
849
+ next: http://www.example.com/api/v2/platform/countries?page=1
850
+ prev: http://www.example.com/api/v2/platform/countries?page=1
851
+ last: http://www.example.com/api/v2/platform/countries?page=1
852
+ first: http://www.example.com/api/v2/platform/countries?page=1
853
+ '401':
854
+ description: Authentication Failed
855
+ content:
856
+ application/vnd.api+json:
857
+ examples:
858
+ Example:
859
+ value:
860
+ error: The access token is invalid
861
+ "/api/v2/platform/countries/{id}":
862
+ get:
863
+ summary: Returns a Country
864
+ tags:
865
+ - Countries
866
+ security:
867
+ - bearer_auth: []
868
+ parameters:
869
+ - name: id
870
+ in: path
871
+ required: true
872
+ schema:
873
+ type: string
874
+ responses:
875
+ '200':
876
+ description: Record found
877
+ content:
878
+ application/vnd.api+json:
879
+ examples:
880
+ Example:
881
+ value:
882
+ data:
883
+ id: '41'
884
+ type: country
885
+ attributes:
886
+ iso_name: ISO_NAME_6
887
+ iso: I6
888
+ iso3: IS41
889
+ name: NAME_6
890
+ numcode: 840
891
+ states_required: false
892
+ updated_at: '2021-08-06T06:53:21.864Z'
893
+ zipcode_required: true
894
+ created_at: '2021-08-06T06:53:21.864Z'
895
+ relationships:
896
+ states:
897
+ data: []
898
+ '404':
899
+ description: Record not found
900
+ content:
901
+ application/vnd.api+json:
902
+ examples:
903
+ Example:
904
+ value:
905
+ error: The resource you were looking for could not be found.
906
+ '401':
907
+ description: Authentication Failed
908
+ content:
909
+ application/vnd.api+json:
910
+ examples:
911
+ Example:
912
+ value:
913
+ error: The access token is invalid
914
+ "/api/v2/platform/taxons":
915
+ get:
916
+ summary: Returns a list of Taxons
917
+ tags:
918
+ - Taxons
919
+ security:
920
+ - bearer_auth: []
921
+ parameters:
922
+ - name: page
923
+ in: query
924
+ example: 1
925
+ schema:
926
+ type: integer
927
+ - name: per_page
928
+ in: query
929
+ example: 50
930
+ schema:
931
+ type: integer
932
+ - name: include
933
+ in: query
934
+ descripton: 'Select which associated resources you would like to fetch, see:
935
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
936
+ example: taxonomy,parent,children
937
+ schema:
938
+ type: string
939
+ - name: filter
940
+ in: query
941
+ descripton: ''
942
+ example: taxonomy_id_eq=1&name_cont=Shirts
943
+ schema:
944
+ type: string
945
+ responses:
946
+ '200':
947
+ description: Records returned
948
+ content:
949
+ application/vnd.api+json:
950
+ examples:
951
+ Example:
952
+ value:
953
+ data:
954
+ - id: '32'
955
+ type: taxon
956
+ attributes:
957
+ position: 0
958
+ name: taxon_16
959
+ permalink: taxonomy-16/taxon-16
960
+ lft: 2
961
+ rgt: 3
962
+ description:
963
+ created_at: '2021-08-06T06:53:21.978Z'
964
+ updated_at: '2021-08-06T06:53:21.982Z'
965
+ meta_title:
966
+ meta_description:
967
+ meta_keywords:
968
+ depth: 1
969
+ pretty_name: taxonomy_16 -> taxon_16
970
+ seo_title: taxon_16
971
+ is_root: false
972
+ is_child: true
973
+ is_leaf: true
974
+ relationships:
975
+ parent:
976
+ data:
977
+ id: '31'
978
+ type: taxon
979
+ taxonomy:
980
+ data:
981
+ id: '16'
982
+ type: taxonomy
983
+ children:
984
+ data: []
985
+ image:
986
+ data:
987
+ id: '16'
988
+ type: taxon_image
989
+ - id: '33'
990
+ type: taxon
991
+ attributes:
992
+ position: 0
993
+ name: taxon_17
994
+ permalink: taxonomy-16/taxon-17
995
+ lft: 4
996
+ rgt: 5
997
+ description:
998
+ created_at: '2021-08-06T06:53:22.008Z'
999
+ updated_at: '2021-08-06T06:53:22.013Z'
1000
+ meta_title:
1001
+ meta_description:
1002
+ meta_keywords:
1003
+ depth: 1
1004
+ pretty_name: taxonomy_16 -> taxon_17
1005
+ seo_title: taxon_17
1006
+ is_root: false
1007
+ is_child: true
1008
+ is_leaf: true
1009
+ relationships:
1010
+ parent:
1011
+ data:
1012
+ id: '31'
1013
+ type: taxon
1014
+ taxonomy:
1015
+ data:
1016
+ id: '16'
1017
+ type: taxonomy
1018
+ children:
1019
+ data: []
1020
+ image:
1021
+ data:
1022
+ id: '17'
1023
+ type: taxon_image
1024
+ - id: '31'
1025
+ type: taxon
1026
+ attributes:
1027
+ position: 0
1028
+ name: taxonomy_16
1029
+ permalink: taxonomy-16
1030
+ lft: 1
1031
+ rgt: 6
1032
+ description:
1033
+ created_at: '2021-08-06T06:53:21.950Z'
1034
+ updated_at: '2021-08-06T06:53:22.027Z'
1035
+ meta_title:
1036
+ meta_description:
1037
+ meta_keywords:
1038
+ depth: 0
1039
+ pretty_name: taxonomy_16
1040
+ seo_title: taxonomy_16
1041
+ is_root: true
1042
+ is_child: false
1043
+ is_leaf: false
1044
+ relationships:
1045
+ parent:
1046
+ data:
1047
+ taxonomy:
1048
+ data:
1049
+ id: '16'
1050
+ type: taxonomy
1051
+ children:
1052
+ data:
1053
+ - id: '32'
1054
+ type: taxon
1055
+ - id: '33'
1056
+ type: taxon
1057
+ image:
1058
+ data:
1059
+ meta:
1060
+ count: 3
1061
+ total_count: 3
1062
+ total_pages: 1
1063
+ links:
1064
+ self: http://www.example.com/api/v2/platform/taxons?page=1&per_page=&include=&filter=
1065
+ next: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
1066
+ prev: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
1067
+ last: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
1068
+ first: http://www.example.com/api/v2/platform/taxons?include=&page=1&per_page=
1069
+ '401':
1070
+ description: Authentication Failed
1071
+ content:
1072
+ application/vnd.api+json:
1073
+ examples:
1074
+ Example:
1075
+ value:
1076
+ error: The access token is invalid
1077
+ post:
1078
+ summary: Creates a Taxon
1079
+ tags:
1080
+ - Taxons
1081
+ security:
1082
+ - bearer_auth: []
1083
+ parameters:
1084
+ - name: include
1085
+ in: query
1086
+ descripton: 'Select which associated resources you would like to fetch, see:
1087
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1088
+ example: taxonomy,parent,children
1089
+ schema:
1090
+ type: string
1091
+ responses:
1092
+ '201':
1093
+ description: record created
1094
+ content:
1095
+ application/vnd.api+json:
1096
+ examples:
1097
+ Example:
1098
+ value:
1099
+ data:
1100
+ id: '38'
1101
+ type: taxon
1102
+ attributes:
1103
+ position: 0
1104
+ name: taxon_20
1105
+ permalink: taxonomy-18/taxon-20
1106
+ lft: 2
1107
+ rgt: 3
1108
+ description:
1109
+ created_at: '2021-08-06T06:53:22.225Z'
1110
+ updated_at: '2021-08-06T06:53:22.231Z'
1111
+ meta_title:
1112
+ meta_description:
1113
+ meta_keywords:
1114
+ depth: 1
1115
+ pretty_name: taxonomy_18 -> taxon_20
1116
+ seo_title: taxon_20
1117
+ is_root: false
1118
+ is_child: true
1119
+ is_leaf: true
1120
+ relationships:
1121
+ parent:
1122
+ data:
1123
+ id: '37'
1124
+ type: taxon
1125
+ taxonomy:
1126
+ data:
1127
+ id: '18'
1128
+ type: taxonomy
1129
+ children:
1130
+ data: []
1131
+ image:
1132
+ data:
1133
+ '422':
1134
+ description: invalid request
1135
+ content:
1136
+ application/vnd.api+json:
1137
+ examples:
1138
+ Example:
1139
+ value:
1140
+ error: Name can't be blank and Taxonomy can't be blank
1141
+ errors:
1142
+ name:
1143
+ - can't be blank
1144
+ taxonomy:
1145
+ - can't be blank
1146
+ requestBody:
1147
+ content:
1148
+ application/json:
1149
+ schema:
1150
+ "$ref": "#/components/schemas/taxon_params"
1151
+ "/api/v2/platform/taxons/{id}":
1152
+ get:
1153
+ summary: Returns a Taxon
1154
+ tags:
1155
+ - Taxons
1156
+ security:
1157
+ - bearer_auth: []
1158
+ parameters:
1159
+ - name: id
1160
+ in: path
1161
+ required: true
1162
+ schema:
1163
+ type: string
1164
+ - name: include
1165
+ in: query
1166
+ descripton: 'Select which associated resources you would like to fetch, see:
1167
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1168
+ example: taxonomy,parent,children
1169
+ schema:
1170
+ type: string
1171
+ responses:
1172
+ '200':
1173
+ description: Record found
1174
+ content:
1175
+ application/vnd.api+json:
1176
+ examples:
1177
+ Example:
1178
+ value:
1179
+ data:
1180
+ id: '40'
1181
+ type: taxon
1182
+ attributes:
1183
+ position: 0
1184
+ name: taxon_21
1185
+ permalink: taxonomy-19/taxon-21
1186
+ lft: 2
1187
+ rgt: 3
1188
+ description:
1189
+ created_at: '2021-08-06T06:53:22.320Z'
1190
+ updated_at: '2021-08-06T06:53:22.324Z'
1191
+ meta_title:
1192
+ meta_description:
1193
+ meta_keywords:
1194
+ depth: 1
1195
+ pretty_name: taxonomy_19 -> taxon_21
1196
+ seo_title: taxon_21
1197
+ is_root: false
1198
+ is_child: true
1199
+ is_leaf: true
1200
+ relationships:
1201
+ parent:
1202
+ data:
1203
+ id: '39'
1204
+ type: taxon
1205
+ taxonomy:
1206
+ data:
1207
+ id: '19'
1208
+ type: taxonomy
1209
+ children:
1210
+ data: []
1211
+ products:
1212
+ data: []
1213
+ image:
1214
+ data:
1215
+ id: '20'
1216
+ type: taxon_image
1217
+ '404':
1218
+ description: Record not found
1219
+ content:
1220
+ application/vnd.api+json:
1221
+ examples:
1222
+ Example:
1223
+ value:
1224
+ error: The resource you were looking for could not be found.
1225
+ '401':
1226
+ description: Authentication Failed
1227
+ content:
1228
+ application/vnd.api+json:
1229
+ examples:
1230
+ Example:
1231
+ value:
1232
+ error: The access token is invalid
1233
+ put:
1234
+ summary: Updates a Taxon
1235
+ tags:
1236
+ - Taxons
1237
+ security:
1238
+ - bearer_auth: []
1239
+ parameters:
1240
+ - name: id
1241
+ in: path
1242
+ required: true
1243
+ schema:
1244
+ type: string
1245
+ - name: include
1246
+ in: query
1247
+ descripton: 'Select which associated resources you would like to fetch, see:
1248
+ <a href="https://jsonapi.org/format/#fetching-includes">https://jsonapi.org/format/#fetching-includes</a>'
1249
+ example: taxonomy,parent,children
1250
+ schema:
1251
+ type: string
1252
+ responses:
1253
+ '200':
1254
+ description: record updated
1255
+ content:
1256
+ application/vnd.api+json:
1257
+ examples:
1258
+ Example:
1259
+ value:
1260
+ data:
1261
+ id: '44'
1262
+ type: taxon
1263
+ attributes:
1264
+ position: 0
1265
+ name: T-Shirts
1266
+ permalink: taxonomy-21/taxon-23
1267
+ lft: 2
1268
+ rgt: 3
1269
+ description:
1270
+ created_at: '2021-08-06T06:53:22.511Z'
1271
+ updated_at: '2021-08-06T06:53:22.542Z'
1272
+ meta_title:
1273
+ meta_description:
1274
+ meta_keywords:
1275
+ depth: 1
1276
+ pretty_name: taxonomy_21 -> T-Shirts
1277
+ seo_title: T-Shirts
1278
+ is_root: false
1279
+ is_child: true
1280
+ is_leaf: true
1281
+ relationships:
1282
+ parent:
1283
+ data:
1284
+ id: '43'
1285
+ type: taxon
1286
+ taxonomy:
1287
+ data:
1288
+ id: '21'
1289
+ type: taxonomy
1290
+ children:
1291
+ data: []
1292
+ image:
1293
+ data:
1294
+ id: '22'
1295
+ type: taxon_image
1296
+ '422':
1297
+ description: invalid request
1298
+ content:
1299
+ application/vnd.api+json:
1300
+ examples:
1301
+ Example:
1302
+ value:
1303
+ error: Name can't be blank
1304
+ errors:
1305
+ name:
1306
+ - can't be blank
1307
+ '404':
1308
+ description: Record not found
1309
+ content:
1310
+ application/vnd.api+json:
1311
+ examples:
1312
+ Example:
1313
+ value:
1314
+ error: The resource you were looking for could not be found.
1315
+ '401':
1316
+ description: Authentication Failed
1317
+ content:
1318
+ application/vnd.api+json:
1319
+ examples:
1320
+ Example:
1321
+ value:
1322
+ error: The access token is invalid
1323
+ requestBody:
1324
+ content:
1325
+ application/json:
1326
+ schema:
1327
+ "$ref": "#/components/schemas/taxon_params"
1328
+ delete:
1329
+ summary: Deletes a Taxon
1330
+ tags:
1331
+ - Taxons
1332
+ security:
1333
+ - bearer_auth: []
1334
+ parameters:
1335
+ - name: id
1336
+ in: path
1337
+ required: true
1338
+ schema:
1339
+ type: string
1340
+ responses:
1341
+ '204':
1342
+ description: Record deleted
1343
+ '404':
1344
+ description: Record not found
1345
+ content:
1346
+ application/vnd.api+json:
1347
+ examples:
1348
+ Example:
1349
+ value:
1350
+ error: The resource you were looking for could not be found.
1351
+ '401':
1352
+ description: Authentication Failed
1353
+ content:
1354
+ application/vnd.api+json:
1355
+ examples:
1356
+ Example:
1357
+ value:
1358
+ error: The access token is invalid
1359
+ servers:
1360
+ - url: https://{defaultHost}
1361
+ variables:
1362
+ defaultHost:
1363
+ default: localhost:3000
1364
+ components:
1365
+ securitySchemes:
1366
+ bearer_auth:
1367
+ type: http
1368
+ scheme: bearer
1369
+ schemas:
1370
+ address_params:
1371
+ type: object
1372
+ properties:
1373
+ country_id:
1374
+ type: string
1375
+ state_id:
1376
+ type: string
1377
+ state_name:
1378
+ type: string
1379
+ address1:
1380
+ type: string
1381
+ city:
1382
+ type: string
1383
+ zipcode:
1384
+ type: string
1385
+ phone:
1386
+ type: string
1387
+ alternative_phone:
1388
+ type: string
1389
+ firstname:
1390
+ type: string
1391
+ lastname:
1392
+ type: string
1393
+ label:
1394
+ type: string
1395
+ company:
1396
+ type: string
1397
+ user_id:
1398
+ type: string
1399
+ classification_params:
1400
+ type: object
1401
+ properties:
1402
+ product_id:
1403
+ type: string
1404
+ taxon_id:
1405
+ type: string
1406
+ position:
1407
+ type: integer
1408
+ taxon_params:
1409
+ type: object
1410
+ properties:
1411
+ taxonomy_id:
1412
+ type: string
1413
+ name:
1414
+ type: string
1415
+ required:
1416
+ - name
1417
+ - taxonomy_id
1418
+ resources_list:
1419
+ type: object
1420
+ properties:
1421
+ data:
1422
+ type: array
1423
+ items:
1424
+ allOf:
1425
+ - "$ref": "#/components/schemas/resource_properties"
1426
+ meta:
1427
+ type: object
1428
+ properties:
1429
+ count:
1430
+ type: integer
1431
+ total_count:
1432
+ type: integer
1433
+ total_pages:
1434
+ type: integer
1435
+ required:
1436
+ - count
1437
+ - total_count
1438
+ - total_pages
1439
+ links:
1440
+ type: object
1441
+ properties:
1442
+ self:
1443
+ type: string
1444
+ next:
1445
+ type: string
1446
+ prev:
1447
+ type: string
1448
+ last:
1449
+ type: string
1450
+ first:
1451
+ type: string
1452
+ required:
1453
+ - self
1454
+ - next
1455
+ - prev
1456
+ - last
1457
+ - first
1458
+ required:
1459
+ - data
1460
+ - meta
1461
+ - links
1462
+ resource_properties:
1463
+ type: object
1464
+ properties:
1465
+ id:
1466
+ type: string
1467
+ type:
1468
+ type: string
1469
+ attributes:
1470
+ type: object
1471
+ relationships:
1472
+ type: object
1473
+ required:
1474
+ - id
1475
+ - type
1476
+ - attributes
1477
+ - relationships
1478
+ resource:
1479
+ type: object
1480
+ properties:
1481
+ data:
1482
+ "$ref": "#/components/schemas/resource_properties"
1483
+ required:
1484
+ - data
1485
+ error:
1486
+ type: object
1487
+ properties:
1488
+ error:
1489
+ type: string
1490
+ required:
1491
+ - error
1492
+ validation_errors:
1493
+ type: object
1494
+ properties:
1495
+ error:
1496
+ type: string
1497
+ errors:
1498
+ type: object
1499
+ required:
1500
+ - error
1501
+ - errors