2 "title": "A JSON Schema for Swagger 2.0 API.",
3 "id": "http://swagger.io/v2/schema.json#",
4 "$schema": "http://json-schema.org/draft-04/schema#",
11 "additionalProperties": false,
12 "patternProperties": {
14 "$ref": "#/definitions/vendorExtension"
23 "description": "The Swagger version of this document."
26 "$ref": "#/definitions/info"
30 "pattern": "^[^{}/ :\\\\]+(?::\\d+)?$",
31 "description": "The host (name or ip) of the API. Example: 'swagger.io'"
36 "description": "The base path to the API. Example: '/api'."
39 "$ref": "#/definitions/schemesList"
42 "description": "A list of MIME types accepted by the API.",
45 "$ref": "#/definitions/mediaTypeList"
50 "description": "A list of MIME types the API can produce.",
53 "$ref": "#/definitions/mediaTypeList"
58 "$ref": "#/definitions/paths"
61 "$ref": "#/definitions/definitions"
64 "$ref": "#/definitions/parameterDefinitions"
67 "$ref": "#/definitions/responseDefinitions"
70 "$ref": "#/definitions/security"
72 "securityDefinitions": {
73 "$ref": "#/definitions/securityDefinitions"
78 "$ref": "#/definitions/tag"
83 "$ref": "#/definitions/externalDocs"
89 "description": "General information about the API.",
94 "additionalProperties": false,
95 "patternProperties": {
97 "$ref": "#/definitions/vendorExtension"
103 "description": "A unique and precise title of the API."
107 "description": "A semantic version number of the API."
111 "description": "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed."
115 "description": "The terms of service for the API."
118 "$ref": "#/definitions/contact"
121 "$ref": "#/definitions/license"
127 "description": "Contact information for the owners of the API.",
128 "additionalProperties": false,
132 "description": "The identifying name of the contact person/organization."
136 "description": "The URL pointing to the contact information.",
141 "description": "The email address of the contact person/organization.",
145 "patternProperties": {
147 "$ref": "#/definitions/vendorExtension"
156 "additionalProperties": false,
160 "description": "The name of the license type. It's encouraged to use an OSI compatible license."
164 "description": "The URL pointing to the license.",
168 "patternProperties": {
170 "$ref": "#/definitions/vendorExtension"
176 "description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
177 "patternProperties": {
179 "$ref": "#/definitions/vendorExtension"
182 "$ref": "#/definitions/pathItem"
185 "additionalProperties": false
189 "additionalProperties": {
190 "$ref": "#/definitions/schema"
192 "description": "One or more JSON objects describing the schemas being consumed and produced by the API."
194 "parameterDefinitions": {
196 "additionalProperties": {
197 "$ref": "#/definitions/parameter"
199 "description": "One or more JSON representations for parameters"
201 "responseDefinitions": {
203 "additionalProperties": {
204 "$ref": "#/definitions/response"
206 "description": "One or more JSON representations for responses"
210 "additionalProperties": false,
211 "description": "information about external documentation",
224 "patternProperties": {
226 "$ref": "#/definitions/vendorExtension"
232 "additionalProperties": true
236 "description": "The MIME type of the HTTP message."
243 "additionalProperties": false,
244 "patternProperties": {
246 "$ref": "#/definitions/vendorExtension"
259 "description": "A brief summary of the operation."
263 "description": "A longer description of the operation, GitHub Flavored Markdown is allowed."
266 "$ref": "#/definitions/externalDocs"
270 "description": "A unique identifier of the operation."
273 "description": "A list of MIME types the API can produce.",
276 "$ref": "#/definitions/mediaTypeList"
281 "description": "A list of MIME types the API can consume.",
284 "$ref": "#/definitions/mediaTypeList"
289 "$ref": "#/definitions/parametersList"
292 "$ref": "#/definitions/responses"
295 "$ref": "#/definitions/schemesList"
302 "$ref": "#/definitions/security"
308 "additionalProperties": false,
309 "patternProperties": {
311 "$ref": "#/definitions/vendorExtension"
319 "$ref": "#/definitions/operation"
322 "$ref": "#/definitions/operation"
325 "$ref": "#/definitions/operation"
328 "$ref": "#/definitions/operation"
331 "$ref": "#/definitions/operation"
334 "$ref": "#/definitions/operation"
337 "$ref": "#/definitions/operation"
340 "$ref": "#/definitions/parametersList"
346 "description": "Response objects names can either be any valid HTTP status code or 'default'.",
348 "additionalProperties": false,
349 "patternProperties": {
350 "^([0-9]{3})$|^(default)$": {
351 "$ref": "#/definitions/responseValue"
354 "$ref": "#/definitions/vendorExtension"
359 "additionalProperties": false,
360 "patternProperties": {
362 "$ref": "#/definitions/vendorExtension"
370 "$ref": "#/definitions/response"
373 "$ref": "#/definitions/jsonReference"
389 "$ref": "#/definitions/schema"
392 "$ref": "#/definitions/fileSchema"
397 "$ref": "#/definitions/headers"
400 "$ref": "#/definitions/examples"
403 "additionalProperties": false,
404 "patternProperties": {
406 "$ref": "#/definitions/vendorExtension"
412 "additionalProperties": {
413 "$ref": "#/definitions/header"
418 "additionalProperties": false,
437 "$ref": "#/definitions/primitivesItems"
439 "collectionFormat": {
440 "$ref": "#/definitions/collectionFormat"
443 "$ref": "#/definitions/default"
446 "$ref": "#/definitions/maximum"
448 "exclusiveMaximum": {
449 "$ref": "#/definitions/exclusiveMaximum"
452 "$ref": "#/definitions/minimum"
454 "exclusiveMinimum": {
455 "$ref": "#/definitions/exclusiveMinimum"
458 "$ref": "#/definitions/maxLength"
461 "$ref": "#/definitions/minLength"
464 "$ref": "#/definitions/pattern"
467 "$ref": "#/definitions/maxItems"
470 "$ref": "#/definitions/minItems"
473 "$ref": "#/definitions/uniqueItems"
476 "$ref": "#/definitions/enum"
479 "$ref": "#/definitions/multipleOf"
485 "patternProperties": {
487 "$ref": "#/definitions/vendorExtension"
492 "description": "Any property starting with x- is valid.",
493 "additionalProperties": true,
494 "additionalItems": true
503 "patternProperties": {
505 "$ref": "#/definitions/vendorExtension"
511 "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
515 "description": "The name of the parameter."
519 "description": "Determines the location of the parameter.",
526 "description": "Determines whether or not this parameter is required or optional.",
530 "$ref": "#/definitions/schema"
533 "additionalProperties": false
535 "headerParameterSubSchema": {
536 "additionalProperties": false,
537 "patternProperties": {
539 "$ref": "#/definitions/vendorExtension"
545 "description": "Determines whether or not this parameter is required or optional.",
550 "description": "Determines the location of the parameter.",
557 "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
561 "description": "The name of the parameter."
577 "$ref": "#/definitions/primitivesItems"
579 "collectionFormat": {
580 "$ref": "#/definitions/collectionFormat"
583 "$ref": "#/definitions/default"
586 "$ref": "#/definitions/maximum"
588 "exclusiveMaximum": {
589 "$ref": "#/definitions/exclusiveMaximum"
592 "$ref": "#/definitions/minimum"
594 "exclusiveMinimum": {
595 "$ref": "#/definitions/exclusiveMinimum"
598 "$ref": "#/definitions/maxLength"
601 "$ref": "#/definitions/minLength"
604 "$ref": "#/definitions/pattern"
607 "$ref": "#/definitions/maxItems"
610 "$ref": "#/definitions/minItems"
613 "$ref": "#/definitions/uniqueItems"
616 "$ref": "#/definitions/enum"
619 "$ref": "#/definitions/multipleOf"
623 "queryParameterSubSchema": {
624 "additionalProperties": false,
625 "patternProperties": {
627 "$ref": "#/definitions/vendorExtension"
633 "description": "Determines whether or not this parameter is required or optional.",
638 "description": "Determines the location of the parameter.",
645 "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
649 "description": "The name of the parameter."
654 "description": "allows sending a parameter by name only or with an empty value."
670 "$ref": "#/definitions/primitivesItems"
672 "collectionFormat": {
673 "$ref": "#/definitions/collectionFormatWithMulti"
676 "$ref": "#/definitions/default"
679 "$ref": "#/definitions/maximum"
681 "exclusiveMaximum": {
682 "$ref": "#/definitions/exclusiveMaximum"
685 "$ref": "#/definitions/minimum"
687 "exclusiveMinimum": {
688 "$ref": "#/definitions/exclusiveMinimum"
691 "$ref": "#/definitions/maxLength"
694 "$ref": "#/definitions/minLength"
697 "$ref": "#/definitions/pattern"
700 "$ref": "#/definitions/maxItems"
703 "$ref": "#/definitions/minItems"
706 "$ref": "#/definitions/uniqueItems"
709 "$ref": "#/definitions/enum"
712 "$ref": "#/definitions/multipleOf"
716 "formDataParameterSubSchema": {
717 "additionalProperties": false,
718 "patternProperties": {
720 "$ref": "#/definitions/vendorExtension"
726 "description": "Determines whether or not this parameter is required or optional.",
731 "description": "Determines the location of the parameter.",
738 "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
742 "description": "The name of the parameter."
747 "description": "allows sending a parameter by name only or with an empty value."
764 "$ref": "#/definitions/primitivesItems"
766 "collectionFormat": {
767 "$ref": "#/definitions/collectionFormatWithMulti"
770 "$ref": "#/definitions/default"
773 "$ref": "#/definitions/maximum"
775 "exclusiveMaximum": {
776 "$ref": "#/definitions/exclusiveMaximum"
779 "$ref": "#/definitions/minimum"
781 "exclusiveMinimum": {
782 "$ref": "#/definitions/exclusiveMinimum"
785 "$ref": "#/definitions/maxLength"
788 "$ref": "#/definitions/minLength"
791 "$ref": "#/definitions/pattern"
794 "$ref": "#/definitions/maxItems"
797 "$ref": "#/definitions/minItems"
800 "$ref": "#/definitions/uniqueItems"
803 "$ref": "#/definitions/enum"
806 "$ref": "#/definitions/multipleOf"
810 "pathParameterSubSchema": {
811 "additionalProperties": false,
812 "patternProperties": {
814 "$ref": "#/definitions/vendorExtension"
826 "description": "Determines whether or not this parameter is required or optional."
830 "description": "Determines the location of the parameter.",
837 "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
841 "description": "The name of the parameter."
857 "$ref": "#/definitions/primitivesItems"
859 "collectionFormat": {
860 "$ref": "#/definitions/collectionFormat"
863 "$ref": "#/definitions/default"
866 "$ref": "#/definitions/maximum"
868 "exclusiveMaximum": {
869 "$ref": "#/definitions/exclusiveMaximum"
872 "$ref": "#/definitions/minimum"
874 "exclusiveMinimum": {
875 "$ref": "#/definitions/exclusiveMinimum"
878 "$ref": "#/definitions/maxLength"
881 "$ref": "#/definitions/minLength"
884 "$ref": "#/definitions/pattern"
887 "$ref": "#/definitions/maxItems"
890 "$ref": "#/definitions/minItems"
893 "$ref": "#/definitions/uniqueItems"
896 "$ref": "#/definitions/enum"
899 "$ref": "#/definitions/multipleOf"
903 "nonBodyParameter": {
912 "$ref": "#/definitions/headerParameterSubSchema"
915 "$ref": "#/definitions/formDataParameterSubSchema"
918 "$ref": "#/definitions/queryParameterSubSchema"
921 "$ref": "#/definitions/pathParameterSubSchema"
928 "$ref": "#/definitions/bodyParameter"
931 "$ref": "#/definitions/nonBodyParameter"
937 "description": "A deterministic version of a JSON Schema object.",
938 "patternProperties": {
940 "$ref": "#/definitions/vendorExtension"
951 "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
954 "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
957 "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
960 "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
963 "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
965 "exclusiveMaximum": {
966 "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
969 "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
971 "exclusiveMinimum": {
972 "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
975 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
978 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
981 "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
984 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
987 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
990 "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
993 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
996 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
999 "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
1002 "$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
1004 "additionalProperties": {
1007 "$ref": "#/definitions/schema"
1016 "$ref": "http://json-schema.org/draft-04/schema#/properties/type"
1021 "$ref": "#/definitions/schema"
1027 "$ref": "#/definitions/schema"
1037 "$ref": "#/definitions/schema"
1042 "additionalProperties": {
1043 "$ref": "#/definitions/schema"
1055 "$ref": "#/definitions/xml"
1058 "$ref": "#/definitions/externalDocs"
1062 "additionalProperties": false
1066 "description": "A deterministic version of a JSON Schema object.",
1067 "patternProperties": {
1069 "$ref": "#/definitions/vendorExtension"
1080 "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
1083 "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
1086 "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
1089 "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
1102 "$ref": "#/definitions/externalDocs"
1106 "additionalProperties": false
1108 "primitivesItems": {
1110 "additionalProperties": false,
1126 "$ref": "#/definitions/primitivesItems"
1128 "collectionFormat": {
1129 "$ref": "#/definitions/collectionFormat"
1132 "$ref": "#/definitions/default"
1135 "$ref": "#/definitions/maximum"
1137 "exclusiveMaximum": {
1138 "$ref": "#/definitions/exclusiveMaximum"
1141 "$ref": "#/definitions/minimum"
1143 "exclusiveMinimum": {
1144 "$ref": "#/definitions/exclusiveMinimum"
1147 "$ref": "#/definitions/maxLength"
1150 "$ref": "#/definitions/minLength"
1153 "$ref": "#/definitions/pattern"
1156 "$ref": "#/definitions/maxItems"
1159 "$ref": "#/definitions/minItems"
1162 "$ref": "#/definitions/uniqueItems"
1165 "$ref": "#/definitions/enum"
1168 "$ref": "#/definitions/multipleOf"
1171 "patternProperties": {
1173 "$ref": "#/definitions/vendorExtension"
1180 "$ref": "#/definitions/securityRequirement"
1184 "securityRequirement": {
1186 "additionalProperties": {
1196 "additionalProperties": false,
1216 "patternProperties": {
1218 "$ref": "#/definitions/vendorExtension"
1224 "additionalProperties": false,
1236 "$ref": "#/definitions/externalDocs"
1239 "patternProperties": {
1241 "$ref": "#/definitions/vendorExtension"
1245 "securityDefinitions": {
1247 "additionalProperties": {
1250 "$ref": "#/definitions/basicAuthenticationSecurity"
1253 "$ref": "#/definitions/apiKeySecurity"
1256 "$ref": "#/definitions/oauth2ImplicitSecurity"
1259 "$ref": "#/definitions/oauth2PasswordSecurity"
1262 "$ref": "#/definitions/oauth2ApplicationSecurity"
1265 "$ref": "#/definitions/oauth2AccessCodeSecurity"
1270 "basicAuthenticationSecurity": {
1272 "additionalProperties": false,
1287 "patternProperties": {
1289 "$ref": "#/definitions/vendorExtension"
1295 "additionalProperties": false,
1322 "patternProperties": {
1324 "$ref": "#/definitions/vendorExtension"
1328 "oauth2ImplicitSecurity": {
1330 "additionalProperties": false,
1350 "$ref": "#/definitions/oauth2Scopes"
1352 "authorizationUrl": {
1360 "patternProperties": {
1362 "$ref": "#/definitions/vendorExtension"
1366 "oauth2PasswordSecurity": {
1368 "additionalProperties": false,
1388 "$ref": "#/definitions/oauth2Scopes"
1398 "patternProperties": {
1400 "$ref": "#/definitions/vendorExtension"
1404 "oauth2ApplicationSecurity": {
1406 "additionalProperties": false,
1426 "$ref": "#/definitions/oauth2Scopes"
1436 "patternProperties": {
1438 "$ref": "#/definitions/vendorExtension"
1442 "oauth2AccessCodeSecurity": {
1444 "additionalProperties": false,
1465 "$ref": "#/definitions/oauth2Scopes"
1467 "authorizationUrl": {
1479 "patternProperties": {
1481 "$ref": "#/definitions/vendorExtension"
1487 "additionalProperties": {
1494 "$ref": "#/definitions/mimeType"
1500 "description": "The parameters needed to send a valid API call.",
1501 "additionalItems": false,
1505 "$ref": "#/definitions/parameter"
1508 "$ref": "#/definitions/jsonReference"
1516 "description": "The transfer protocol of the API.",
1528 "collectionFormat": {
1538 "collectionFormatWithMulti": {
1550 "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
1553 "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
1556 "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
1559 "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
1562 "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
1564 "exclusiveMaximum": {
1565 "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
1568 "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
1570 "exclusiveMinimum": {
1571 "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
1574 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
1577 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
1580 "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
1583 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
1586 "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
1589 "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
1592 "$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
1599 "additionalProperties": false,