open_api-loader 0.0.1

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 (57) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +15 -0
  3. data/.gitignore +13 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +28 -0
  6. data/.travis.yml +24 -0
  7. data/CHANGELOG.md +10 -0
  8. data/Gemfile +8 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +99 -0
  11. data/Rakefile +10 -0
  12. data/bin/console +6 -0
  13. data/bin/setup +6 -0
  14. data/lib/open_api-loader.rb +1 -0
  15. data/lib/open_api/loader.rb +44 -0
  16. data/lib/open_api/loader/collector.rb +61 -0
  17. data/lib/open_api/loader/denormalizer.rb +27 -0
  18. data/lib/open_api/loader/denormalizer/parameters.rb +46 -0
  19. data/lib/open_api/loader/denormalizer/security.rb +35 -0
  20. data/lib/open_api/loader/denormalizer/servers.rb +36 -0
  21. data/lib/open_api/loader/denormalizer/variables.rb +54 -0
  22. data/lib/open_api/loader/reader.rb +47 -0
  23. data/lib/open_api/loader/ref.rb +85 -0
  24. data/lib/open_api/loader/translator.rb +50 -0
  25. data/lib/open_api/loader/translator/clean_definitions.rb +16 -0
  26. data/lib/open_api/loader/translator/convert_bodies.rb +77 -0
  27. data/lib/open_api/loader/translator/convert_forms.rb +71 -0
  28. data/lib/open_api/loader/translator/convert_parameters.rb +135 -0
  29. data/lib/open_api/loader/translator/convert_responses.rb +63 -0
  30. data/lib/open_api/loader/translator/convert_security_schemes.rb +49 -0
  31. data/lib/open_api/loader/translator/convert_servers.rb +46 -0
  32. data/lib/open_api/loader/translator/convert_version.rb +12 -0
  33. data/lib/open_api/loader/translator/denormalize_consumes.rb +44 -0
  34. data/lib/open_api/loader/translator/denormalize_parameters.rb +55 -0
  35. data/lib/open_api/loader/translator/denormalize_produces.rb +53 -0
  36. data/open_api-loader.gemspec +25 -0
  37. data/spec/fixtures/oas2/collected.yaml +1012 -0
  38. data/spec/fixtures/oas2/denormalized.yaml +1462 -0
  39. data/spec/fixtures/oas2/loaded.yaml +564 -0
  40. data/spec/fixtures/oas2/models.yaml +118 -0
  41. data/spec/fixtures/oas2/source.json +1 -0
  42. data/spec/fixtures/oas2/source.yaml +569 -0
  43. data/spec/fixtures/oas2/translated.yaml +1396 -0
  44. data/spec/fixtures/oas3/collected.yaml +233 -0
  45. data/spec/fixtures/oas3/denormalized.yaml +233 -0
  46. data/spec/fixtures/oas3/source.json +1 -0
  47. data/spec/fixtures/oas3/source.yaml +217 -0
  48. data/spec/loader_spec.rb +53 -0
  49. data/spec/spec_helper.rb +17 -0
  50. data/spec/support/fixture_helpers.rb +18 -0
  51. data/spec/support/path_helpers.rb +27 -0
  52. data/spec/unit/collector_spec.rb +31 -0
  53. data/spec/unit/denormalizer_spec.rb +17 -0
  54. data/spec/unit/reader_spec.rb +53 -0
  55. data/spec/unit/ref_spec.rb +107 -0
  56. data/spec/unit/translator_spec.rb +15 -0
  57. metadata +232 -0
@@ -0,0 +1,1396 @@
1
+ ---
2
+ openapi: 3.0.0
3
+ info:
4
+ description: 'This is a sample server Petstore server. You can find out more about Swagger
5
+ at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For
6
+ this sample, you can use the api key `special-key` to test the authorization filters.'
7
+ version: 1.0.0
8
+ title: Swagger Petstore
9
+ termsOfService: http://swagger.io/terms/
10
+ contact:
11
+ email: apiteam@swagger.io
12
+ license:
13
+ name: Apache 2.0
14
+ url: http://www.apache.org/licenses/LICENSE-2.0.html
15
+ servers:
16
+ - url: "{scheme}://petstore.swagger.io/v2"
17
+ variables:
18
+ scheme:
19
+ enum:
20
+ - http
21
+ tags:
22
+ - name: pet
23
+ description: Everything about your Pets
24
+ externalDocs:
25
+ description: Find out more
26
+ url: http://swagger.io
27
+ - name: store
28
+ description: Access to Petstore orders
29
+ - name: user
30
+ description: Operations about user
31
+ externalDocs:
32
+ description: Find out more about our store
33
+ url: http://swagger.io
34
+ paths:
35
+ "/pet":
36
+ post:
37
+ tags:
38
+ - pet
39
+ summary: Add a new pet to the store
40
+ description: ''
41
+ operationId: addPet
42
+ requestBody:
43
+ description: Pet object that needs to be added to the store
44
+ required: true
45
+ content:
46
+ application/json:
47
+ schema:
48
+ type: object
49
+ required:
50
+ - name
51
+ - photoUrls
52
+ properties:
53
+ id:
54
+ type: integer
55
+ format: int64
56
+ category:
57
+ type: object
58
+ properties:
59
+ id:
60
+ type: integer
61
+ format: int64
62
+ name:
63
+ type: string
64
+ name:
65
+ type: string
66
+ example: doggie
67
+ photoUrls:
68
+ type: array
69
+ items:
70
+ type: string
71
+ tags:
72
+ type: array
73
+ items:
74
+ type: object
75
+ properties:
76
+ id:
77
+ type: integer
78
+ format: int64
79
+ name:
80
+ type: string
81
+ status:
82
+ type: string
83
+ description: pet status in the store
84
+ enum:
85
+ - available
86
+ - pending
87
+ - sold
88
+ application/xml:
89
+ schema:
90
+ type: object
91
+ required:
92
+ - name
93
+ - photoUrls
94
+ properties:
95
+ id:
96
+ type: integer
97
+ format: int64
98
+ category:
99
+ type: object
100
+ properties:
101
+ id:
102
+ type: integer
103
+ format: int64
104
+ name:
105
+ type: string
106
+ xml:
107
+ name: Category
108
+ name:
109
+ type: string
110
+ example: doggie
111
+ photoUrls:
112
+ type: array
113
+ xml:
114
+ name: photoUrl
115
+ wrapped: true
116
+ items:
117
+ type: string
118
+ tags:
119
+ type: array
120
+ xml:
121
+ name: tag
122
+ wrapped: true
123
+ items:
124
+ type: object
125
+ properties:
126
+ id:
127
+ type: integer
128
+ format: int64
129
+ name:
130
+ type: string
131
+ xml:
132
+ name: Tag
133
+ status:
134
+ type: string
135
+ description: pet status in the store
136
+ enum:
137
+ - available
138
+ - pending
139
+ - sold
140
+ xml:
141
+ name: Pet
142
+ responses:
143
+ '405':
144
+ description: Invalid input
145
+ security:
146
+ - petstore_auth:
147
+ - write:pets
148
+ - read:pets
149
+ put:
150
+ tags:
151
+ - pet
152
+ summary: Update an existing pet
153
+ description: ''
154
+ operationId: updatePet
155
+ requestBody:
156
+ description: Pet object that needs to be added to the store
157
+ required: true
158
+ content:
159
+ application/json:
160
+ schema:
161
+ type: object
162
+ required:
163
+ - name
164
+ - photoUrls
165
+ properties:
166
+ id:
167
+ type: integer
168
+ format: int64
169
+ category:
170
+ type: object
171
+ properties:
172
+ id:
173
+ type: integer
174
+ format: int64
175
+ name:
176
+ type: string
177
+ name:
178
+ type: string
179
+ example: doggie
180
+ photoUrls:
181
+ type: array
182
+ items:
183
+ type: string
184
+ tags:
185
+ type: array
186
+ items:
187
+ type: object
188
+ properties:
189
+ id:
190
+ type: integer
191
+ format: int64
192
+ name:
193
+ type: string
194
+ status:
195
+ type: string
196
+ description: pet status in the store
197
+ enum:
198
+ - available
199
+ - pending
200
+ - sold
201
+ application/xml:
202
+ schema:
203
+ type: object
204
+ required:
205
+ - name
206
+ - photoUrls
207
+ properties:
208
+ id:
209
+ type: integer
210
+ format: int64
211
+ category:
212
+ type: object
213
+ properties:
214
+ id:
215
+ type: integer
216
+ format: int64
217
+ name:
218
+ type: string
219
+ xml:
220
+ name: Category
221
+ name:
222
+ type: string
223
+ example: doggie
224
+ photoUrls:
225
+ type: array
226
+ xml:
227
+ name: photoUrl
228
+ wrapped: true
229
+ items:
230
+ type: string
231
+ tags:
232
+ type: array
233
+ xml:
234
+ name: tag
235
+ wrapped: true
236
+ items:
237
+ type: object
238
+ properties:
239
+ id:
240
+ type: integer
241
+ format: int64
242
+ name:
243
+ type: string
244
+ xml:
245
+ name: Tag
246
+ status:
247
+ type: string
248
+ description: pet status in the store
249
+ enum:
250
+ - available
251
+ - pending
252
+ - sold
253
+ xml:
254
+ name: Pet
255
+ responses:
256
+ '400':
257
+ description: Invalid ID supplied
258
+ '404':
259
+ description: Pet not found
260
+ '405':
261
+ description: Validators exception
262
+ security:
263
+ - petstore_auth:
264
+ - write:pets
265
+ - read:pets
266
+ "/pet/findByStatus":
267
+ get:
268
+ tags:
269
+ - pet
270
+ summary: Finds Pets by status
271
+ description: Multiple status values can be provided with comma separated strings
272
+ operationId: findPetsByStatus
273
+ parameters:
274
+ - name: status
275
+ in: query
276
+ description: Status values that need to be considered for filter
277
+ required: true
278
+ schema:
279
+ type: array
280
+ items:
281
+ type: string
282
+ enum:
283
+ - available
284
+ - pending
285
+ - sold
286
+ default: available
287
+ style: form
288
+ explode: true
289
+ responses:
290
+ '200':
291
+ description: successful operation
292
+ content:
293
+ application/json:
294
+ schema:
295
+ type: array
296
+ items:
297
+ type: object
298
+ required:
299
+ - name
300
+ - photoUrls
301
+ properties:
302
+ id:
303
+ type: integer
304
+ format: int64
305
+ category:
306
+ type: object
307
+ properties:
308
+ id:
309
+ type: integer
310
+ format: int64
311
+ name:
312
+ type: string
313
+ name:
314
+ type: string
315
+ example: doggie
316
+ photoUrls:
317
+ type: array
318
+ items:
319
+ type: string
320
+ tags:
321
+ type: array
322
+ items:
323
+ type: object
324
+ properties:
325
+ id:
326
+ type: integer
327
+ format: int64
328
+ name:
329
+ type: string
330
+ status:
331
+ type: string
332
+ description: pet status in the store
333
+ enum:
334
+ - available
335
+ - pending
336
+ - sold
337
+ application/xml:
338
+ schema:
339
+ type: array
340
+ items:
341
+ type: object
342
+ required:
343
+ - name
344
+ - photoUrls
345
+ properties:
346
+ id:
347
+ type: integer
348
+ format: int64
349
+ category:
350
+ type: object
351
+ properties:
352
+ id:
353
+ type: integer
354
+ format: int64
355
+ name:
356
+ type: string
357
+ xml:
358
+ name: Category
359
+ name:
360
+ type: string
361
+ example: doggie
362
+ photoUrls:
363
+ type: array
364
+ xml:
365
+ name: photoUrl
366
+ wrapped: true
367
+ items:
368
+ type: string
369
+ tags:
370
+ type: array
371
+ xml:
372
+ name: tag
373
+ wrapped: true
374
+ items:
375
+ type: object
376
+ properties:
377
+ id:
378
+ type: integer
379
+ format: int64
380
+ name:
381
+ type: string
382
+ xml:
383
+ name: Tag
384
+ status:
385
+ type: string
386
+ description: pet status in the store
387
+ enum:
388
+ - available
389
+ - pending
390
+ - sold
391
+ xml:
392
+ name: Pet
393
+ '400':
394
+ description: Invalid status value
395
+ security:
396
+ - petstore_auth:
397
+ - write:pets
398
+ - read:pets
399
+ "/pet/findByTags":
400
+ get:
401
+ tags:
402
+ - pet
403
+ summary: Finds Pets by tags
404
+ description: Muliple tags can be provided with comma separated strings. Use tag1,
405
+ tag2, tag3 for testing.
406
+ operationId: findPetsByTags
407
+ parameters:
408
+ - name: tags
409
+ in: query
410
+ description: Tags to filter by
411
+ required: true
412
+ schema:
413
+ type: array
414
+ items:
415
+ type: string
416
+ style: form
417
+ explode: true
418
+ responses:
419
+ '200':
420
+ description: successful operation
421
+ content:
422
+ application/json:
423
+ schema:
424
+ type: array
425
+ items:
426
+ type: object
427
+ required:
428
+ - name
429
+ - photoUrls
430
+ properties:
431
+ id:
432
+ type: integer
433
+ format: int64
434
+ category:
435
+ type: object
436
+ properties:
437
+ id:
438
+ type: integer
439
+ format: int64
440
+ name:
441
+ type: string
442
+ name:
443
+ type: string
444
+ example: doggie
445
+ photoUrls:
446
+ type: array
447
+ items:
448
+ type: string
449
+ tags:
450
+ type: array
451
+ items:
452
+ type: object
453
+ properties:
454
+ id:
455
+ type: integer
456
+ format: int64
457
+ name:
458
+ type: string
459
+ status:
460
+ type: string
461
+ description: pet status in the store
462
+ enum:
463
+ - available
464
+ - pending
465
+ - sold
466
+ application/xml:
467
+ schema:
468
+ type: array
469
+ items:
470
+ type: object
471
+ required:
472
+ - name
473
+ - photoUrls
474
+ properties:
475
+ id:
476
+ type: integer
477
+ format: int64
478
+ category:
479
+ type: object
480
+ properties:
481
+ id:
482
+ type: integer
483
+ format: int64
484
+ name:
485
+ type: string
486
+ xml:
487
+ name: Category
488
+ name:
489
+ type: string
490
+ example: doggie
491
+ photoUrls:
492
+ type: array
493
+ xml:
494
+ name: photoUrl
495
+ wrapped: true
496
+ items:
497
+ type: string
498
+ tags:
499
+ type: array
500
+ xml:
501
+ name: tag
502
+ wrapped: true
503
+ items:
504
+ type: object
505
+ properties:
506
+ id:
507
+ type: integer
508
+ format: int64
509
+ name:
510
+ type: string
511
+ xml:
512
+ name: Tag
513
+ status:
514
+ type: string
515
+ description: pet status in the store
516
+ enum:
517
+ - available
518
+ - pending
519
+ - sold
520
+ xml:
521
+ name: Pet
522
+ '400':
523
+ description: Invalid tag value
524
+ security:
525
+ - petstore_auth:
526
+ - write:pets
527
+ - read:pets
528
+ deprecated: true
529
+ "/pet/{petId}":
530
+ parameters:
531
+ - name: petId
532
+ in: path
533
+ description: ID of pet
534
+ required: true
535
+ schema:
536
+ type: integer
537
+ format: int64
538
+ get:
539
+ tags:
540
+ - pet
541
+ summary: Find pet by ID
542
+ description: Returns a single pet
543
+ operationId: getPetById
544
+ responses:
545
+ '200':
546
+ description: successful operation
547
+ content:
548
+ application/xml:
549
+ schema:
550
+ type: object
551
+ required:
552
+ - name
553
+ - photoUrls
554
+ properties:
555
+ id:
556
+ type: integer
557
+ format: int64
558
+ category:
559
+ type: object
560
+ properties:
561
+ id:
562
+ type: integer
563
+ format: int64
564
+ name:
565
+ type: string
566
+ xml:
567
+ name: Category
568
+ name:
569
+ type: string
570
+ example: doggie
571
+ photoUrls:
572
+ type: array
573
+ xml:
574
+ name: photoUrl
575
+ wrapped: true
576
+ items:
577
+ type: string
578
+ tags:
579
+ type: array
580
+ xml:
581
+ name: tag
582
+ wrapped: true
583
+ items:
584
+ type: object
585
+ properties:
586
+ id:
587
+ type: integer
588
+ format: int64
589
+ name:
590
+ type: string
591
+ xml:
592
+ name: Tag
593
+ status:
594
+ type: string
595
+ description: pet status in the store
596
+ enum:
597
+ - available
598
+ - pending
599
+ - sold
600
+ xml:
601
+ name: Pet
602
+ application/json:
603
+ schema:
604
+ type: object
605
+ required:
606
+ - name
607
+ - photoUrls
608
+ properties:
609
+ id:
610
+ type: integer
611
+ format: int64
612
+ category:
613
+ type: object
614
+ properties:
615
+ id:
616
+ type: integer
617
+ format: int64
618
+ name:
619
+ type: string
620
+ name:
621
+ type: string
622
+ example: doggie
623
+ photoUrls:
624
+ type: array
625
+ items:
626
+ type: string
627
+ tags:
628
+ type: array
629
+ items:
630
+ type: object
631
+ properties:
632
+ id:
633
+ type: integer
634
+ format: int64
635
+ name:
636
+ type: string
637
+ status:
638
+ type: string
639
+ description: pet status in the store
640
+ enum:
641
+ - available
642
+ - pending
643
+ - sold
644
+ '400':
645
+ description: Invalid ID supplied
646
+ '404':
647
+ description: Pet not found
648
+ security:
649
+ - api_key: []
650
+ post:
651
+ tags:
652
+ - pet
653
+ summary: Updates a pet in the store with form data
654
+ description: ''
655
+ operationId: updatePetWithForm
656
+ requestBody:
657
+ content:
658
+ application/x-www-form-urlencoded:
659
+ schema:
660
+ type: object
661
+ properties:
662
+ name:
663
+ description: Updated name of the pet
664
+ required: false
665
+ type: string
666
+ status:
667
+ description: Updated status of the pet
668
+ required: false
669
+ type: string
670
+ responses:
671
+ '405':
672
+ description: Invalid input
673
+ security:
674
+ - petstore_auth:
675
+ - write:pets
676
+ - read:pets
677
+ delete:
678
+ tags:
679
+ - pet
680
+ summary: Deletes a pet
681
+ description: ''
682
+ operationId: deletePet
683
+ parameters:
684
+ - name: api_key
685
+ in: header
686
+ required: false
687
+ schema:
688
+ type: string
689
+ responses:
690
+ '400':
691
+ description: Invalid ID supplied
692
+ '404':
693
+ description: Pet not found
694
+ security:
695
+ - petstore_auth:
696
+ - write:pets
697
+ - read:pets
698
+ "/pet/{petId}/uploadImage":
699
+ parameters:
700
+ - name: petId
701
+ in: path
702
+ description: ID of pet
703
+ required: true
704
+ schema:
705
+ type: integer
706
+ format: int64
707
+ post:
708
+ tags:
709
+ - pet
710
+ summary: uploads an image
711
+ description: ''
712
+ operationId: uploadFile
713
+ requestBody:
714
+ content:
715
+ multipart/form-data:
716
+ schema:
717
+ type: object
718
+ properties:
719
+ additionalMetadata:
720
+ description: Additional data to pass to server
721
+ required: false
722
+ type: string
723
+ file:
724
+ description: file to upload
725
+ required: false
726
+ type: string
727
+ responses:
728
+ '200':
729
+ description: successful operation
730
+ content:
731
+ application/json:
732
+ schema:
733
+ type: object
734
+ properties:
735
+ code:
736
+ type: integer
737
+ format: int32
738
+ type:
739
+ type: string
740
+ message:
741
+ type: string
742
+ security:
743
+ - petstore_auth:
744
+ - write:pets
745
+ - read:pets
746
+ "/store/inventory":
747
+ get:
748
+ tags:
749
+ - store
750
+ summary: Returns pet inventories by status
751
+ description: Returns a map of status codes to quantities
752
+ operationId: getInventory
753
+ responses:
754
+ '200':
755
+ description: successful operation
756
+ content:
757
+ application/json:
758
+ schema:
759
+ type: object
760
+ additionalProperties:
761
+ type: integer
762
+ format: int32
763
+ security:
764
+ - api_key: []
765
+ "/store/order":
766
+ post:
767
+ tags:
768
+ - store
769
+ summary: Place an order for a pet
770
+ description: ''
771
+ operationId: placeOrder
772
+ requestBody:
773
+ required: true
774
+ description: order placed for purchasing the pet
775
+ content:
776
+ application/json:
777
+ schema:
778
+ type: object
779
+ properties:
780
+ id:
781
+ type: integer
782
+ format: int64
783
+ petId:
784
+ type: integer
785
+ format: int64
786
+ quantity:
787
+ type: integer
788
+ format: int32
789
+ shipDate:
790
+ type: string
791
+ format: date-time
792
+ status:
793
+ type: string
794
+ description: Order Status
795
+ enum:
796
+ - placed
797
+ - approved
798
+ - delivered
799
+ complete:
800
+ type: boolean
801
+ default: false
802
+ application/xml:
803
+ schema:
804
+ type: object
805
+ properties:
806
+ id:
807
+ type: integer
808
+ format: int64
809
+ petId:
810
+ type: integer
811
+ format: int64
812
+ quantity:
813
+ type: integer
814
+ format: int32
815
+ shipDate:
816
+ type: string
817
+ format: date-time
818
+ status:
819
+ type: string
820
+ description: Order Status
821
+ enum:
822
+ - placed
823
+ - approved
824
+ - delivered
825
+ complete:
826
+ type: boolean
827
+ default: false
828
+ xml:
829
+ name: Order
830
+ responses:
831
+ '200':
832
+ description: successful operation
833
+ content:
834
+ application/json:
835
+ schema:
836
+ type: object
837
+ properties:
838
+ id:
839
+ type: integer
840
+ format: int64
841
+ petId:
842
+ type: integer
843
+ format: int64
844
+ quantity:
845
+ type: integer
846
+ format: int32
847
+ shipDate:
848
+ type: string
849
+ format: date-time
850
+ status:
851
+ type: string
852
+ description: Order Status
853
+ enum:
854
+ - placed
855
+ - approved
856
+ - delivered
857
+ complete:
858
+ type: boolean
859
+ default: false
860
+ application/xml:
861
+ schema:
862
+ type: object
863
+ properties:
864
+ id:
865
+ type: integer
866
+ format: int64
867
+ petId:
868
+ type: integer
869
+ format: int64
870
+ quantity:
871
+ type: integer
872
+ format: int32
873
+ shipDate:
874
+ type: string
875
+ format: date-time
876
+ status:
877
+ type: string
878
+ description: Order Status
879
+ enum:
880
+ - placed
881
+ - approved
882
+ - delivered
883
+ complete:
884
+ type: boolean
885
+ default: false
886
+ xml:
887
+ name: Order
888
+ '400':
889
+ description: Invalid Order
890
+ "/store/order/{orderId}":
891
+ parameters:
892
+ - name: "orderId"
893
+ in: "path"
894
+ description: ID of purchase order
895
+ required: true
896
+ schema:
897
+ type: "integer"
898
+ maximum: 10.0
899
+ minimum: 1.0
900
+ format: "int64"
901
+ get:
902
+ tags:
903
+ - store
904
+ summary: Find purchase order by ID
905
+ description: For valid response try integer IDs with value >= 1 and <= 10. Other
906
+ values will generated exceptions
907
+ operationId: getOrderById
908
+ responses:
909
+ '200':
910
+ description: successful operation
911
+ content:
912
+ application/json:
913
+ schema:
914
+ type: object
915
+ properties:
916
+ id:
917
+ type: integer
918
+ format: int64
919
+ petId:
920
+ type: integer
921
+ format: int64
922
+ quantity:
923
+ type: integer
924
+ format: int32
925
+ shipDate:
926
+ type: string
927
+ format: date-time
928
+ status:
929
+ type: string
930
+ description: Order Status
931
+ enum:
932
+ - placed
933
+ - approved
934
+ - delivered
935
+ complete:
936
+ type: boolean
937
+ default: false
938
+ application/xml:
939
+ schema:
940
+ type: object
941
+ properties:
942
+ id:
943
+ type: integer
944
+ format: int64
945
+ petId:
946
+ type: integer
947
+ format: int64
948
+ quantity:
949
+ type: integer
950
+ format: int32
951
+ shipDate:
952
+ type: string
953
+ format: date-time
954
+ status:
955
+ type: string
956
+ description: Order Status
957
+ enum:
958
+ - placed
959
+ - approved
960
+ - delivered
961
+ complete:
962
+ type: boolean
963
+ default: false
964
+ xml:
965
+ name: Order
966
+ '400':
967
+ description: Invalid ID supplied
968
+ '404':
969
+ description: Order not found
970
+ delete:
971
+ tags:
972
+ - store
973
+ summary: Delete purchase order by ID
974
+ description: For valid response try integer IDs with positive integer value. Negative
975
+ or non-integer values will generate API errors
976
+ operationId: deleteOrder
977
+ responses:
978
+ '400':
979
+ description: Invalid ID supplied
980
+ '404':
981
+ description: Order not found
982
+ "/user":
983
+ post:
984
+ tags:
985
+ - user
986
+ summary: Create user
987
+ description: This can only be done by the logged in user.
988
+ operationId: createUser
989
+ requestBody:
990
+ description: Created user object
991
+ required: true
992
+ content:
993
+ application/json:
994
+ schema:
995
+ type: object
996
+ properties:
997
+ id:
998
+ type: integer
999
+ format: int64
1000
+ username:
1001
+ type: string
1002
+ firstName:
1003
+ type: string
1004
+ lastName:
1005
+ type: string
1006
+ email:
1007
+ type: string
1008
+ password:
1009
+ type: string
1010
+ phone:
1011
+ type: string
1012
+ userStatus:
1013
+ type: integer
1014
+ format: int32
1015
+ description: User Status
1016
+ application/xml:
1017
+ schema:
1018
+ type: object
1019
+ properties:
1020
+ id:
1021
+ type: integer
1022
+ format: int64
1023
+ username:
1024
+ type: string
1025
+ firstName:
1026
+ type: string
1027
+ lastName:
1028
+ type: string
1029
+ email:
1030
+ type: string
1031
+ password:
1032
+ type: string
1033
+ phone:
1034
+ type: string
1035
+ userStatus:
1036
+ type: integer
1037
+ format: int32
1038
+ description: User Status
1039
+ xml:
1040
+ name: User
1041
+ responses:
1042
+ default:
1043
+ description: successful operation
1044
+ "/user/createWithArray":
1045
+ post:
1046
+ tags:
1047
+ - user
1048
+ summary: Creates list of users with given input array
1049
+ description: ''
1050
+ operationId: createUsersWithArrayInput
1051
+ requestBody:
1052
+ description: List of user object
1053
+ required: true
1054
+ content:
1055
+ application/json:
1056
+ schema:
1057
+ type: array
1058
+ items:
1059
+ type: object
1060
+ properties:
1061
+ id:
1062
+ type: integer
1063
+ format: int64
1064
+ username:
1065
+ type: string
1066
+ firstName:
1067
+ type: string
1068
+ lastName:
1069
+ type: string
1070
+ email:
1071
+ type: string
1072
+ password:
1073
+ type: string
1074
+ phone:
1075
+ type: string
1076
+ userStatus:
1077
+ type: integer
1078
+ format: int32
1079
+ description: User Status
1080
+ application/xml:
1081
+ schema:
1082
+ type: array
1083
+ items:
1084
+ type: object
1085
+ properties:
1086
+ id:
1087
+ type: integer
1088
+ format: int64
1089
+ username:
1090
+ type: string
1091
+ firstName:
1092
+ type: string
1093
+ lastName:
1094
+ type: string
1095
+ email:
1096
+ type: string
1097
+ password:
1098
+ type: string
1099
+ phone:
1100
+ type: string
1101
+ userStatus:
1102
+ type: integer
1103
+ format: int32
1104
+ description: User Status
1105
+ xml:
1106
+ name: User
1107
+ responses:
1108
+ default:
1109
+ description: successful operation
1110
+ "/user/createWithList":
1111
+ post:
1112
+ tags:
1113
+ - user
1114
+ summary: Creates list of users with given input array
1115
+ description: ''
1116
+ operationId: createUsersWithListInput
1117
+ requestBody:
1118
+ description: List of user object
1119
+ required: true
1120
+ content:
1121
+ application/json:
1122
+ schema:
1123
+ type: array
1124
+ items:
1125
+ type: object
1126
+ properties:
1127
+ id:
1128
+ type: integer
1129
+ format: int64
1130
+ username:
1131
+ type: string
1132
+ firstName:
1133
+ type: string
1134
+ lastName:
1135
+ type: string
1136
+ email:
1137
+ type: string
1138
+ password:
1139
+ type: string
1140
+ phone:
1141
+ type: string
1142
+ userStatus:
1143
+ type: integer
1144
+ format: int32
1145
+ description: User Status
1146
+ application/xml:
1147
+ schema:
1148
+ type: array
1149
+ items:
1150
+ type: object
1151
+ properties:
1152
+ id:
1153
+ type: integer
1154
+ format: int64
1155
+ username:
1156
+ type: string
1157
+ firstName:
1158
+ type: string
1159
+ lastName:
1160
+ type: string
1161
+ email:
1162
+ type: string
1163
+ password:
1164
+ type: string
1165
+ phone:
1166
+ type: string
1167
+ userStatus:
1168
+ type: integer
1169
+ format: int32
1170
+ description: User Status
1171
+ xml:
1172
+ name: User
1173
+ responses:
1174
+ default:
1175
+ description: successful operation
1176
+ "/user/login":
1177
+ get:
1178
+ tags:
1179
+ - user
1180
+ summary: Logs user into the system
1181
+ description: ''
1182
+ operationId: loginUser
1183
+ parameters:
1184
+ - name: username
1185
+ in: query
1186
+ description: The user name for login
1187
+ required: true
1188
+ schema:
1189
+ type: string
1190
+ - name: password
1191
+ in: query
1192
+ description: The password for login in clear text
1193
+ required: true
1194
+ schema:
1195
+ type: string
1196
+ responses:
1197
+ '200':
1198
+ description: successful operation
1199
+ headers:
1200
+ X-Rate-Limit:
1201
+ description: calls per hour allowed by the user
1202
+ schema:
1203
+ type: integer
1204
+ format: int32
1205
+ X-Expires-After:
1206
+ description: date in UTC when token expires
1207
+ schema:
1208
+ type: string
1209
+ format: date-time
1210
+ content:
1211
+ application/xml:
1212
+ schema:
1213
+ type: string
1214
+ application/json:
1215
+ schema:
1216
+ type: string
1217
+ '400':
1218
+ description: Invalid username/password supplied
1219
+ "/user/logout":
1220
+ get:
1221
+ tags:
1222
+ - user
1223
+ summary: Logs out current logged in user session
1224
+ description: ''
1225
+ operationId: logoutUser
1226
+ responses:
1227
+ default:
1228
+ description: successful operation
1229
+ "/user/{username}":
1230
+ parameters:
1231
+ - name: username
1232
+ in: path
1233
+ description: 'The name of the user. Use user1 for testing. '
1234
+ required: true
1235
+ schema:
1236
+ type: string
1237
+ get:
1238
+ tags:
1239
+ - user
1240
+ summary: Get user by user name
1241
+ description: ''
1242
+ operationId: getUserByName
1243
+ responses:
1244
+ '200':
1245
+ description: successful operation
1246
+ content:
1247
+ application/json:
1248
+ schema:
1249
+ type: object
1250
+ properties:
1251
+ id:
1252
+ type: integer
1253
+ format: int64
1254
+ username:
1255
+ type: string
1256
+ firstName:
1257
+ type: string
1258
+ lastName:
1259
+ type: string
1260
+ email:
1261
+ type: string
1262
+ password:
1263
+ type: string
1264
+ phone:
1265
+ type: string
1266
+ userStatus:
1267
+ type: integer
1268
+ format: int32
1269
+ description: User Status
1270
+ application/xml:
1271
+ schema:
1272
+ type: object
1273
+ properties:
1274
+ id:
1275
+ type: integer
1276
+ format: int64
1277
+ username:
1278
+ type: string
1279
+ firstName:
1280
+ type: string
1281
+ lastName:
1282
+ type: string
1283
+ email:
1284
+ type: string
1285
+ password:
1286
+ type: string
1287
+ phone:
1288
+ type: string
1289
+ userStatus:
1290
+ type: integer
1291
+ format: int32
1292
+ description: User Status
1293
+ xml:
1294
+ name: User
1295
+ '400':
1296
+ description: Invalid username supplied
1297
+ '404':
1298
+ description: User not found
1299
+ put:
1300
+ tags:
1301
+ - user
1302
+ summary: Updated user
1303
+ description: This can only be done by the logged in user.
1304
+ operationId: updateUser
1305
+ requestBody:
1306
+ description: Updated user object
1307
+ required: true
1308
+ content:
1309
+ application/json:
1310
+ schema:
1311
+ type: object
1312
+ properties:
1313
+ id:
1314
+ type: integer
1315
+ format: int64
1316
+ username:
1317
+ type: string
1318
+ firstName:
1319
+ type: string
1320
+ lastName:
1321
+ type: string
1322
+ email:
1323
+ type: string
1324
+ password:
1325
+ type: string
1326
+ phone:
1327
+ type: string
1328
+ userStatus:
1329
+ type: integer
1330
+ format: int32
1331
+ description: User Status
1332
+ application/xml:
1333
+ schema:
1334
+ type: object
1335
+ properties:
1336
+ id:
1337
+ type: integer
1338
+ format: int64
1339
+ username:
1340
+ type: string
1341
+ firstName:
1342
+ type: string
1343
+ lastName:
1344
+ type: string
1345
+ email:
1346
+ type: string
1347
+ password:
1348
+ type: string
1349
+ phone:
1350
+ type: string
1351
+ userStatus:
1352
+ type: integer
1353
+ format: int32
1354
+ description: User Status
1355
+ xml:
1356
+ name: User
1357
+ responses:
1358
+ '400':
1359
+ description: Invalid user supplied
1360
+ '404':
1361
+ description: User not found
1362
+ delete:
1363
+ tags:
1364
+ - user
1365
+ summary: Delete user
1366
+ description: This can only be done by the logged in user.
1367
+ operationId: deleteUser
1368
+ parameters:
1369
+ - name: username
1370
+ in: path
1371
+ description: 'The name of the user to be deleted. '
1372
+ required: true
1373
+ schema:
1374
+ type: string
1375
+ responses:
1376
+ '400':
1377
+ description: Invalid username supplied
1378
+ '404':
1379
+ description: User not found
1380
+ components:
1381
+ securitySchemes:
1382
+ petstore_auth:
1383
+ type: oauth2
1384
+ flows:
1385
+ implicit:
1386
+ authorizationUrl: http://petstore.swagger.io/oauth/dialog
1387
+ scopes:
1388
+ write:pets: modify pets in your account
1389
+ read:pets: read your pets
1390
+ api_key:
1391
+ type: apiKey
1392
+ name: api_key
1393
+ in: header
1394
+ externalDocs:
1395
+ description: Find out more about Swagger
1396
+ url: http://swagger.io