openapi-2.0.json 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611
  1. {
  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#",
  5. "type": "object",
  6. "required": [
  7. "swagger",
  8. "info",
  9. "paths"
  10. ],
  11. "additionalProperties": false,
  12. "patternProperties": {
  13. "^x-": {
  14. "$ref": "#/definitions/vendorExtension"
  15. }
  16. },
  17. "properties": {
  18. "swagger": {
  19. "type": "string",
  20. "enum": [
  21. "2.0"
  22. ],
  23. "description": "The Swagger version of this document."
  24. },
  25. "info": {
  26. "$ref": "#/definitions/info"
  27. },
  28. "host": {
  29. "type": "string",
  30. "pattern": "^[^{}/ :\\\\]+(?::\\d+)?$",
  31. "description": "The host (name or ip) of the API. Example: 'swagger.io'"
  32. },
  33. "basePath": {
  34. "type": "string",
  35. "pattern": "^/",
  36. "description": "The base path to the API. Example: '/api'."
  37. },
  38. "schemes": {
  39. "$ref": "#/definitions/schemesList"
  40. },
  41. "consumes": {
  42. "description": "A list of MIME types accepted by the API.",
  43. "allOf": [
  44. {
  45. "$ref": "#/definitions/mediaTypeList"
  46. }
  47. ]
  48. },
  49. "produces": {
  50. "description": "A list of MIME types the API can produce.",
  51. "allOf": [
  52. {
  53. "$ref": "#/definitions/mediaTypeList"
  54. }
  55. ]
  56. },
  57. "paths": {
  58. "$ref": "#/definitions/paths"
  59. },
  60. "definitions": {
  61. "$ref": "#/definitions/definitions"
  62. },
  63. "parameters": {
  64. "$ref": "#/definitions/parameterDefinitions"
  65. },
  66. "responses": {
  67. "$ref": "#/definitions/responseDefinitions"
  68. },
  69. "security": {
  70. "$ref": "#/definitions/security"
  71. },
  72. "securityDefinitions": {
  73. "$ref": "#/definitions/securityDefinitions"
  74. },
  75. "tags": {
  76. "type": "array",
  77. "items": {
  78. "$ref": "#/definitions/tag"
  79. },
  80. "uniqueItems": true
  81. },
  82. "externalDocs": {
  83. "$ref": "#/definitions/externalDocs"
  84. }
  85. },
  86. "definitions": {
  87. "info": {
  88. "type": "object",
  89. "description": "General information about the API.",
  90. "required": [
  91. "version",
  92. "title"
  93. ],
  94. "additionalProperties": false,
  95. "patternProperties": {
  96. "^x-": {
  97. "$ref": "#/definitions/vendorExtension"
  98. }
  99. },
  100. "properties": {
  101. "title": {
  102. "type": "string",
  103. "description": "A unique and precise title of the API."
  104. },
  105. "version": {
  106. "type": "string",
  107. "description": "A semantic version number of the API."
  108. },
  109. "description": {
  110. "type": "string",
  111. "description": "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed."
  112. },
  113. "termsOfService": {
  114. "type": "string",
  115. "description": "The terms of service for the API."
  116. },
  117. "contact": {
  118. "$ref": "#/definitions/contact"
  119. },
  120. "license": {
  121. "$ref": "#/definitions/license"
  122. }
  123. }
  124. },
  125. "contact": {
  126. "type": "object",
  127. "description": "Contact information for the owners of the API.",
  128. "additionalProperties": false,
  129. "properties": {
  130. "name": {
  131. "type": "string",
  132. "description": "The identifying name of the contact person/organization."
  133. },
  134. "url": {
  135. "type": "string",
  136. "description": "The URL pointing to the contact information.",
  137. "format": "uri"
  138. },
  139. "email": {
  140. "type": "string",
  141. "description": "The email address of the contact person/organization.",
  142. "format": "email"
  143. }
  144. },
  145. "patternProperties": {
  146. "^x-": {
  147. "$ref": "#/definitions/vendorExtension"
  148. }
  149. }
  150. },
  151. "license": {
  152. "type": "object",
  153. "required": [
  154. "name"
  155. ],
  156. "additionalProperties": false,
  157. "properties": {
  158. "name": {
  159. "type": "string",
  160. "description": "The name of the license type. It's encouraged to use an OSI compatible license."
  161. },
  162. "url": {
  163. "type": "string",
  164. "description": "The URL pointing to the license.",
  165. "format": "uri"
  166. }
  167. },
  168. "patternProperties": {
  169. "^x-": {
  170. "$ref": "#/definitions/vendorExtension"
  171. }
  172. }
  173. },
  174. "paths": {
  175. "type": "object",
  176. "description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.",
  177. "patternProperties": {
  178. "^x-": {
  179. "$ref": "#/definitions/vendorExtension"
  180. },
  181. "^/": {
  182. "$ref": "#/definitions/pathItem"
  183. }
  184. },
  185. "additionalProperties": false
  186. },
  187. "definitions": {
  188. "type": "object",
  189. "additionalProperties": {
  190. "$ref": "#/definitions/schema"
  191. },
  192. "description": "One or more JSON objects describing the schemas being consumed and produced by the API."
  193. },
  194. "parameterDefinitions": {
  195. "type": "object",
  196. "additionalProperties": {
  197. "$ref": "#/definitions/parameter"
  198. },
  199. "description": "One or more JSON representations for parameters"
  200. },
  201. "responseDefinitions": {
  202. "type": "object",
  203. "additionalProperties": {
  204. "$ref": "#/definitions/response"
  205. },
  206. "description": "One or more JSON representations for parameters"
  207. },
  208. "externalDocs": {
  209. "type": "object",
  210. "additionalProperties": false,
  211. "description": "information about external documentation",
  212. "required": [
  213. "url"
  214. ],
  215. "properties": {
  216. "description": {
  217. "type": "string"
  218. },
  219. "url": {
  220. "type": "string",
  221. "format": "uri"
  222. }
  223. },
  224. "patternProperties": {
  225. "^x-": {
  226. "$ref": "#/definitions/vendorExtension"
  227. }
  228. }
  229. },
  230. "examples": {
  231. "type": "object",
  232. "additionalProperties": true
  233. },
  234. "mimeType": {
  235. "type": "string",
  236. "description": "The MIME type of the HTTP message."
  237. },
  238. "operation": {
  239. "type": "object",
  240. "required": [
  241. "responses"
  242. ],
  243. "additionalProperties": false,
  244. "patternProperties": {
  245. "^x-": {
  246. "$ref": "#/definitions/vendorExtension"
  247. }
  248. },
  249. "properties": {
  250. "tags": {
  251. "type": "array",
  252. "items": {
  253. "type": "string"
  254. },
  255. "uniqueItems": true
  256. },
  257. "summary": {
  258. "type": "string",
  259. "description": "A brief summary of the operation."
  260. },
  261. "description": {
  262. "type": "string",
  263. "description": "A longer description of the operation, GitHub Flavored Markdown is allowed."
  264. },
  265. "externalDocs": {
  266. "$ref": "#/definitions/externalDocs"
  267. },
  268. "operationId": {
  269. "type": "string",
  270. "description": "A unique identifier of the operation."
  271. },
  272. "produces": {
  273. "description": "A list of MIME types the API can produce.",
  274. "allOf": [
  275. {
  276. "$ref": "#/definitions/mediaTypeList"
  277. }
  278. ]
  279. },
  280. "consumes": {
  281. "description": "A list of MIME types the API can consume.",
  282. "allOf": [
  283. {
  284. "$ref": "#/definitions/mediaTypeList"
  285. }
  286. ]
  287. },
  288. "parameters": {
  289. "$ref": "#/definitions/parametersList"
  290. },
  291. "responses": {
  292. "$ref": "#/definitions/responses"
  293. },
  294. "schemes": {
  295. "$ref": "#/definitions/schemesList"
  296. },
  297. "deprecated": {
  298. "type": "boolean",
  299. "default": false
  300. },
  301. "security": {
  302. "$ref": "#/definitions/security"
  303. }
  304. }
  305. },
  306. "pathItem": {
  307. "type": "object",
  308. "additionalProperties": false,
  309. "patternProperties": {
  310. "^x-": {
  311. "$ref": "#/definitions/vendorExtension"
  312. }
  313. },
  314. "properties": {
  315. "$ref": {
  316. "type": "string"
  317. },
  318. "get": {
  319. "$ref": "#/definitions/operation"
  320. },
  321. "put": {
  322. "$ref": "#/definitions/operation"
  323. },
  324. "post": {
  325. "$ref": "#/definitions/operation"
  326. },
  327. "delete": {
  328. "$ref": "#/definitions/operation"
  329. },
  330. "options": {
  331. "$ref": "#/definitions/operation"
  332. },
  333. "head": {
  334. "$ref": "#/definitions/operation"
  335. },
  336. "patch": {
  337. "$ref": "#/definitions/operation"
  338. },
  339. "parameters": {
  340. "$ref": "#/definitions/parametersList"
  341. }
  342. }
  343. },
  344. "responses": {
  345. "type": "object",
  346. "description": "Response objects names can either be any valid HTTP status code or 'default'.",
  347. "minProperties": 1,
  348. "additionalProperties": false,
  349. "patternProperties": {
  350. "^([0-9]{3})$|^(default)$": {
  351. "$ref": "#/definitions/responseValue"
  352. },
  353. "^x-": {
  354. "$ref": "#/definitions/vendorExtension"
  355. }
  356. },
  357. "not": {
  358. "type": "object",
  359. "additionalProperties": false,
  360. "patternProperties": {
  361. "^x-": {
  362. "$ref": "#/definitions/vendorExtension"
  363. }
  364. }
  365. }
  366. },
  367. "responseValue": {
  368. "oneOf": [
  369. {
  370. "$ref": "#/definitions/response"
  371. },
  372. {
  373. "$ref": "#/definitions/jsonReference"
  374. }
  375. ]
  376. },
  377. "response": {
  378. "type": "object",
  379. "required": [
  380. "description"
  381. ],
  382. "properties": {
  383. "description": {
  384. "type": "string"
  385. },
  386. "schema": {
  387. "oneOf": [
  388. {
  389. "$ref": "#/definitions/schema"
  390. },
  391. {
  392. "$ref": "#/definitions/fileSchema"
  393. }
  394. ]
  395. },
  396. "headers": {
  397. "$ref": "#/definitions/headers"
  398. },
  399. "examples": {
  400. "$ref": "#/definitions/examples"
  401. }
  402. },
  403. "additionalProperties": false,
  404. "patternProperties": {
  405. "^x-": {
  406. "$ref": "#/definitions/vendorExtension"
  407. }
  408. }
  409. },
  410. "headers": {
  411. "type": "object",
  412. "additionalProperties": {
  413. "$ref": "#/definitions/header"
  414. }
  415. },
  416. "header": {
  417. "type": "object",
  418. "additionalProperties": false,
  419. "required": [
  420. "type"
  421. ],
  422. "properties": {
  423. "type": {
  424. "type": "string",
  425. "enum": [
  426. "string",
  427. "number",
  428. "integer",
  429. "boolean",
  430. "array"
  431. ]
  432. },
  433. "format": {
  434. "type": "string"
  435. },
  436. "items": {
  437. "$ref": "#/definitions/primitivesItems"
  438. },
  439. "collectionFormat": {
  440. "$ref": "#/definitions/collectionFormat"
  441. },
  442. "default": {
  443. "$ref": "#/definitions/default"
  444. },
  445. "maximum": {
  446. "$ref": "#/definitions/maximum"
  447. },
  448. "exclusiveMaximum": {
  449. "$ref": "#/definitions/exclusiveMaximum"
  450. },
  451. "minimum": {
  452. "$ref": "#/definitions/minimum"
  453. },
  454. "exclusiveMinimum": {
  455. "$ref": "#/definitions/exclusiveMinimum"
  456. },
  457. "maxLength": {
  458. "$ref": "#/definitions/maxLength"
  459. },
  460. "minLength": {
  461. "$ref": "#/definitions/minLength"
  462. },
  463. "pattern": {
  464. "$ref": "#/definitions/pattern"
  465. },
  466. "maxItems": {
  467. "$ref": "#/definitions/maxItems"
  468. },
  469. "minItems": {
  470. "$ref": "#/definitions/minItems"
  471. },
  472. "uniqueItems": {
  473. "$ref": "#/definitions/uniqueItems"
  474. },
  475. "enum": {
  476. "$ref": "#/definitions/enum"
  477. },
  478. "multipleOf": {
  479. "$ref": "#/definitions/multipleOf"
  480. },
  481. "description": {
  482. "type": "string"
  483. }
  484. },
  485. "patternProperties": {
  486. "^x-": {
  487. "$ref": "#/definitions/vendorExtension"
  488. }
  489. }
  490. },
  491. "vendorExtension": {
  492. "description": "Any property starting with x- is valid.",
  493. "additionalProperties": true,
  494. "additionalItems": true
  495. },
  496. "bodyParameter": {
  497. "type": "object",
  498. "required": [
  499. "name",
  500. "in",
  501. "schema"
  502. ],
  503. "patternProperties": {
  504. "^x-": {
  505. "$ref": "#/definitions/vendorExtension"
  506. }
  507. },
  508. "properties": {
  509. "description": {
  510. "type": "string",
  511. "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
  512. },
  513. "name": {
  514. "type": "string",
  515. "description": "The name of the parameter."
  516. },
  517. "in": {
  518. "type": "string",
  519. "description": "Determines the location of the parameter.",
  520. "enum": [
  521. "body"
  522. ]
  523. },
  524. "required": {
  525. "type": "boolean",
  526. "description": "Determines whether or not this parameter is required or optional.",
  527. "default": false
  528. },
  529. "schema": {
  530. "$ref": "#/definitions/schema"
  531. }
  532. },
  533. "additionalProperties": false
  534. },
  535. "headerParameterSubSchema": {
  536. "additionalProperties": false,
  537. "patternProperties": {
  538. "^x-": {
  539. "$ref": "#/definitions/vendorExtension"
  540. }
  541. },
  542. "properties": {
  543. "required": {
  544. "type": "boolean",
  545. "description": "Determines whether or not this parameter is required or optional.",
  546. "default": false
  547. },
  548. "in": {
  549. "type": "string",
  550. "description": "Determines the location of the parameter.",
  551. "enum": [
  552. "header"
  553. ]
  554. },
  555. "description": {
  556. "type": "string",
  557. "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
  558. },
  559. "name": {
  560. "type": "string",
  561. "description": "The name of the parameter."
  562. },
  563. "type": {
  564. "type": "string",
  565. "enum": [
  566. "string",
  567. "number",
  568. "boolean",
  569. "integer",
  570. "array"
  571. ]
  572. },
  573. "format": {
  574. "type": "string"
  575. },
  576. "items": {
  577. "$ref": "#/definitions/primitivesItems"
  578. },
  579. "collectionFormat": {
  580. "$ref": "#/definitions/collectionFormat"
  581. },
  582. "default": {
  583. "$ref": "#/definitions/default"
  584. },
  585. "maximum": {
  586. "$ref": "#/definitions/maximum"
  587. },
  588. "exclusiveMaximum": {
  589. "$ref": "#/definitions/exclusiveMaximum"
  590. },
  591. "minimum": {
  592. "$ref": "#/definitions/minimum"
  593. },
  594. "exclusiveMinimum": {
  595. "$ref": "#/definitions/exclusiveMinimum"
  596. },
  597. "maxLength": {
  598. "$ref": "#/definitions/maxLength"
  599. },
  600. "minLength": {
  601. "$ref": "#/definitions/minLength"
  602. },
  603. "pattern": {
  604. "$ref": "#/definitions/pattern"
  605. },
  606. "maxItems": {
  607. "$ref": "#/definitions/maxItems"
  608. },
  609. "minItems": {
  610. "$ref": "#/definitions/minItems"
  611. },
  612. "uniqueItems": {
  613. "$ref": "#/definitions/uniqueItems"
  614. },
  615. "enum": {
  616. "$ref": "#/definitions/enum"
  617. },
  618. "multipleOf": {
  619. "$ref": "#/definitions/multipleOf"
  620. }
  621. }
  622. },
  623. "queryParameterSubSchema": {
  624. "additionalProperties": false,
  625. "patternProperties": {
  626. "^x-": {
  627. "$ref": "#/definitions/vendorExtension"
  628. }
  629. },
  630. "properties": {
  631. "required": {
  632. "type": "boolean",
  633. "description": "Determines whether or not this parameter is required or optional.",
  634. "default": false
  635. },
  636. "in": {
  637. "type": "string",
  638. "description": "Determines the location of the parameter.",
  639. "enum": [
  640. "query"
  641. ]
  642. },
  643. "description": {
  644. "type": "string",
  645. "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
  646. },
  647. "name": {
  648. "type": "string",
  649. "description": "The name of the parameter."
  650. },
  651. "allowEmptyValue": {
  652. "type": "boolean",
  653. "default": false,
  654. "description": "allows sending a parameter by name only or with an empty value."
  655. },
  656. "type": {
  657. "type": "string",
  658. "enum": [
  659. "string",
  660. "number",
  661. "boolean",
  662. "integer",
  663. "array"
  664. ]
  665. },
  666. "format": {
  667. "type": "string"
  668. },
  669. "items": {
  670. "$ref": "#/definitions/primitivesItems"
  671. },
  672. "collectionFormat": {
  673. "$ref": "#/definitions/collectionFormatWithMulti"
  674. },
  675. "default": {
  676. "$ref": "#/definitions/default"
  677. },
  678. "maximum": {
  679. "$ref": "#/definitions/maximum"
  680. },
  681. "exclusiveMaximum": {
  682. "$ref": "#/definitions/exclusiveMaximum"
  683. },
  684. "minimum": {
  685. "$ref": "#/definitions/minimum"
  686. },
  687. "exclusiveMinimum": {
  688. "$ref": "#/definitions/exclusiveMinimum"
  689. },
  690. "maxLength": {
  691. "$ref": "#/definitions/maxLength"
  692. },
  693. "minLength": {
  694. "$ref": "#/definitions/minLength"
  695. },
  696. "pattern": {
  697. "$ref": "#/definitions/pattern"
  698. },
  699. "maxItems": {
  700. "$ref": "#/definitions/maxItems"
  701. },
  702. "minItems": {
  703. "$ref": "#/definitions/minItems"
  704. },
  705. "uniqueItems": {
  706. "$ref": "#/definitions/uniqueItems"
  707. },
  708. "enum": {
  709. "$ref": "#/definitions/enum"
  710. },
  711. "multipleOf": {
  712. "$ref": "#/definitions/multipleOf"
  713. }
  714. }
  715. },
  716. "formDataParameterSubSchema": {
  717. "additionalProperties": false,
  718. "patternProperties": {
  719. "^x-": {
  720. "$ref": "#/definitions/vendorExtension"
  721. }
  722. },
  723. "properties": {
  724. "required": {
  725. "type": "boolean",
  726. "description": "Determines whether or not this parameter is required or optional.",
  727. "default": false
  728. },
  729. "in": {
  730. "type": "string",
  731. "description": "Determines the location of the parameter.",
  732. "enum": [
  733. "formData"
  734. ]
  735. },
  736. "description": {
  737. "type": "string",
  738. "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
  739. },
  740. "name": {
  741. "type": "string",
  742. "description": "The name of the parameter."
  743. },
  744. "allowEmptyValue": {
  745. "type": "boolean",
  746. "default": false,
  747. "description": "allows sending a parameter by name only or with an empty value."
  748. },
  749. "type": {
  750. "type": "string",
  751. "enum": [
  752. "string",
  753. "number",
  754. "boolean",
  755. "integer",
  756. "array",
  757. "file"
  758. ]
  759. },
  760. "format": {
  761. "type": "string"
  762. },
  763. "items": {
  764. "$ref": "#/definitions/primitivesItems"
  765. },
  766. "collectionFormat": {
  767. "$ref": "#/definitions/collectionFormatWithMulti"
  768. },
  769. "default": {
  770. "$ref": "#/definitions/default"
  771. },
  772. "maximum": {
  773. "$ref": "#/definitions/maximum"
  774. },
  775. "exclusiveMaximum": {
  776. "$ref": "#/definitions/exclusiveMaximum"
  777. },
  778. "minimum": {
  779. "$ref": "#/definitions/minimum"
  780. },
  781. "exclusiveMinimum": {
  782. "$ref": "#/definitions/exclusiveMinimum"
  783. },
  784. "maxLength": {
  785. "$ref": "#/definitions/maxLength"
  786. },
  787. "minLength": {
  788. "$ref": "#/definitions/minLength"
  789. },
  790. "pattern": {
  791. "$ref": "#/definitions/pattern"
  792. },
  793. "maxItems": {
  794. "$ref": "#/definitions/maxItems"
  795. },
  796. "minItems": {
  797. "$ref": "#/definitions/minItems"
  798. },
  799. "uniqueItems": {
  800. "$ref": "#/definitions/uniqueItems"
  801. },
  802. "enum": {
  803. "$ref": "#/definitions/enum"
  804. },
  805. "multipleOf": {
  806. "$ref": "#/definitions/multipleOf"
  807. }
  808. }
  809. },
  810. "pathParameterSubSchema": {
  811. "additionalProperties": false,
  812. "patternProperties": {
  813. "^x-": {
  814. "$ref": "#/definitions/vendorExtension"
  815. }
  816. },
  817. "required": [
  818. "required"
  819. ],
  820. "properties": {
  821. "required": {
  822. "type": "boolean",
  823. "enum": [
  824. true
  825. ],
  826. "description": "Determines whether or not this parameter is required or optional."
  827. },
  828. "in": {
  829. "type": "string",
  830. "description": "Determines the location of the parameter.",
  831. "enum": [
  832. "path"
  833. ]
  834. },
  835. "description": {
  836. "type": "string",
  837. "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed."
  838. },
  839. "name": {
  840. "type": "string",
  841. "description": "The name of the parameter."
  842. },
  843. "type": {
  844. "type": "string",
  845. "enum": [
  846. "string",
  847. "number",
  848. "boolean",
  849. "integer",
  850. "array"
  851. ]
  852. },
  853. "format": {
  854. "type": "string"
  855. },
  856. "items": {
  857. "$ref": "#/definitions/primitivesItems"
  858. },
  859. "collectionFormat": {
  860. "$ref": "#/definitions/collectionFormat"
  861. },
  862. "default": {
  863. "$ref": "#/definitions/default"
  864. },
  865. "maximum": {
  866. "$ref": "#/definitions/maximum"
  867. },
  868. "exclusiveMaximum": {
  869. "$ref": "#/definitions/exclusiveMaximum"
  870. },
  871. "minimum": {
  872. "$ref": "#/definitions/minimum"
  873. },
  874. "exclusiveMinimum": {
  875. "$ref": "#/definitions/exclusiveMinimum"
  876. },
  877. "maxLength": {
  878. "$ref": "#/definitions/maxLength"
  879. },
  880. "minLength": {
  881. "$ref": "#/definitions/minLength"
  882. },
  883. "pattern": {
  884. "$ref": "#/definitions/pattern"
  885. },
  886. "maxItems": {
  887. "$ref": "#/definitions/maxItems"
  888. },
  889. "minItems": {
  890. "$ref": "#/definitions/minItems"
  891. },
  892. "uniqueItems": {
  893. "$ref": "#/definitions/uniqueItems"
  894. },
  895. "enum": {
  896. "$ref": "#/definitions/enum"
  897. },
  898. "multipleOf": {
  899. "$ref": "#/definitions/multipleOf"
  900. }
  901. }
  902. },
  903. "nonBodyParameter": {
  904. "type": "object",
  905. "required": [
  906. "name",
  907. "in",
  908. "type"
  909. ],
  910. "oneOf": [
  911. {
  912. "$ref": "#/definitions/headerParameterSubSchema"
  913. },
  914. {
  915. "$ref": "#/definitions/formDataParameterSubSchema"
  916. },
  917. {
  918. "$ref": "#/definitions/queryParameterSubSchema"
  919. },
  920. {
  921. "$ref": "#/definitions/pathParameterSubSchema"
  922. }
  923. ]
  924. },
  925. "parameter": {
  926. "oneOf": [
  927. {
  928. "$ref": "#/definitions/bodyParameter"
  929. },
  930. {
  931. "$ref": "#/definitions/nonBodyParameter"
  932. }
  933. ]
  934. },
  935. "schema": {
  936. "type": "object",
  937. "description": "A deterministic version of a JSON Schema object.",
  938. "patternProperties": {
  939. "^x-": {
  940. "$ref": "#/definitions/vendorExtension"
  941. }
  942. },
  943. "properties": {
  944. "$ref": {
  945. "type": "string"
  946. },
  947. "format": {
  948. "type": "string"
  949. },
  950. "title": {
  951. "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
  952. },
  953. "description": {
  954. "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
  955. },
  956. "default": {
  957. "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
  958. },
  959. "multipleOf": {
  960. "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
  961. },
  962. "maximum": {
  963. "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
  964. },
  965. "exclusiveMaximum": {
  966. "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
  967. },
  968. "minimum": {
  969. "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
  970. },
  971. "exclusiveMinimum": {
  972. "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
  973. },
  974. "maxLength": {
  975. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
  976. },
  977. "minLength": {
  978. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
  979. },
  980. "pattern": {
  981. "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
  982. },
  983. "maxItems": {
  984. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
  985. },
  986. "minItems": {
  987. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
  988. },
  989. "uniqueItems": {
  990. "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
  991. },
  992. "maxProperties": {
  993. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
  994. },
  995. "minProperties": {
  996. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
  997. },
  998. "required": {
  999. "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
  1000. },
  1001. "enum": {
  1002. "$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
  1003. },
  1004. "additionalProperties": {
  1005. "oneOf": [
  1006. {
  1007. "$ref": "#/definitions/schema"
  1008. },
  1009. {
  1010. "type": "boolean"
  1011. }
  1012. ],
  1013. "default": {}
  1014. },
  1015. "type": {
  1016. "$ref": "http://json-schema.org/draft-04/schema#/properties/type"
  1017. },
  1018. "items": {
  1019. "anyOf": [
  1020. {
  1021. "$ref": "#/definitions/schema"
  1022. },
  1023. {
  1024. "type": "array",
  1025. "minItems": 1,
  1026. "items": {
  1027. "$ref": "#/definitions/schema"
  1028. }
  1029. }
  1030. ],
  1031. "default": {}
  1032. },
  1033. "allOf": {
  1034. "type": "array",
  1035. "minItems": 1,
  1036. "items": {
  1037. "$ref": "#/definitions/schema"
  1038. }
  1039. },
  1040. "properties": {
  1041. "type": "object",
  1042. "additionalProperties": {
  1043. "$ref": "#/definitions/schema"
  1044. },
  1045. "default": {}
  1046. },
  1047. "discriminator": {
  1048. "type": "string"
  1049. },
  1050. "readOnly": {
  1051. "type": "boolean",
  1052. "default": false
  1053. },
  1054. "xml": {
  1055. "$ref": "#/definitions/xml"
  1056. },
  1057. "externalDocs": {
  1058. "$ref": "#/definitions/externalDocs"
  1059. },
  1060. "example": {}
  1061. },
  1062. "additionalProperties": false
  1063. },
  1064. "fileSchema": {
  1065. "type": "object",
  1066. "description": "A deterministic version of a JSON Schema object.",
  1067. "patternProperties": {
  1068. "^x-": {
  1069. "$ref": "#/definitions/vendorExtension"
  1070. }
  1071. },
  1072. "required": [
  1073. "type"
  1074. ],
  1075. "properties": {
  1076. "format": {
  1077. "type": "string"
  1078. },
  1079. "title": {
  1080. "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
  1081. },
  1082. "description": {
  1083. "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
  1084. },
  1085. "default": {
  1086. "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
  1087. },
  1088. "required": {
  1089. "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray"
  1090. },
  1091. "type": {
  1092. "type": "string",
  1093. "enum": [
  1094. "file"
  1095. ]
  1096. },
  1097. "readOnly": {
  1098. "type": "boolean",
  1099. "default": false
  1100. },
  1101. "externalDocs": {
  1102. "$ref": "#/definitions/externalDocs"
  1103. },
  1104. "example": {}
  1105. },
  1106. "additionalProperties": false
  1107. },
  1108. "primitivesItems": {
  1109. "type": "object",
  1110. "additionalProperties": false,
  1111. "properties": {
  1112. "type": {
  1113. "type": "string",
  1114. "enum": [
  1115. "string",
  1116. "number",
  1117. "integer",
  1118. "boolean",
  1119. "array"
  1120. ]
  1121. },
  1122. "format": {
  1123. "type": "string"
  1124. },
  1125. "items": {
  1126. "$ref": "#/definitions/primitivesItems"
  1127. },
  1128. "collectionFormat": {
  1129. "$ref": "#/definitions/collectionFormat"
  1130. },
  1131. "default": {
  1132. "$ref": "#/definitions/default"
  1133. },
  1134. "maximum": {
  1135. "$ref": "#/definitions/maximum"
  1136. },
  1137. "exclusiveMaximum": {
  1138. "$ref": "#/definitions/exclusiveMaximum"
  1139. },
  1140. "minimum": {
  1141. "$ref": "#/definitions/minimum"
  1142. },
  1143. "exclusiveMinimum": {
  1144. "$ref": "#/definitions/exclusiveMinimum"
  1145. },
  1146. "maxLength": {
  1147. "$ref": "#/definitions/maxLength"
  1148. },
  1149. "minLength": {
  1150. "$ref": "#/definitions/minLength"
  1151. },
  1152. "pattern": {
  1153. "$ref": "#/definitions/pattern"
  1154. },
  1155. "maxItems": {
  1156. "$ref": "#/definitions/maxItems"
  1157. },
  1158. "minItems": {
  1159. "$ref": "#/definitions/minItems"
  1160. },
  1161. "uniqueItems": {
  1162. "$ref": "#/definitions/uniqueItems"
  1163. },
  1164. "enum": {
  1165. "$ref": "#/definitions/enum"
  1166. },
  1167. "multipleOf": {
  1168. "$ref": "#/definitions/multipleOf"
  1169. }
  1170. },
  1171. "patternProperties": {
  1172. "^x-": {
  1173. "$ref": "#/definitions/vendorExtension"
  1174. }
  1175. }
  1176. },
  1177. "security": {
  1178. "type": "array",
  1179. "items": {
  1180. "$ref": "#/definitions/securityRequirement"
  1181. },
  1182. "uniqueItems": true
  1183. },
  1184. "securityRequirement": {
  1185. "type": "object",
  1186. "additionalProperties": {
  1187. "type": "array",
  1188. "items": {
  1189. "type": "string"
  1190. },
  1191. "uniqueItems": true
  1192. }
  1193. },
  1194. "xml": {
  1195. "type": "object",
  1196. "additionalProperties": false,
  1197. "properties": {
  1198. "name": {
  1199. "type": "string"
  1200. },
  1201. "namespace": {
  1202. "type": "string"
  1203. },
  1204. "prefix": {
  1205. "type": "string"
  1206. },
  1207. "attribute": {
  1208. "type": "boolean",
  1209. "default": false
  1210. },
  1211. "wrapped": {
  1212. "type": "boolean",
  1213. "default": false
  1214. }
  1215. },
  1216. "patternProperties": {
  1217. "^x-": {
  1218. "$ref": "#/definitions/vendorExtension"
  1219. }
  1220. }
  1221. },
  1222. "tag": {
  1223. "type": "object",
  1224. "additionalProperties": false,
  1225. "required": [
  1226. "name"
  1227. ],
  1228. "properties": {
  1229. "name": {
  1230. "type": "string"
  1231. },
  1232. "description": {
  1233. "type": "string"
  1234. },
  1235. "externalDocs": {
  1236. "$ref": "#/definitions/externalDocs"
  1237. }
  1238. },
  1239. "patternProperties": {
  1240. "^x-": {
  1241. "$ref": "#/definitions/vendorExtension"
  1242. }
  1243. }
  1244. },
  1245. "securityDefinitions": {
  1246. "type": "object",
  1247. "additionalProperties": {
  1248. "oneOf": [
  1249. {
  1250. "$ref": "#/definitions/basicAuthenticationSecurity"
  1251. },
  1252. {
  1253. "$ref": "#/definitions/apiKeySecurity"
  1254. },
  1255. {
  1256. "$ref": "#/definitions/oauth2ImplicitSecurity"
  1257. },
  1258. {
  1259. "$ref": "#/definitions/oauth2PasswordSecurity"
  1260. },
  1261. {
  1262. "$ref": "#/definitions/oauth2ApplicationSecurity"
  1263. },
  1264. {
  1265. "$ref": "#/definitions/oauth2AccessCodeSecurity"
  1266. }
  1267. ]
  1268. }
  1269. },
  1270. "basicAuthenticationSecurity": {
  1271. "type": "object",
  1272. "additionalProperties": false,
  1273. "required": [
  1274. "type"
  1275. ],
  1276. "properties": {
  1277. "type": {
  1278. "type": "string",
  1279. "enum": [
  1280. "basic"
  1281. ]
  1282. },
  1283. "description": {
  1284. "type": "string"
  1285. }
  1286. },
  1287. "patternProperties": {
  1288. "^x-": {
  1289. "$ref": "#/definitions/vendorExtension"
  1290. }
  1291. }
  1292. },
  1293. "apiKeySecurity": {
  1294. "type": "object",
  1295. "additionalProperties": false,
  1296. "required": [
  1297. "type",
  1298. "name",
  1299. "in"
  1300. ],
  1301. "properties": {
  1302. "type": {
  1303. "type": "string",
  1304. "enum": [
  1305. "apiKey"
  1306. ]
  1307. },
  1308. "name": {
  1309. "type": "string"
  1310. },
  1311. "in": {
  1312. "type": "string",
  1313. "enum": [
  1314. "header",
  1315. "query"
  1316. ]
  1317. },
  1318. "description": {
  1319. "type": "string"
  1320. }
  1321. },
  1322. "patternProperties": {
  1323. "^x-": {
  1324. "$ref": "#/definitions/vendorExtension"
  1325. }
  1326. }
  1327. },
  1328. "oauth2ImplicitSecurity": {
  1329. "type": "object",
  1330. "additionalProperties": false,
  1331. "required": [
  1332. "type",
  1333. "flow",
  1334. "authorizationUrl"
  1335. ],
  1336. "properties": {
  1337. "type": {
  1338. "type": "string",
  1339. "enum": [
  1340. "oauth2"
  1341. ]
  1342. },
  1343. "flow": {
  1344. "type": "string",
  1345. "enum": [
  1346. "implicit"
  1347. ]
  1348. },
  1349. "scopes": {
  1350. "$ref": "#/definitions/oauth2Scopes"
  1351. },
  1352. "authorizationUrl": {
  1353. "type": "string",
  1354. "format": "uri"
  1355. },
  1356. "description": {
  1357. "type": "string"
  1358. }
  1359. },
  1360. "patternProperties": {
  1361. "^x-": {
  1362. "$ref": "#/definitions/vendorExtension"
  1363. }
  1364. }
  1365. },
  1366. "oauth2PasswordSecurity": {
  1367. "type": "object",
  1368. "additionalProperties": false,
  1369. "required": [
  1370. "type",
  1371. "flow",
  1372. "tokenUrl"
  1373. ],
  1374. "properties": {
  1375. "type": {
  1376. "type": "string",
  1377. "enum": [
  1378. "oauth2"
  1379. ]
  1380. },
  1381. "flow": {
  1382. "type": "string",
  1383. "enum": [
  1384. "password"
  1385. ]
  1386. },
  1387. "scopes": {
  1388. "$ref": "#/definitions/oauth2Scopes"
  1389. },
  1390. "tokenUrl": {
  1391. "type": "string",
  1392. "format": "uri"
  1393. },
  1394. "description": {
  1395. "type": "string"
  1396. }
  1397. },
  1398. "patternProperties": {
  1399. "^x-": {
  1400. "$ref": "#/definitions/vendorExtension"
  1401. }
  1402. }
  1403. },
  1404. "oauth2ApplicationSecurity": {
  1405. "type": "object",
  1406. "additionalProperties": false,
  1407. "required": [
  1408. "type",
  1409. "flow",
  1410. "tokenUrl"
  1411. ],
  1412. "properties": {
  1413. "type": {
  1414. "type": "string",
  1415. "enum": [
  1416. "oauth2"
  1417. ]
  1418. },
  1419. "flow": {
  1420. "type": "string",
  1421. "enum": [
  1422. "application"
  1423. ]
  1424. },
  1425. "scopes": {
  1426. "$ref": "#/definitions/oauth2Scopes"
  1427. },
  1428. "tokenUrl": {
  1429. "type": "string",
  1430. "format": "uri"
  1431. },
  1432. "description": {
  1433. "type": "string"
  1434. }
  1435. },
  1436. "patternProperties": {
  1437. "^x-": {
  1438. "$ref": "#/definitions/vendorExtension"
  1439. }
  1440. }
  1441. },
  1442. "oauth2AccessCodeSecurity": {
  1443. "type": "object",
  1444. "additionalProperties": false,
  1445. "required": [
  1446. "type",
  1447. "flow",
  1448. "authorizationUrl",
  1449. "tokenUrl"
  1450. ],
  1451. "properties": {
  1452. "type": {
  1453. "type": "string",
  1454. "enum": [
  1455. "oauth2"
  1456. ]
  1457. },
  1458. "flow": {
  1459. "type": "string",
  1460. "enum": [
  1461. "accessCode"
  1462. ]
  1463. },
  1464. "scopes": {
  1465. "$ref": "#/definitions/oauth2Scopes"
  1466. },
  1467. "authorizationUrl": {
  1468. "type": "string",
  1469. "format": "uri"
  1470. },
  1471. "tokenUrl": {
  1472. "type": "string",
  1473. "format": "uri"
  1474. },
  1475. "description": {
  1476. "type": "string"
  1477. }
  1478. },
  1479. "patternProperties": {
  1480. "^x-": {
  1481. "$ref": "#/definitions/vendorExtension"
  1482. }
  1483. }
  1484. },
  1485. "oauth2Scopes": {
  1486. "type": "object",
  1487. "additionalProperties": {
  1488. "type": "string"
  1489. }
  1490. },
  1491. "mediaTypeList": {
  1492. "type": "array",
  1493. "items": {
  1494. "$ref": "#/definitions/mimeType"
  1495. },
  1496. "uniqueItems": true
  1497. },
  1498. "parametersList": {
  1499. "type": "array",
  1500. "description": "The parameters needed to send a valid API call.",
  1501. "additionalItems": false,
  1502. "items": {
  1503. "oneOf": [
  1504. {
  1505. "$ref": "#/definitions/parameter"
  1506. },
  1507. {
  1508. "$ref": "#/definitions/jsonReference"
  1509. }
  1510. ]
  1511. },
  1512. "uniqueItems": true
  1513. },
  1514. "schemesList": {
  1515. "type": "array",
  1516. "description": "The transfer protocol of the API.",
  1517. "items": {
  1518. "type": "string",
  1519. "enum": [
  1520. "http",
  1521. "https",
  1522. "ws",
  1523. "wss"
  1524. ]
  1525. },
  1526. "uniqueItems": true
  1527. },
  1528. "collectionFormat": {
  1529. "type": "string",
  1530. "enum": [
  1531. "csv",
  1532. "ssv",
  1533. "tsv",
  1534. "pipes"
  1535. ],
  1536. "default": "csv"
  1537. },
  1538. "collectionFormatWithMulti": {
  1539. "type": "string",
  1540. "enum": [
  1541. "csv",
  1542. "ssv",
  1543. "tsv",
  1544. "pipes",
  1545. "multi"
  1546. ],
  1547. "default": "csv"
  1548. },
  1549. "title": {
  1550. "$ref": "http://json-schema.org/draft-04/schema#/properties/title"
  1551. },
  1552. "description": {
  1553. "$ref": "http://json-schema.org/draft-04/schema#/properties/description"
  1554. },
  1555. "default": {
  1556. "$ref": "http://json-schema.org/draft-04/schema#/properties/default"
  1557. },
  1558. "multipleOf": {
  1559. "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf"
  1560. },
  1561. "maximum": {
  1562. "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum"
  1563. },
  1564. "exclusiveMaximum": {
  1565. "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum"
  1566. },
  1567. "minimum": {
  1568. "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum"
  1569. },
  1570. "exclusiveMinimum": {
  1571. "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum"
  1572. },
  1573. "maxLength": {
  1574. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
  1575. },
  1576. "minLength": {
  1577. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
  1578. },
  1579. "pattern": {
  1580. "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern"
  1581. },
  1582. "maxItems": {
  1583. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger"
  1584. },
  1585. "minItems": {
  1586. "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0"
  1587. },
  1588. "uniqueItems": {
  1589. "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems"
  1590. },
  1591. "enum": {
  1592. "$ref": "http://json-schema.org/draft-04/schema#/properties/enum"
  1593. },
  1594. "jsonReference": {
  1595. "type": "object",
  1596. "required": [
  1597. "$ref"
  1598. ],
  1599. "additionalProperties": false,
  1600. "properties": {
  1601. "$ref": {
  1602. "type": "string"
  1603. },
  1604. "description": {
  1605. "type": "string"
  1606. }
  1607. }
  1608. }
  1609. }
  1610. }