profoundjs-swagger-stats 1.1.4 → 2.0.0

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 (87) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dashboards/prometheus/swagger-stats dashboard v3.json +1269 -0
  3. package/examples/authtest/authtest.js +5 -10
  4. package/examples/fastify/fasifytest.js +24 -5
  5. package/examples/hapijstest/hapijstest.js +17 -2
  6. package/examples/restify/restifytest.js +16 -1
  7. package/examples/spectest/spectest.js +7 -9
  8. package/examples/testapp/petstore.json +1699 -0
  9. package/examples/testapp/testapp.js +6 -62
  10. package/lib/sws-api-swagger.yaml +1 -1
  11. package/lib/swsAPIStats.js +6 -1
  12. package/lib/swsAuth.js +140 -0
  13. package/lib/swsElasticEmitter.js +103 -45
  14. package/lib/swsHapi.js +29 -34
  15. package/lib/swsInterface.js +40 -189
  16. package/lib/swsProcessor.js +1 -1
  17. package/lib/swsReqResStats.js +1 -1
  18. package/lib/swsUtil.js +7 -21
  19. package/lib/swssettings.js +8 -2
  20. package/package.json +90 -91
  21. package/schema/elasticsearch/api_index_template.json +1 -1
  22. package/schema/elasticsearch/api_index_template_7x.json +185 -0
  23. package/scripts/elasticsearch/elastic7/docker-compose.yml +6 -17
  24. package/scripts/elasticsearch/elastic8/docker-compose.yml +34 -0
  25. package/ux/css/app.dc22c4da.css +7 -0
  26. package/ux/css/chunk-vendors.a6da6d7a.css +10 -0
  27. package/ux/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.4aa2e698.woff +0 -0
  28. package/ux/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.40bcb2b8.woff +0 -0
  29. package/ux/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.ea60988b.woff +0 -0
  30. package/ux/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.0774a8b7.woff +0 -0
  31. package/ux/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bcb7c7e2.woff +0 -0
  32. package/ux/fonts/KFOmCnqEu92Fr1Mu4mxM.d3907d0c.woff +0 -0
  33. package/ux/fonts/fa-brands-400.1a575a41.woff +0 -0
  34. package/ux/fonts/fa-brands-400.ed311c7a.woff2 +0 -0
  35. package/ux/fonts/fa-regular-400.b91d376b.woff2 +0 -0
  36. package/ux/fonts/fa-regular-400.d1d7e3b4.woff +0 -0
  37. package/ux/fonts/fa-solid-900.d745348d.woff +0 -0
  38. package/ux/fonts/fa-solid-900.d824df7e.woff2 +0 -0
  39. package/ux/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.3e1afe59.woff +0 -0
  40. package/ux/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.a4160421.woff2 +0 -0
  41. package/ux/index.html +1 -1
  42. package/ux/js/app.d095d0d6.js +1 -0
  43. package/ux/js/chunk-2d0b90b4.afe783bc.js +8 -0
  44. package/ux/js/chunk-2d0daf1e.a05fda31.js +11 -0
  45. package/ux/js/chunk-461883cd.a2aa4876.js +82 -0
  46. package/ux/js/chunk-vendors.4f167dc9.js +39 -0
  47. package/ux/logo.png +0 -0
  48. package/.editorconfig +0 -21
  49. package/.travis.yml +0 -23
  50. package/dashboards/prometheus/swagger-stats dashboard.json +0 -1118
  51. package/dist/css/sws.min.css +0 -18
  52. package/dist/fonts/FontAwesome.otf +0 -0
  53. package/dist/fonts/fontawesome-webfont.eot +0 -0
  54. package/dist/fonts/fontawesome-webfont.svg +0 -2671
  55. package/dist/fonts/fontawesome-webfont.ttf +0 -0
  56. package/dist/fonts/fontawesome-webfont.woff +0 -0
  57. package/dist/fonts/fontawesome-webfont.woff2 +0 -0
  58. package/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  59. package/dist/fonts/glyphicons-halflings-regular.svg +0 -288
  60. package/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  61. package/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  62. package/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  63. package/dist/images/favicon.png +0 -0
  64. package/dist/js/sws.min.js +0 -1
  65. package/gulpfile.js +0 -103
  66. package/karma.conf.js +0 -153
  67. package/ux/css/app.71245b0e.css +0 -7
  68. package/ux/css/chunk-vendors.809c52d1.css +0 -10
  69. package/ux/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.5cb7edfc.woff +0 -0
  70. package/ux/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.87284894.woff +0 -0
  71. package/ux/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.b00849e0.woff +0 -0
  72. package/ux/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.adcde98f.woff +0 -0
  73. package/ux/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bb1e4dc6.woff +0 -0
  74. package/ux/fonts/KFOmCnqEu92Fr1Mu4mxM.60fa3c06.woff +0 -0
  75. package/ux/fonts/fa-brands-400.c5e0f14f.woff +0 -0
  76. package/ux/fonts/fa-brands-400.cccc9d29.woff2 +0 -0
  77. package/ux/fonts/fa-regular-400.c4f508e7.woff +0 -0
  78. package/ux/fonts/fa-regular-400.f5f2566b.woff2 +0 -0
  79. package/ux/fonts/fa-solid-900.333bae20.woff +0 -0
  80. package/ux/fonts/fa-solid-900.44d537ab.woff2 +0 -0
  81. package/ux/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.29b882f0.woff +0 -0
  82. package/ux/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.0509ab09.woff2 +0 -0
  83. package/ux/js/app.0159ef6a.js +0 -1
  84. package/ux/js/chunk-2d0b90b4.92f1ea49.js +0 -8
  85. package/ux/js/chunk-461883cd.442efb25.js +0 -76
  86. package/ux/js/chunk-vendors.31d3ce30.js +0 -33
  87. /package/ux/js/{chunk-2d0de2f2.553bf976.js → chunk-2d0de2f2.2848649c.js} +0 -0
@@ -0,0 +1,1699 @@
1
+ {
2
+ "swagger": "2.0",
3
+ "info": {
4
+ "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
5
+ "version": "1.0.0",
6
+ "title": "Swagger Petstore",
7
+ "termsOfService": "http://swagger.io/terms/",
8
+ "contact": {
9
+ "email": "apiteam@swagger.io"
10
+ },
11
+ "license": {
12
+ "name": "Apache 2.0",
13
+ "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
14
+ }
15
+ },
16
+ "host": "petstore.swagger.io",
17
+ "basePath": "/v2",
18
+ "tags": [
19
+ {
20
+ "name": "pet",
21
+ "description": "Everything about your Pets",
22
+ "externalDocs": {
23
+ "description": "Find out more",
24
+ "url": "http://swagger.io"
25
+ }
26
+ },
27
+ {
28
+ "name": "store",
29
+ "description": "Access to Petstore orders"
30
+ },
31
+ {
32
+ "name": "user",
33
+ "description": "Operations about user",
34
+ "externalDocs": {
35
+ "description": "Find out more about our store",
36
+ "url": "http://swagger.io"
37
+ }
38
+ }
39
+ ],
40
+ "schemes": [
41
+ "http"
42
+ ],
43
+ "paths": {
44
+ "/pet": {
45
+ "post": {
46
+ "tags": [
47
+ "pet"
48
+ ],
49
+ "summary": "Add a new pet to the store",
50
+ "description": "",
51
+ "operationId": "addPet",
52
+ "consumes": [
53
+ "application/json",
54
+ "application/xml"
55
+ ],
56
+ "produces": [
57
+ "application/xml",
58
+ "application/json"
59
+ ],
60
+ "parameters": [
61
+ {
62
+ "in": "body",
63
+ "name": "body",
64
+ "description": "Pet object that needs to be added to the store",
65
+ "required": true,
66
+ "x-ext-test": "Extension Test",
67
+ "schema": {
68
+ "type": "object",
69
+ "required": [
70
+ "name",
71
+ "photoUrls"
72
+ ],
73
+ "properties": {
74
+ "id": {
75
+ "type": "integer",
76
+ "format": "int64"
77
+ },
78
+ "category": {
79
+ "type": "object",
80
+ "properties": {
81
+ "id": {
82
+ "type": "integer",
83
+ "format": "int64"
84
+ },
85
+ "name": {
86
+ "type": "string"
87
+ }
88
+ },
89
+ "xml": {
90
+ "name": "Category"
91
+ }
92
+ },
93
+ "name": {
94
+ "type": "string",
95
+ "example": "doggie"
96
+ },
97
+ "photoUrls": {
98
+ "type": "array",
99
+ "xml": {
100
+ "name": "photoUrl",
101
+ "wrapped": true
102
+ },
103
+ "items": {
104
+ "type": "string"
105
+ }
106
+ },
107
+ "tags": {
108
+ "type": "array",
109
+ "xml": {
110
+ "name": "tag",
111
+ "wrapped": true
112
+ },
113
+ "items": {
114
+ "type": "object",
115
+ "properties": {
116
+ "id": {
117
+ "type": "integer",
118
+ "format": "int64"
119
+ },
120
+ "name": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ "xml": {
125
+ "name": "Tag"
126
+ }
127
+ }
128
+ },
129
+ "status": {
130
+ "type": "string",
131
+ "description": "pet status in the store",
132
+ "enum": [
133
+ "available",
134
+ "pending",
135
+ "sold"
136
+ ]
137
+ }
138
+ },
139
+ "xml": {
140
+ "name": "Pet"
141
+ }
142
+ }
143
+ }
144
+ ],
145
+ "responses": {
146
+ "405": {
147
+ "description": "Invalid input"
148
+ }
149
+ },
150
+ "security": [
151
+ {
152
+ "petstore_auth": [
153
+ "write:pets",
154
+ "read:pets"
155
+ ]
156
+ }
157
+ ]
158
+ },
159
+ "put": {
160
+ "tags": [
161
+ "pet"
162
+ ],
163
+ "summary": "Update an existing pet",
164
+ "description": "",
165
+ "operationId": "updatePet",
166
+ "consumes": [
167
+ "application/json",
168
+ "application/xml"
169
+ ],
170
+ "produces": [
171
+ "application/xml",
172
+ "application/json"
173
+ ],
174
+ "parameters": [
175
+ {
176
+ "in": "body",
177
+ "name": "body",
178
+ "description": "Pet object that needs to be added to the store",
179
+ "required": true,
180
+ "schema": {
181
+ "type": "object",
182
+ "required": [
183
+ "name",
184
+ "photoUrls"
185
+ ],
186
+ "properties": {
187
+ "id": {
188
+ "type": "integer",
189
+ "format": "int64"
190
+ },
191
+ "category": {
192
+ "type": "object",
193
+ "properties": {
194
+ "id": {
195
+ "type": "integer",
196
+ "format": "int64"
197
+ },
198
+ "name": {
199
+ "type": "string"
200
+ }
201
+ },
202
+ "xml": {
203
+ "name": "Category"
204
+ }
205
+ },
206
+ "name": {
207
+ "type": "string",
208
+ "example": "doggie"
209
+ },
210
+ "photoUrls": {
211
+ "type": "array",
212
+ "xml": {
213
+ "name": "photoUrl",
214
+ "wrapped": true
215
+ },
216
+ "items": {
217
+ "type": "string"
218
+ }
219
+ },
220
+ "tags": {
221
+ "type": "array",
222
+ "xml": {
223
+ "name": "tag",
224
+ "wrapped": true
225
+ },
226
+ "items": {
227
+ "type": "object",
228
+ "properties": {
229
+ "id": {
230
+ "type": "integer",
231
+ "format": "int64"
232
+ },
233
+ "name": {
234
+ "type": "string"
235
+ }
236
+ },
237
+ "xml": {
238
+ "name": "Tag"
239
+ }
240
+ }
241
+ },
242
+ "status": {
243
+ "type": "string",
244
+ "description": "pet status in the store",
245
+ "enum": [
246
+ "available",
247
+ "pending",
248
+ "sold"
249
+ ]
250
+ }
251
+ },
252
+ "xml": {
253
+ "name": "Pet"
254
+ }
255
+ }
256
+ }
257
+ ],
258
+ "responses": {
259
+ "400": {
260
+ "description": "Invalid ID supplied"
261
+ },
262
+ "404": {
263
+ "description": "Pet not found"
264
+ },
265
+ "405": {
266
+ "description": "Validation exception"
267
+ }
268
+ },
269
+ "security": [
270
+ {
271
+ "petstore_auth": [
272
+ "write:pets",
273
+ "read:pets"
274
+ ]
275
+ }
276
+ ]
277
+ }
278
+ },
279
+ "/pet/findByStatus": {
280
+ "get": {
281
+ "tags": [
282
+ "pet"
283
+ ],
284
+ "summary": "Finds Pets by status",
285
+ "description": "Multiple status values can be provided with comma separated strings",
286
+ "operationId": "findPetsByStatus",
287
+ "produces": [
288
+ "application/xml",
289
+ "application/json"
290
+ ],
291
+ "parameters": [
292
+ {
293
+ "name": "status",
294
+ "in": "query",
295
+ "description": "Status values that need to be considered for filter",
296
+ "required": true,
297
+ "type": "array",
298
+ "items": {
299
+ "type": "string",
300
+ "enum": [
301
+ "available",
302
+ "pending",
303
+ "sold"
304
+ ],
305
+ "default": "available"
306
+ },
307
+ "collectionFormat": "multi"
308
+ }
309
+ ],
310
+ "responses": {
311
+ "200": {
312
+ "description": "successful operation",
313
+ "schema": {
314
+ "type": "array",
315
+ "items": {
316
+ "type": "object",
317
+ "required": [
318
+ "name",
319
+ "photoUrls"
320
+ ],
321
+ "properties": {
322
+ "id": {
323
+ "type": "integer",
324
+ "format": "int64"
325
+ },
326
+ "category": {
327
+ "type": "object",
328
+ "properties": {
329
+ "id": {
330
+ "type": "integer",
331
+ "format": "int64"
332
+ },
333
+ "name": {
334
+ "type": "string"
335
+ }
336
+ },
337
+ "xml": {
338
+ "name": "Category"
339
+ }
340
+ },
341
+ "name": {
342
+ "type": "string",
343
+ "example": "doggie"
344
+ },
345
+ "photoUrls": {
346
+ "type": "array",
347
+ "xml": {
348
+ "name": "photoUrl",
349
+ "wrapped": true
350
+ },
351
+ "items": {
352
+ "type": "string"
353
+ }
354
+ },
355
+ "tags": {
356
+ "type": "array",
357
+ "xml": {
358
+ "name": "tag",
359
+ "wrapped": true
360
+ },
361
+ "items": {
362
+ "type": "object",
363
+ "properties": {
364
+ "id": {
365
+ "type": "integer",
366
+ "format": "int64"
367
+ },
368
+ "name": {
369
+ "type": "string"
370
+ }
371
+ },
372
+ "xml": {
373
+ "name": "Tag"
374
+ }
375
+ }
376
+ },
377
+ "status": {
378
+ "type": "string",
379
+ "description": "pet status in the store",
380
+ "enum": [
381
+ "available",
382
+ "pending",
383
+ "sold"
384
+ ]
385
+ }
386
+ },
387
+ "xml": {
388
+ "name": "Pet"
389
+ }
390
+ }
391
+ }
392
+ },
393
+ "400": {
394
+ "description": "Invalid status value"
395
+ }
396
+ },
397
+ "security": [
398
+ {
399
+ "petstore_auth": [
400
+ "write:pets",
401
+ "read:pets"
402
+ ]
403
+ }
404
+ ]
405
+ }
406
+ },
407
+ "/pet/findByTags": {
408
+ "get": {
409
+ "tags": [
410
+ "pet"
411
+ ],
412
+ "summary": "Finds Pets by tags",
413
+ "description": "Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.",
414
+ "operationId": "findPetsByTags",
415
+ "produces": [
416
+ "application/xml",
417
+ "application/json"
418
+ ],
419
+ "parameters": [
420
+ {
421
+ "name": "tags",
422
+ "in": "query",
423
+ "description": "Tags to filter by",
424
+ "required": true,
425
+ "type": "array",
426
+ "items": {
427
+ "type": "string"
428
+ },
429
+ "collectionFormat": "multi"
430
+ }
431
+ ],
432
+ "responses": {
433
+ "200": {
434
+ "description": "successful operation",
435
+ "schema": {
436
+ "type": "array",
437
+ "items": {
438
+ "type": "object",
439
+ "required": [
440
+ "name",
441
+ "photoUrls"
442
+ ],
443
+ "properties": {
444
+ "id": {
445
+ "type": "integer",
446
+ "format": "int64"
447
+ },
448
+ "category": {
449
+ "type": "object",
450
+ "properties": {
451
+ "id": {
452
+ "type": "integer",
453
+ "format": "int64"
454
+ },
455
+ "name": {
456
+ "type": "string"
457
+ }
458
+ },
459
+ "xml": {
460
+ "name": "Category"
461
+ }
462
+ },
463
+ "name": {
464
+ "type": "string",
465
+ "example": "doggie"
466
+ },
467
+ "photoUrls": {
468
+ "type": "array",
469
+ "xml": {
470
+ "name": "photoUrl",
471
+ "wrapped": true
472
+ },
473
+ "items": {
474
+ "type": "string"
475
+ }
476
+ },
477
+ "tags": {
478
+ "type": "array",
479
+ "xml": {
480
+ "name": "tag",
481
+ "wrapped": true
482
+ },
483
+ "items": {
484
+ "type": "object",
485
+ "properties": {
486
+ "id": {
487
+ "type": "integer",
488
+ "format": "int64"
489
+ },
490
+ "name": {
491
+ "type": "string"
492
+ }
493
+ },
494
+ "xml": {
495
+ "name": "Tag"
496
+ }
497
+ }
498
+ },
499
+ "status": {
500
+ "type": "string",
501
+ "description": "pet status in the store",
502
+ "enum": [
503
+ "available",
504
+ "pending",
505
+ "sold"
506
+ ]
507
+ }
508
+ },
509
+ "xml": {
510
+ "name": "Pet"
511
+ }
512
+ }
513
+ }
514
+ },
515
+ "400": {
516
+ "description": "Invalid tag value"
517
+ }
518
+ },
519
+ "security": [
520
+ {
521
+ "petstore_auth": [
522
+ "write:pets",
523
+ "read:pets"
524
+ ]
525
+ }
526
+ ],
527
+ "deprecated": true
528
+ }
529
+ },
530
+ "/pet/{petId}": {
531
+ "get": {
532
+ "tags": [
533
+ "pet"
534
+ ],
535
+ "summary": "Find pet by ID",
536
+ "description": "Returns a single pet",
537
+ "operationId": "getPetById",
538
+ "produces": [
539
+ "application/xml",
540
+ "application/json"
541
+ ],
542
+ "parameters": [
543
+ {
544
+ "name": "petId",
545
+ "in": "path",
546
+ "description": "ID of pet to return",
547
+ "required": true,
548
+ "type": "integer",
549
+ "format": "int64"
550
+ }
551
+ ],
552
+ "responses": {
553
+ "200": {
554
+ "description": "successful operation",
555
+ "schema": {
556
+ "type": "object",
557
+ "required": [
558
+ "name",
559
+ "photoUrls"
560
+ ],
561
+ "properties": {
562
+ "id": {
563
+ "type": "integer",
564
+ "format": "int64"
565
+ },
566
+ "category": {
567
+ "type": "object",
568
+ "properties": {
569
+ "id": {
570
+ "type": "integer",
571
+ "format": "int64"
572
+ },
573
+ "name": {
574
+ "type": "string"
575
+ }
576
+ },
577
+ "xml": {
578
+ "name": "Category"
579
+ }
580
+ },
581
+ "name": {
582
+ "type": "string",
583
+ "example": "doggie"
584
+ },
585
+ "photoUrls": {
586
+ "type": "array",
587
+ "xml": {
588
+ "name": "photoUrl",
589
+ "wrapped": true
590
+ },
591
+ "items": {
592
+ "type": "string"
593
+ }
594
+ },
595
+ "tags": {
596
+ "type": "array",
597
+ "xml": {
598
+ "name": "tag",
599
+ "wrapped": true
600
+ },
601
+ "items": {
602
+ "type": "object",
603
+ "properties": {
604
+ "id": {
605
+ "type": "integer",
606
+ "format": "int64"
607
+ },
608
+ "name": {
609
+ "type": "string"
610
+ }
611
+ },
612
+ "xml": {
613
+ "name": "Tag"
614
+ }
615
+ }
616
+ },
617
+ "status": {
618
+ "type": "string",
619
+ "description": "pet status in the store",
620
+ "enum": [
621
+ "available",
622
+ "pending",
623
+ "sold"
624
+ ]
625
+ }
626
+ },
627
+ "xml": {
628
+ "name": "Pet"
629
+ }
630
+ }
631
+ },
632
+ "400": {
633
+ "description": "Invalid ID supplied"
634
+ },
635
+ "404": {
636
+ "description": "Pet not found"
637
+ }
638
+ },
639
+ "security": [
640
+ {
641
+ "api_key": []
642
+ }
643
+ ]
644
+ },
645
+ "post": {
646
+ "tags": [
647
+ "pet"
648
+ ],
649
+ "summary": "Updates a pet in the store with form data",
650
+ "description": "",
651
+ "operationId": "updatePetWithForm",
652
+ "consumes": [
653
+ "application/x-www-form-urlencoded"
654
+ ],
655
+ "produces": [
656
+ "application/xml",
657
+ "application/json"
658
+ ],
659
+ "parameters": [
660
+ {
661
+ "name": "petId",
662
+ "in": "path",
663
+ "description": "ID of pet that needs to be updated",
664
+ "required": true,
665
+ "type": "integer",
666
+ "format": "int64"
667
+ },
668
+ {
669
+ "name": "name",
670
+ "in": "formData",
671
+ "description": "Updated name of the pet",
672
+ "required": false,
673
+ "type": "string"
674
+ },
675
+ {
676
+ "name": "status",
677
+ "in": "formData",
678
+ "description": "Updated status of the pet",
679
+ "required": false,
680
+ "type": "string"
681
+ }
682
+ ],
683
+ "responses": {
684
+ "405": {
685
+ "description": "Invalid input"
686
+ }
687
+ },
688
+ "security": [
689
+ {
690
+ "petstore_auth": [
691
+ "write:pets",
692
+ "read:pets"
693
+ ]
694
+ }
695
+ ]
696
+ },
697
+ "delete": {
698
+ "tags": [
699
+ "pet"
700
+ ],
701
+ "summary": "Deletes a pet",
702
+ "description": "",
703
+ "operationId": "deletePet",
704
+ "produces": [
705
+ "application/xml",
706
+ "application/json"
707
+ ],
708
+ "parameters": [
709
+ {
710
+ "name": "api_key",
711
+ "in": "header",
712
+ "required": false,
713
+ "type": "string"
714
+ },
715
+ {
716
+ "name": "petId",
717
+ "in": "path",
718
+ "description": "Pet id to delete",
719
+ "required": true,
720
+ "type": "integer",
721
+ "format": "int64"
722
+ }
723
+ ],
724
+ "responses": {
725
+ "400": {
726
+ "description": "Invalid ID supplied"
727
+ },
728
+ "404": {
729
+ "description": "Pet not found"
730
+ }
731
+ },
732
+ "security": [
733
+ {
734
+ "petstore_auth": [
735
+ "write:pets",
736
+ "read:pets"
737
+ ]
738
+ }
739
+ ]
740
+ }
741
+ },
742
+ "/pet/{petId}/uploadImage": {
743
+ "post": {
744
+ "tags": [
745
+ "pet"
746
+ ],
747
+ "summary": "uploads an image",
748
+ "description": "",
749
+ "operationId": "uploadFile",
750
+ "consumes": [
751
+ "multipart/form-data"
752
+ ],
753
+ "produces": [
754
+ "application/json"
755
+ ],
756
+ "parameters": [
757
+ {
758
+ "name": "petId",
759
+ "in": "path",
760
+ "description": "ID of pet to update",
761
+ "required": true,
762
+ "type": "integer",
763
+ "format": "int64"
764
+ },
765
+ {
766
+ "name": "additionalMetadata",
767
+ "in": "formData",
768
+ "description": "Additional data to pass to server",
769
+ "required": false,
770
+ "type": "string"
771
+ },
772
+ {
773
+ "name": "file",
774
+ "in": "formData",
775
+ "description": "file to upload",
776
+ "required": false,
777
+ "type": "file"
778
+ }
779
+ ],
780
+ "responses": {
781
+ "200": {
782
+ "description": "successful operation",
783
+ "schema": {
784
+ "type": "object",
785
+ "properties": {
786
+ "code": {
787
+ "type": "integer",
788
+ "format": "int32"
789
+ },
790
+ "type": {
791
+ "type": "string"
792
+ },
793
+ "message": {
794
+ "type": "string"
795
+ }
796
+ }
797
+ }
798
+ }
799
+ },
800
+ "security": [
801
+ {
802
+ "petstore_auth": [
803
+ "write:pets",
804
+ "read:pets"
805
+ ]
806
+ }
807
+ ]
808
+ }
809
+ },
810
+ "/store/inventory": {
811
+ "get": {
812
+ "tags": [
813
+ "store"
814
+ ],
815
+ "summary": "Returns pet inventories by status",
816
+ "description": "Returns a map of status codes to quantities",
817
+ "operationId": "getInventory",
818
+ "produces": [
819
+ "application/json"
820
+ ],
821
+ "parameters": [],
822
+ "responses": {
823
+ "200": {
824
+ "description": "successful operation",
825
+ "schema": {
826
+ "type": "object",
827
+ "additionalProperties": {
828
+ "type": "integer",
829
+ "format": "int32"
830
+ }
831
+ }
832
+ }
833
+ },
834
+ "security": [
835
+ {
836
+ "api_key": []
837
+ }
838
+ ]
839
+ }
840
+ },
841
+ "/store/order": {
842
+ "post": {
843
+ "tags": [
844
+ "store"
845
+ ],
846
+ "summary": "Place an order for a pet",
847
+ "description": "",
848
+ "operationId": "placeOrder",
849
+ "produces": [
850
+ "application/xml",
851
+ "application/json"
852
+ ],
853
+ "parameters": [
854
+ {
855
+ "in": "body",
856
+ "name": "body",
857
+ "description": "order placed for purchasing the pet",
858
+ "required": true,
859
+ "schema": {
860
+ "type": "object",
861
+ "properties": {
862
+ "id": {
863
+ "type": "integer",
864
+ "format": "int64"
865
+ },
866
+ "petId": {
867
+ "type": "integer",
868
+ "format": "int64"
869
+ },
870
+ "quantity": {
871
+ "type": "integer",
872
+ "format": "int32"
873
+ },
874
+ "shipDate": {
875
+ "type": "string",
876
+ "format": "date-time"
877
+ },
878
+ "status": {
879
+ "type": "string",
880
+ "description": "Order Status",
881
+ "enum": [
882
+ "placed",
883
+ "approved",
884
+ "delivered"
885
+ ]
886
+ },
887
+ "complete": {
888
+ "type": "boolean",
889
+ "default": false
890
+ }
891
+ },
892
+ "xml": {
893
+ "name": "Order"
894
+ }
895
+ }
896
+ }
897
+ ],
898
+ "responses": {
899
+ "200": {
900
+ "description": "successful operation",
901
+ "schema": {
902
+ "type": "object",
903
+ "properties": {
904
+ "id": {
905
+ "type": "integer",
906
+ "format": "int64"
907
+ },
908
+ "petId": {
909
+ "type": "integer",
910
+ "format": "int64"
911
+ },
912
+ "quantity": {
913
+ "type": "integer",
914
+ "format": "int32"
915
+ },
916
+ "shipDate": {
917
+ "type": "string",
918
+ "format": "date-time"
919
+ },
920
+ "status": {
921
+ "type": "string",
922
+ "description": "Order Status",
923
+ "enum": [
924
+ "placed",
925
+ "approved",
926
+ "delivered"
927
+ ]
928
+ },
929
+ "complete": {
930
+ "type": "boolean",
931
+ "default": false
932
+ }
933
+ },
934
+ "xml": {
935
+ "name": "Order"
936
+ }
937
+ }
938
+ },
939
+ "400": {
940
+ "description": "Invalid Order"
941
+ }
942
+ }
943
+ }
944
+ },
945
+ "/store/order/{orderId}": {
946
+ "get": {
947
+ "tags": [
948
+ "store"
949
+ ],
950
+ "summary": "Find purchase order by ID",
951
+ "description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions",
952
+ "operationId": "getOrderById",
953
+ "produces": [
954
+ "application/xml",
955
+ "application/json"
956
+ ],
957
+ "parameters": [
958
+ {
959
+ "name": "orderId",
960
+ "in": "path",
961
+ "description": "ID of pet that needs to be fetched",
962
+ "required": true,
963
+ "type": "integer",
964
+ "maximum": 10,
965
+ "minimum": 1,
966
+ "format": "int64"
967
+ }
968
+ ],
969
+ "responses": {
970
+ "200": {
971
+ "description": "successful operation",
972
+ "schema": {
973
+ "type": "object",
974
+ "properties": {
975
+ "id": {
976
+ "type": "integer",
977
+ "format": "int64"
978
+ },
979
+ "petId": {
980
+ "type": "integer",
981
+ "format": "int64"
982
+ },
983
+ "quantity": {
984
+ "type": "integer",
985
+ "format": "int32"
986
+ },
987
+ "shipDate": {
988
+ "type": "string",
989
+ "format": "date-time"
990
+ },
991
+ "status": {
992
+ "type": "string",
993
+ "description": "Order Status",
994
+ "enum": [
995
+ "placed",
996
+ "approved",
997
+ "delivered"
998
+ ]
999
+ },
1000
+ "complete": {
1001
+ "type": "boolean",
1002
+ "default": false
1003
+ }
1004
+ },
1005
+ "xml": {
1006
+ "name": "Order"
1007
+ }
1008
+ }
1009
+ },
1010
+ "400": {
1011
+ "description": "Invalid ID supplied"
1012
+ },
1013
+ "404": {
1014
+ "description": "Order not found"
1015
+ }
1016
+ }
1017
+ },
1018
+ "delete": {
1019
+ "tags": [
1020
+ "store"
1021
+ ],
1022
+ "summary": "Delete purchase order by ID",
1023
+ "description": "For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors",
1024
+ "operationId": "deleteOrder",
1025
+ "produces": [
1026
+ "application/xml",
1027
+ "application/json"
1028
+ ],
1029
+ "parameters": [
1030
+ {
1031
+ "name": "orderId",
1032
+ "in": "path",
1033
+ "description": "ID of the order that needs to be deleted",
1034
+ "required": true,
1035
+ "type": "integer",
1036
+ "minimum": 1,
1037
+ "format": "int64"
1038
+ }
1039
+ ],
1040
+ "responses": {
1041
+ "400": {
1042
+ "description": "Invalid ID supplied"
1043
+ },
1044
+ "404": {
1045
+ "description": "Order not found"
1046
+ }
1047
+ }
1048
+ }
1049
+ },
1050
+ "/user": {
1051
+ "post": {
1052
+ "tags": [
1053
+ "user"
1054
+ ],
1055
+ "summary": "Create user",
1056
+ "description": "This can only be done by the logged in user.",
1057
+ "operationId": "createUser",
1058
+ "produces": [
1059
+ "application/xml",
1060
+ "application/json"
1061
+ ],
1062
+ "parameters": [
1063
+ {
1064
+ "in": "body",
1065
+ "name": "body",
1066
+ "description": "Created user object",
1067
+ "required": true,
1068
+ "schema": {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "id": {
1072
+ "type": "integer",
1073
+ "format": "int64"
1074
+ },
1075
+ "username": {
1076
+ "type": "string"
1077
+ },
1078
+ "firstName": {
1079
+ "type": "string"
1080
+ },
1081
+ "lastName": {
1082
+ "type": "string"
1083
+ },
1084
+ "email": {
1085
+ "type": "string"
1086
+ },
1087
+ "password": {
1088
+ "type": "string"
1089
+ },
1090
+ "phone": {
1091
+ "type": "string"
1092
+ },
1093
+ "userStatus": {
1094
+ "type": "integer",
1095
+ "format": "int32",
1096
+ "description": "User Status"
1097
+ }
1098
+ },
1099
+ "xml": {
1100
+ "name": "User"
1101
+ }
1102
+ }
1103
+ }
1104
+ ],
1105
+ "responses": {
1106
+ "default": {
1107
+ "description": "successful operation"
1108
+ }
1109
+ }
1110
+ }
1111
+ },
1112
+ "/user/createWithArray": {
1113
+ "post": {
1114
+ "tags": [
1115
+ "user"
1116
+ ],
1117
+ "summary": "Creates list of users with given input array",
1118
+ "description": "",
1119
+ "operationId": "createUsersWithArrayInput",
1120
+ "produces": [
1121
+ "application/xml",
1122
+ "application/json"
1123
+ ],
1124
+ "parameters": [
1125
+ {
1126
+ "in": "body",
1127
+ "name": "body",
1128
+ "description": "List of user object",
1129
+ "required": true,
1130
+ "schema": {
1131
+ "type": "array",
1132
+ "items": {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "id": {
1136
+ "type": "integer",
1137
+ "format": "int64"
1138
+ },
1139
+ "username": {
1140
+ "type": "string"
1141
+ },
1142
+ "firstName": {
1143
+ "type": "string"
1144
+ },
1145
+ "lastName": {
1146
+ "type": "string"
1147
+ },
1148
+ "email": {
1149
+ "type": "string"
1150
+ },
1151
+ "password": {
1152
+ "type": "string"
1153
+ },
1154
+ "phone": {
1155
+ "type": "string"
1156
+ },
1157
+ "userStatus": {
1158
+ "type": "integer",
1159
+ "format": "int32",
1160
+ "description": "User Status"
1161
+ }
1162
+ },
1163
+ "xml": {
1164
+ "name": "User"
1165
+ }
1166
+ }
1167
+ }
1168
+ }
1169
+ ],
1170
+ "responses": {
1171
+ "default": {
1172
+ "description": "successful operation"
1173
+ }
1174
+ }
1175
+ }
1176
+ },
1177
+ "/user/createWithList": {
1178
+ "post": {
1179
+ "tags": [
1180
+ "user"
1181
+ ],
1182
+ "summary": "Creates list of users with given input array",
1183
+ "description": "",
1184
+ "operationId": "createUsersWithListInput",
1185
+ "produces": [
1186
+ "application/xml",
1187
+ "application/json"
1188
+ ],
1189
+ "parameters": [
1190
+ {
1191
+ "in": "body",
1192
+ "name": "body",
1193
+ "description": "List of user object",
1194
+ "required": true,
1195
+ "schema": {
1196
+ "type": "array",
1197
+ "items": {
1198
+ "type": "object",
1199
+ "properties": {
1200
+ "id": {
1201
+ "type": "integer",
1202
+ "format": "int64"
1203
+ },
1204
+ "username": {
1205
+ "type": "string"
1206
+ },
1207
+ "firstName": {
1208
+ "type": "string"
1209
+ },
1210
+ "lastName": {
1211
+ "type": "string"
1212
+ },
1213
+ "email": {
1214
+ "type": "string"
1215
+ },
1216
+ "password": {
1217
+ "type": "string"
1218
+ },
1219
+ "phone": {
1220
+ "type": "string"
1221
+ },
1222
+ "userStatus": {
1223
+ "type": "integer",
1224
+ "format": "int32",
1225
+ "description": "User Status"
1226
+ }
1227
+ },
1228
+ "xml": {
1229
+ "name": "User"
1230
+ }
1231
+ }
1232
+ }
1233
+ }
1234
+ ],
1235
+ "responses": {
1236
+ "default": {
1237
+ "description": "successful operation"
1238
+ }
1239
+ }
1240
+ }
1241
+ },
1242
+ "/user/login": {
1243
+ "get": {
1244
+ "tags": [
1245
+ "user"
1246
+ ],
1247
+ "summary": "Logs user into the system",
1248
+ "description": "",
1249
+ "operationId": "loginUser",
1250
+ "produces": [
1251
+ "application/xml",
1252
+ "application/json"
1253
+ ],
1254
+ "parameters": [
1255
+ {
1256
+ "name": "username",
1257
+ "in": "query",
1258
+ "description": "The user name for login",
1259
+ "required": true,
1260
+ "type": "string"
1261
+ },
1262
+ {
1263
+ "name": "password",
1264
+ "in": "query",
1265
+ "description": "The password for login in clear text",
1266
+ "required": true,
1267
+ "type": "string"
1268
+ }
1269
+ ],
1270
+ "responses": {
1271
+ "200": {
1272
+ "description": "successful operation",
1273
+ "schema": {
1274
+ "type": "string"
1275
+ },
1276
+ "headers": {
1277
+ "X-Rate-Limit": {
1278
+ "type": "integer",
1279
+ "format": "int32",
1280
+ "description": "calls per hour allowed by the user"
1281
+ },
1282
+ "X-Expires-After": {
1283
+ "type": "string",
1284
+ "format": "date-time",
1285
+ "description": "date in UTC when token expires"
1286
+ }
1287
+ }
1288
+ },
1289
+ "400": {
1290
+ "description": "Invalid username/password supplied"
1291
+ }
1292
+ }
1293
+ }
1294
+ },
1295
+ "/user/logout": {
1296
+ "get": {
1297
+ "tags": [
1298
+ "user"
1299
+ ],
1300
+ "summary": "Logs out current logged in user session",
1301
+ "description": "",
1302
+ "operationId": "logoutUser",
1303
+ "produces": [
1304
+ "application/xml",
1305
+ "application/json"
1306
+ ],
1307
+ "parameters": [],
1308
+ "responses": {
1309
+ "default": {
1310
+ "description": "successful operation"
1311
+ }
1312
+ }
1313
+ }
1314
+ },
1315
+ "/user/{username}": {
1316
+ "get": {
1317
+ "tags": [
1318
+ "user"
1319
+ ],
1320
+ "summary": "Get user by user name",
1321
+ "description": "",
1322
+ "operationId": "getUserByName",
1323
+ "produces": [
1324
+ "application/xml",
1325
+ "application/json"
1326
+ ],
1327
+ "parameters": [
1328
+ {
1329
+ "name": "username",
1330
+ "in": "path",
1331
+ "description": "The name that needs to be fetched. Use user1 for testing. ",
1332
+ "required": true,
1333
+ "type": "string"
1334
+ }
1335
+ ],
1336
+ "responses": {
1337
+ "200": {
1338
+ "description": "successful operation",
1339
+ "schema": {
1340
+ "type": "object",
1341
+ "properties": {
1342
+ "id": {
1343
+ "type": "integer",
1344
+ "format": "int64"
1345
+ },
1346
+ "username": {
1347
+ "type": "string"
1348
+ },
1349
+ "firstName": {
1350
+ "type": "string"
1351
+ },
1352
+ "lastName": {
1353
+ "type": "string"
1354
+ },
1355
+ "email": {
1356
+ "type": "string"
1357
+ },
1358
+ "password": {
1359
+ "type": "string"
1360
+ },
1361
+ "phone": {
1362
+ "type": "string"
1363
+ },
1364
+ "userStatus": {
1365
+ "type": "integer",
1366
+ "format": "int32",
1367
+ "description": "User Status"
1368
+ }
1369
+ },
1370
+ "xml": {
1371
+ "name": "User"
1372
+ }
1373
+ }
1374
+ },
1375
+ "400": {
1376
+ "description": "Invalid username supplied"
1377
+ },
1378
+ "404": {
1379
+ "description": "User not found"
1380
+ }
1381
+ }
1382
+ },
1383
+ "put": {
1384
+ "tags": [
1385
+ "user"
1386
+ ],
1387
+ "summary": "Updated user",
1388
+ "description": "This can only be done by the logged in user.",
1389
+ "operationId": "updateUser",
1390
+ "produces": [
1391
+ "application/xml",
1392
+ "application/json"
1393
+ ],
1394
+ "parameters": [
1395
+ {
1396
+ "name": "username",
1397
+ "in": "path",
1398
+ "description": "name that need to be updated",
1399
+ "required": true,
1400
+ "type": "string"
1401
+ },
1402
+ {
1403
+ "in": "body",
1404
+ "name": "body",
1405
+ "description": "Updated user object",
1406
+ "required": true,
1407
+ "schema": {
1408
+ "type": "object",
1409
+ "properties": {
1410
+ "id": {
1411
+ "type": "integer",
1412
+ "format": "int64"
1413
+ },
1414
+ "username": {
1415
+ "type": "string"
1416
+ },
1417
+ "firstName": {
1418
+ "type": "string"
1419
+ },
1420
+ "lastName": {
1421
+ "type": "string"
1422
+ },
1423
+ "email": {
1424
+ "type": "string"
1425
+ },
1426
+ "password": {
1427
+ "type": "string"
1428
+ },
1429
+ "phone": {
1430
+ "type": "string"
1431
+ },
1432
+ "userStatus": {
1433
+ "type": "integer",
1434
+ "format": "int32",
1435
+ "description": "User Status"
1436
+ }
1437
+ },
1438
+ "xml": {
1439
+ "name": "User"
1440
+ }
1441
+ }
1442
+ }
1443
+ ],
1444
+ "responses": {
1445
+ "400": {
1446
+ "description": "Invalid user supplied"
1447
+ },
1448
+ "404": {
1449
+ "description": "User not found"
1450
+ }
1451
+ }
1452
+ },
1453
+ "delete": {
1454
+ "tags": [
1455
+ "user"
1456
+ ],
1457
+ "summary": "Delete user",
1458
+ "description": "This can only be done by the logged in user.",
1459
+ "operationId": "deleteUser",
1460
+ "produces": [
1461
+ "application/xml",
1462
+ "application/json"
1463
+ ],
1464
+ "parameters": [
1465
+ {
1466
+ "name": "username",
1467
+ "in": "path",
1468
+ "description": "The name that needs to be deleted",
1469
+ "required": true,
1470
+ "type": "string"
1471
+ }
1472
+ ],
1473
+ "responses": {
1474
+ "400": {
1475
+ "description": "Invalid username supplied"
1476
+ },
1477
+ "404": {
1478
+ "description": "User not found"
1479
+ }
1480
+ }
1481
+ }
1482
+ }
1483
+ },
1484
+ "securityDefinitions": {
1485
+ "petstore_auth": {
1486
+ "type": "oauth2",
1487
+ "authorizationUrl": "http://petstore.swagger.io/oauth/dialog",
1488
+ "flow": "implicit",
1489
+ "scopes": {
1490
+ "write:pets": "modify pets in your account",
1491
+ "read:pets": "read your pets"
1492
+ }
1493
+ },
1494
+ "api_key": {
1495
+ "type": "apiKey",
1496
+ "name": "api_key",
1497
+ "in": "header"
1498
+ }
1499
+ },
1500
+ "definitions": {
1501
+ "Order": {
1502
+ "type": "object",
1503
+ "properties": {
1504
+ "id": {
1505
+ "type": "integer",
1506
+ "format": "int64"
1507
+ },
1508
+ "petId": {
1509
+ "type": "integer",
1510
+ "format": "int64"
1511
+ },
1512
+ "quantity": {
1513
+ "type": "integer",
1514
+ "format": "int32"
1515
+ },
1516
+ "shipDate": {
1517
+ "type": "string",
1518
+ "format": "date-time"
1519
+ },
1520
+ "status": {
1521
+ "type": "string",
1522
+ "description": "Order Status",
1523
+ "enum": [
1524
+ "placed",
1525
+ "approved",
1526
+ "delivered"
1527
+ ]
1528
+ },
1529
+ "complete": {
1530
+ "type": "boolean",
1531
+ "default": false
1532
+ }
1533
+ },
1534
+ "xml": {
1535
+ "name": "Order"
1536
+ }
1537
+ },
1538
+ "Category": {
1539
+ "type": "object",
1540
+ "properties": {
1541
+ "id": {
1542
+ "type": "integer",
1543
+ "format": "int64"
1544
+ },
1545
+ "name": {
1546
+ "type": "string"
1547
+ }
1548
+ },
1549
+ "xml": {
1550
+ "name": "Category"
1551
+ }
1552
+ },
1553
+ "User": {
1554
+ "type": "object",
1555
+ "properties": {
1556
+ "id": {
1557
+ "type": "integer",
1558
+ "format": "int64"
1559
+ },
1560
+ "username": {
1561
+ "type": "string"
1562
+ },
1563
+ "firstName": {
1564
+ "type": "string"
1565
+ },
1566
+ "lastName": {
1567
+ "type": "string"
1568
+ },
1569
+ "email": {
1570
+ "type": "string"
1571
+ },
1572
+ "password": {
1573
+ "type": "string"
1574
+ },
1575
+ "phone": {
1576
+ "type": "string"
1577
+ },
1578
+ "userStatus": {
1579
+ "type": "integer",
1580
+ "format": "int32",
1581
+ "description": "User Status"
1582
+ }
1583
+ },
1584
+ "xml": {
1585
+ "name": "User"
1586
+ }
1587
+ },
1588
+ "Tag": {
1589
+ "type": "object",
1590
+ "properties": {
1591
+ "id": {
1592
+ "type": "integer",
1593
+ "format": "int64"
1594
+ },
1595
+ "name": {
1596
+ "type": "string"
1597
+ }
1598
+ },
1599
+ "xml": {
1600
+ "name": "Tag"
1601
+ }
1602
+ },
1603
+ "Pet": {
1604
+ "type": "object",
1605
+ "required": [
1606
+ "name",
1607
+ "photoUrls"
1608
+ ],
1609
+ "properties": {
1610
+ "id": {
1611
+ "type": "integer",
1612
+ "format": "int64"
1613
+ },
1614
+ "category": {
1615
+ "type": "object",
1616
+ "properties": {
1617
+ "id": {
1618
+ "type": "integer",
1619
+ "format": "int64"
1620
+ },
1621
+ "name": {
1622
+ "type": "string"
1623
+ }
1624
+ },
1625
+ "xml": {
1626
+ "name": "Category"
1627
+ }
1628
+ },
1629
+ "name": {
1630
+ "type": "string",
1631
+ "example": "doggie"
1632
+ },
1633
+ "photoUrls": {
1634
+ "type": "array",
1635
+ "xml": {
1636
+ "name": "photoUrl",
1637
+ "wrapped": true
1638
+ },
1639
+ "items": {
1640
+ "type": "string"
1641
+ }
1642
+ },
1643
+ "tags": {
1644
+ "type": "array",
1645
+ "xml": {
1646
+ "name": "tag",
1647
+ "wrapped": true
1648
+ },
1649
+ "items": {
1650
+ "type": "object",
1651
+ "properties": {
1652
+ "id": {
1653
+ "type": "integer",
1654
+ "format": "int64"
1655
+ },
1656
+ "name": {
1657
+ "type": "string"
1658
+ }
1659
+ },
1660
+ "xml": {
1661
+ "name": "Tag"
1662
+ }
1663
+ }
1664
+ },
1665
+ "status": {
1666
+ "type": "string",
1667
+ "description": "pet status in the store",
1668
+ "enum": [
1669
+ "available",
1670
+ "pending",
1671
+ "sold"
1672
+ ]
1673
+ }
1674
+ },
1675
+ "xml": {
1676
+ "name": "Pet"
1677
+ }
1678
+ },
1679
+ "ApiResponse": {
1680
+ "type": "object",
1681
+ "properties": {
1682
+ "code": {
1683
+ "type": "integer",
1684
+ "format": "int32"
1685
+ },
1686
+ "type": {
1687
+ "type": "string"
1688
+ },
1689
+ "message": {
1690
+ "type": "string"
1691
+ }
1692
+ }
1693
+ }
1694
+ },
1695
+ "externalDocs": {
1696
+ "description": "Find out more about Swagger",
1697
+ "url": "http://swagger.io"
1698
+ }
1699
+ }