sc-oa 0.7.0.14__tar.gz → 0.7.0.16__tar.gz

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.

Potentially problematic release.


This version of sc-oa might be problematic. Click here for more details.

Files changed (162) hide show
  1. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/PKG-INFO +5 -5
  2. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sc_oa.egg-info/PKG-INFO +5 -5
  3. sc_oa-0.7.0.16/sc_oa.egg-info/SOURCES.txt +160 -0
  4. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/setup.cfg +2 -3
  5. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/openapi30.py +3 -2
  6. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/_model.py +26 -22
  7. sc_oa-0.7.0.16/tests/OpenAPI-Specification/.gitignore +8 -0
  8. sc_oa-0.7.0.16/tests/OpenAPI-Specification/.travis.yml +6 -0
  9. sc_oa-0.7.0.16/tests/OpenAPI-Specification/CONTRIBUTORS.md +9 -0
  10. sc_oa-0.7.0.16/tests/OpenAPI-Specification/DEVELOPMENT.md +118 -0
  11. sc_oa-0.7.0.16/tests/OpenAPI-Specification/GOVERNANCE.md +31 -0
  12. sc_oa-0.7.0.16/tests/OpenAPI-Specification/IMPLEMENTATIONS.md +73 -0
  13. sc_oa-0.7.0.16/tests/OpenAPI-Specification/LICENSE +201 -0
  14. sc_oa-0.7.0.16/tests/OpenAPI-Specification/MAINTAINERS.md +11 -0
  15. sc_oa-0.7.0.16/tests/OpenAPI-Specification/README.md +62 -0
  16. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/api-with-examples.json +58 -0
  17. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-expanded.json +210 -0
  18. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-minimal.json +68 -0
  19. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/common/Error.json +16 -0
  20. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/NewPet.json +19 -0
  21. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/Pet.json +19 -0
  22. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/parameters.json +21 -0
  23. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/swagger.json +146 -0
  24. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-simple.json +222 -0
  25. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore-with-external-docs.json +233 -0
  26. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/petstore.json +153 -0
  27. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/json/uber.json +370 -0
  28. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-expanded.yaml +139 -0
  29. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-minimal.yaml +47 -0
  30. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/common/Error.yaml +10 -0
  31. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/NewPet.yaml +9 -0
  32. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/Pet.yaml +12 -0
  33. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/parameters.yaml +16 -0
  34. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/swagger.yaml +100 -0
  35. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-simple.yaml +157 -0
  36. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-with-external-docs.yaml +166 -0
  37. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml/uber.yaml +273 -0
  38. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v3.0/api-with-examples.yaml +167 -0
  39. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v3.0/callback-example.yaml +60 -0
  40. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v3.0/link-example.yaml +203 -0
  41. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v3.0/petstore-expanded.yaml +155 -0
  42. sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v3.0/petstore.yaml +109 -0
  43. sc_oa-0.7.0.16/tests/OpenAPI-Specification/guidelines/EXTENSIONS.md +1 -0
  44. sc_oa-0.7.0.16/tests/OpenAPI-Specification/guidelines/v2.0/EXTENSIONS.md +92 -0
  45. sc_oa-0.7.0.16/tests/OpenAPI-Specification/guidelines/v2.0/README.md +4 -0
  46. sc_oa-0.7.0.16/tests/OpenAPI-Specification/guidelines/v2.0/REUSE.md +372 -0
  47. sc_oa-0.7.0.16/tests/OpenAPI-Specification/package.json +31 -0
  48. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/README.md +5 -0
  49. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/apiDeclaration.json +61 -0
  50. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/authorizationObject.json +59 -0
  51. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/dataType.json +132 -0
  52. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/dataTypeBase.json +81 -0
  53. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/infoObject.json +16 -0
  54. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/modelsObject.json +36 -0
  55. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/oauth2GrantType.json +57 -0
  56. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/operationObject.json +65 -0
  57. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/parameterObject.json +37 -0
  58. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/resourceListing.json +16 -0
  59. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v1.2/resourceObject.json +11 -0
  60. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v2.0/README.md +13 -0
  61. sc_oa-0.7.0.16/tests/OpenAPI-Specification/schemas/v2.0/schema.json +1607 -0
  62. sc_oa-0.7.0.16/tests/OpenAPI-Specification/versions/1.2.md +1148 -0
  63. sc_oa-0.7.0.16/tests/OpenAPI-Specification/versions/2.0.md +2298 -0
  64. sc_oa-0.7.0.16/tests/OpenAPI-Specification/versions/3.0.0.md +3441 -0
  65. sc_oa-0.7.0.16/tests/OpenAPI-Specification/versions/3.0.1.md +3380 -0
  66. sc_oa-0.7.0.16/tests/OpenAPI-Specification/versions/3.0.2.md +3412 -0
  67. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/test_model.py +43 -0
  68. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/test_openapi.py +75 -0
  69. sc_oa-0.7.0.16/tests/testspecs/v2.0/api-with-examples.yaml +164 -0
  70. sc_oa-0.7.0.16/tests/testspecs/v2.0/petstore.yaml +101 -0
  71. sc_oa-0.7.0.16/tests/testspecs/v3.0/uspto.yaml +210 -0
  72. sc_oa-0.7.0.14/sc_oa.egg-info/SOURCES.txt +0 -377
  73. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/.github/workflows/pypi.yml +0 -0
  74. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/.github/workflows/tests.yml +0 -0
  75. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/.gitignore +0 -0
  76. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/.gitmodules +0 -0
  77. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/.mailmap +0 -0
  78. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/.pre-commit-config.yaml +0 -0
  79. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/CHANGES +0 -0
  80. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/LICENSE +0 -0
  81. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/MANIFEST.in +0 -0
  82. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/README.rst +0 -0
  83. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/docs/conf.py +0 -0
  84. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/docs/index.rst +0 -0
  85. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/docs/specs/openapi.yml +0 -0
  86. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/pyproject.toml +0 -0
  87. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sc_oa.egg-info/dependency_links.txt +0 -0
  88. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sc_oa.egg-info/not-zip-safe +0 -0
  89. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sc_oa.egg-info/requires.txt +0 -0
  90. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sc_oa.egg-info/top_level.txt +0 -0
  91. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/__init__.py +0 -0
  92. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/__init__.py +0 -0
  93. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/__main__.py +0 -0
  94. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/_lib2to3.py +0 -0
  95. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/directive.py +0 -0
  96. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/locale/es_ES/LC_MESSAGES/openapi.mo +0 -0
  97. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/locale/es_ES/LC_MESSAGES/openapi.po +0 -0
  98. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/locale/fr_FR/LC_MESSAGES/openapi.mo +0 -0
  99. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/locale/fr_FR/LC_MESSAGES/openapi.po +0 -0
  100. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/locale/openapi.pot +0 -0
  101. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/openapi20.py +0 -0
  102. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/__init__.py +0 -0
  103. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/_description.py +0 -0
  104. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/_httpdomain.py +0 -0
  105. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/_httpdomain_old.py +0 -0
  106. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/_toc.py +0 -0
  107. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/renderers/abc.py +0 -0
  108. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/schema_utils.py +0 -0
  109. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/sphinxcontrib/openapi/utils.py +0 -0
  110. {sc_oa-0.7.0.14/tests/testspecs/v2.0 → sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml}/api-with-examples.yaml +0 -0
  111. {sc_oa-0.7.0.14/tests/testspecs/v2.0 → sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples/v2.0/yaml}/petstore.yaml +0 -0
  112. {sc_oa-0.7.0.14/tests/testspecs → sc_oa-0.7.0.16/tests/OpenAPI-Specification/examples}/v3.0/uspto.yaml +0 -0
  113. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/conftest.py +0 -0
  114. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/doc/conf.py +0 -0
  115. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/doc/index.rst +0 -0
  116. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/doc/petstore.yaml +0 -0
  117. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/conftest.py +0 -0
  118. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert.py +0 -0
  119. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_operation.py +0 -0
  120. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_parameter.py +0 -0
  121. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_parameters.py +0 -0
  122. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_path.py +0 -0
  123. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_paths.py +0 -0
  124. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_request_body.py +0 -0
  125. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_request_body_formdata.py +0 -0
  126. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_response.py +0 -0
  127. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/lib2to3/test_convert_responses.py +0 -0
  128. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/conftest.py +0 -0
  129. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v2.0/api-with-examples.yaml.rst +0 -0
  130. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v2.0/petstore-expanded.yaml.rst +0 -0
  131. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v2.0/petstore.yaml.rst +0 -0
  132. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v2.0/uber.json.rst +0 -0
  133. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v2.0/uber.yaml.rst +0 -0
  134. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v3.0/api-with-examples.yaml.rst +0 -0
  135. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v3.0/petstore-expanded.yaml.rst +0 -0
  136. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v3.0/petstore.yaml.rst +0 -0
  137. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/rendered/v3.0/uspto.yaml.rst +0 -0
  138. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render.py +0 -0
  139. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_json_schema_description.py +0 -0
  140. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_operation.py +0 -0
  141. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_parameter.py +0 -0
  142. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_parameters.py +0 -0
  143. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_paths.py +0 -0
  144. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_request_body.py +0 -0
  145. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_request_body_example.py +0 -0
  146. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_response.py +0 -0
  147. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_response_example.py +0 -0
  148. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_responses.py +0 -0
  149. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/renderers/httpdomain/test_render_restructuredtext_markup.py +0 -0
  150. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/test_description.py +0 -0
  151. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/test_schema_utils.py +0 -0
  152. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/test_spec_examples.py +0 -0
  153. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/test_toc.py +0 -0
  154. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testdata/foo.json +0 -0
  155. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testdata/foo.yaml +0 -0
  156. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testspecs/v2.0/petstore-expanded.yaml +0 -0
  157. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testspecs/v2.0/uber.json +0 -0
  158. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testspecs/v2.0/uber.yaml +0 -0
  159. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testspecs/v3.0/api-with-examples.yaml +0 -0
  160. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testspecs/v3.0/petstore-expanded.yaml +0 -0
  161. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tests/testspecs/v3.0/petstore.yaml +0 -0
  162. {sc_oa-0.7.0.14 → sc_oa-0.7.0.16}/tox.ini +0 -0
@@ -1,11 +1,10 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: sc-oa
3
- Version: 0.7.0.14
3
+ Version: 0.7.0.16
4
4
  Summary: Fork of the OpenAPI (fka Swagger) spec renderer for Sphinx
5
5
  Home-page: https://github.com/olivier-heurtier/sphinxcontrib-openapi/tree/mymaster
6
- Author: Ihor Kalnytskyi
7
- Olivier Heurtier
8
- Author-email: ihor@kalnytskyi.com
6
+ Author: Olivier Heurtier
7
+ Author-email: olivier.heurtier@github.com
9
8
  License: BSD
10
9
  Classifier: Topic :: Documentation
11
10
  Classifier: Topic :: Documentation :: Sphinx
@@ -34,3 +33,4 @@ Requires-Dist: m2r2
34
33
  Requires-Dist: picobox
35
34
  Requires-Dist: deepmerge
36
35
  Requires-Dist: setuptools
36
+ Dynamic: license-file
@@ -1,11 +1,10 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: sc-oa
3
- Version: 0.7.0.14
3
+ Version: 0.7.0.16
4
4
  Summary: Fork of the OpenAPI (fka Swagger) spec renderer for Sphinx
5
5
  Home-page: https://github.com/olivier-heurtier/sphinxcontrib-openapi/tree/mymaster
6
- Author: Ihor Kalnytskyi
7
- Olivier Heurtier
8
- Author-email: ihor@kalnytskyi.com
6
+ Author: Olivier Heurtier
7
+ Author-email: olivier.heurtier@github.com
9
8
  License: BSD
10
9
  Classifier: Topic :: Documentation
11
10
  Classifier: Topic :: Documentation :: Sphinx
@@ -34,3 +33,4 @@ Requires-Dist: m2r2
34
33
  Requires-Dist: picobox
35
34
  Requires-Dist: deepmerge
36
35
  Requires-Dist: setuptools
36
+ Dynamic: license-file
@@ -0,0 +1,160 @@
1
+ .gitignore
2
+ .gitmodules
3
+ .mailmap
4
+ .pre-commit-config.yaml
5
+ CHANGES
6
+ LICENSE
7
+ MANIFEST.in
8
+ README.rst
9
+ pyproject.toml
10
+ setup.cfg
11
+ tox.ini
12
+ .github/workflows/pypi.yml
13
+ .github/workflows/tests.yml
14
+ docs/conf.py
15
+ docs/index.rst
16
+ docs/specs/openapi.yml
17
+ sc_oa.egg-info/PKG-INFO
18
+ sc_oa.egg-info/SOURCES.txt
19
+ sc_oa.egg-info/dependency_links.txt
20
+ sc_oa.egg-info/not-zip-safe
21
+ sc_oa.egg-info/requires.txt
22
+ sc_oa.egg-info/top_level.txt
23
+ sphinxcontrib/__init__.py
24
+ sphinxcontrib/openapi/__init__.py
25
+ sphinxcontrib/openapi/__main__.py
26
+ sphinxcontrib/openapi/_lib2to3.py
27
+ sphinxcontrib/openapi/directive.py
28
+ sphinxcontrib/openapi/openapi20.py
29
+ sphinxcontrib/openapi/openapi30.py
30
+ sphinxcontrib/openapi/schema_utils.py
31
+ sphinxcontrib/openapi/utils.py
32
+ sphinxcontrib/openapi/locale/openapi.pot
33
+ sphinxcontrib/openapi/locale/es_ES/LC_MESSAGES/openapi.mo
34
+ sphinxcontrib/openapi/locale/es_ES/LC_MESSAGES/openapi.po
35
+ sphinxcontrib/openapi/locale/fr_FR/LC_MESSAGES/openapi.mo
36
+ sphinxcontrib/openapi/locale/fr_FR/LC_MESSAGES/openapi.po
37
+ sphinxcontrib/openapi/renderers/__init__.py
38
+ sphinxcontrib/openapi/renderers/_description.py
39
+ sphinxcontrib/openapi/renderers/_httpdomain.py
40
+ sphinxcontrib/openapi/renderers/_httpdomain_old.py
41
+ sphinxcontrib/openapi/renderers/_model.py
42
+ sphinxcontrib/openapi/renderers/_toc.py
43
+ sphinxcontrib/openapi/renderers/abc.py
44
+ tests/conftest.py
45
+ tests/test_description.py
46
+ tests/test_model.py
47
+ tests/test_openapi.py
48
+ tests/test_schema_utils.py
49
+ tests/test_spec_examples.py
50
+ tests/test_toc.py
51
+ tests/OpenAPI-Specification/.gitignore
52
+ tests/OpenAPI-Specification/.travis.yml
53
+ tests/OpenAPI-Specification/CONTRIBUTORS.md
54
+ tests/OpenAPI-Specification/DEVELOPMENT.md
55
+ tests/OpenAPI-Specification/GOVERNANCE.md
56
+ tests/OpenAPI-Specification/IMPLEMENTATIONS.md
57
+ tests/OpenAPI-Specification/LICENSE
58
+ tests/OpenAPI-Specification/MAINTAINERS.md
59
+ tests/OpenAPI-Specification/README.md
60
+ tests/OpenAPI-Specification/package.json
61
+ tests/OpenAPI-Specification/examples/v2.0/json/api-with-examples.json
62
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-expanded.json
63
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-minimal.json
64
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-simple.json
65
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-with-external-docs.json
66
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore.json
67
+ tests/OpenAPI-Specification/examples/v2.0/json/uber.json
68
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/common/Error.json
69
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/NewPet.json
70
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/Pet.json
71
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/parameters.json
72
+ tests/OpenAPI-Specification/examples/v2.0/json/petstore-separate/spec/swagger.json
73
+ tests/OpenAPI-Specification/examples/v2.0/yaml/api-with-examples.yaml
74
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-expanded.yaml
75
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-minimal.yaml
76
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-simple.yaml
77
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-with-external-docs.yaml
78
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore.yaml
79
+ tests/OpenAPI-Specification/examples/v2.0/yaml/uber.yaml
80
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/common/Error.yaml
81
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/NewPet.yaml
82
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/Pet.yaml
83
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/parameters.yaml
84
+ tests/OpenAPI-Specification/examples/v2.0/yaml/petstore-separate/spec/swagger.yaml
85
+ tests/OpenAPI-Specification/examples/v3.0/api-with-examples.yaml
86
+ tests/OpenAPI-Specification/examples/v3.0/callback-example.yaml
87
+ tests/OpenAPI-Specification/examples/v3.0/link-example.yaml
88
+ tests/OpenAPI-Specification/examples/v3.0/petstore-expanded.yaml
89
+ tests/OpenAPI-Specification/examples/v3.0/petstore.yaml
90
+ tests/OpenAPI-Specification/examples/v3.0/uspto.yaml
91
+ tests/OpenAPI-Specification/guidelines/EXTENSIONS.md
92
+ tests/OpenAPI-Specification/guidelines/v2.0/EXTENSIONS.md
93
+ tests/OpenAPI-Specification/guidelines/v2.0/README.md
94
+ tests/OpenAPI-Specification/guidelines/v2.0/REUSE.md
95
+ tests/OpenAPI-Specification/schemas/v1.2/README.md
96
+ tests/OpenAPI-Specification/schemas/v1.2/apiDeclaration.json
97
+ tests/OpenAPI-Specification/schemas/v1.2/authorizationObject.json
98
+ tests/OpenAPI-Specification/schemas/v1.2/dataType.json
99
+ tests/OpenAPI-Specification/schemas/v1.2/dataTypeBase.json
100
+ tests/OpenAPI-Specification/schemas/v1.2/infoObject.json
101
+ tests/OpenAPI-Specification/schemas/v1.2/modelsObject.json
102
+ tests/OpenAPI-Specification/schemas/v1.2/oauth2GrantType.json
103
+ tests/OpenAPI-Specification/schemas/v1.2/operationObject.json
104
+ tests/OpenAPI-Specification/schemas/v1.2/parameterObject.json
105
+ tests/OpenAPI-Specification/schemas/v1.2/resourceListing.json
106
+ tests/OpenAPI-Specification/schemas/v1.2/resourceObject.json
107
+ tests/OpenAPI-Specification/schemas/v2.0/README.md
108
+ tests/OpenAPI-Specification/schemas/v2.0/schema.json
109
+ tests/OpenAPI-Specification/versions/1.2.md
110
+ tests/OpenAPI-Specification/versions/2.0.md
111
+ tests/OpenAPI-Specification/versions/3.0.0.md
112
+ tests/OpenAPI-Specification/versions/3.0.1.md
113
+ tests/OpenAPI-Specification/versions/3.0.2.md
114
+ tests/doc/conf.py
115
+ tests/doc/index.rst
116
+ tests/doc/petstore.yaml
117
+ tests/lib2to3/conftest.py
118
+ tests/lib2to3/test_convert.py
119
+ tests/lib2to3/test_convert_operation.py
120
+ tests/lib2to3/test_convert_parameter.py
121
+ tests/lib2to3/test_convert_parameters.py
122
+ tests/lib2to3/test_convert_path.py
123
+ tests/lib2to3/test_convert_paths.py
124
+ tests/lib2to3/test_convert_request_body.py
125
+ tests/lib2to3/test_convert_request_body_formdata.py
126
+ tests/lib2to3/test_convert_response.py
127
+ tests/lib2to3/test_convert_responses.py
128
+ tests/renderers/httpdomain/conftest.py
129
+ tests/renderers/httpdomain/test_render.py
130
+ tests/renderers/httpdomain/test_render_json_schema_description.py
131
+ tests/renderers/httpdomain/test_render_operation.py
132
+ tests/renderers/httpdomain/test_render_parameter.py
133
+ tests/renderers/httpdomain/test_render_parameters.py
134
+ tests/renderers/httpdomain/test_render_paths.py
135
+ tests/renderers/httpdomain/test_render_request_body.py
136
+ tests/renderers/httpdomain/test_render_request_body_example.py
137
+ tests/renderers/httpdomain/test_render_response.py
138
+ tests/renderers/httpdomain/test_render_response_example.py
139
+ tests/renderers/httpdomain/test_render_responses.py
140
+ tests/renderers/httpdomain/test_render_restructuredtext_markup.py
141
+ tests/renderers/httpdomain/rendered/v2.0/api-with-examples.yaml.rst
142
+ tests/renderers/httpdomain/rendered/v2.0/petstore-expanded.yaml.rst
143
+ tests/renderers/httpdomain/rendered/v2.0/petstore.yaml.rst
144
+ tests/renderers/httpdomain/rendered/v2.0/uber.json.rst
145
+ tests/renderers/httpdomain/rendered/v2.0/uber.yaml.rst
146
+ tests/renderers/httpdomain/rendered/v3.0/api-with-examples.yaml.rst
147
+ tests/renderers/httpdomain/rendered/v3.0/petstore-expanded.yaml.rst
148
+ tests/renderers/httpdomain/rendered/v3.0/petstore.yaml.rst
149
+ tests/renderers/httpdomain/rendered/v3.0/uspto.yaml.rst
150
+ tests/testdata/foo.json
151
+ tests/testdata/foo.yaml
152
+ tests/testspecs/v2.0/api-with-examples.yaml
153
+ tests/testspecs/v2.0/petstore-expanded.yaml
154
+ tests/testspecs/v2.0/petstore.yaml
155
+ tests/testspecs/v2.0/uber.json
156
+ tests/testspecs/v2.0/uber.yaml
157
+ tests/testspecs/v3.0/api-with-examples.yaml
158
+ tests/testspecs/v3.0/petstore-expanded.yaml
159
+ tests/testspecs/v3.0/petstore.yaml
160
+ tests/testspecs/v3.0/uspto.yaml
@@ -1,8 +1,7 @@
1
1
  [metadata]
2
2
  name = sc-oa
3
- author = Ihor Kalnytskyi
4
- Olivier Heurtier
5
- author_email = ihor@kalnytskyi.com
3
+ author = Olivier Heurtier
4
+ author_email = olivier.heurtier@github.com
6
5
  license = BSD
7
6
  description = Fork of the OpenAPI (fka Swagger) spec renderer for Sphinx
8
7
  url = https://github.com/olivier-heurtier/sphinxcontrib-openapi/tree/mymaster
@@ -144,7 +144,8 @@ def _parse_schema(schema, method):
144
144
  del example[k]
145
145
  ret = collections.OrderedDict(example)
146
146
  # XXX should be True to be compliant with OpenAPI
147
- if schema.get('additionalProperties', False) and '...' not in example:
147
+ if (schema.get('additionalProperties', False) or 'type' not in schema) and \
148
+ '...' not in example:
148
149
  # materialize in the example the fact that additional properties can be added
149
150
  ret['...'] = '...'
150
151
  return ret
@@ -160,7 +161,7 @@ def _parse_schema(schema, method):
160
161
  results.append((name, result))
161
162
 
162
163
  # XXX should be True to be compliant with OpenAPI
163
- if schema.get('additionalProperties', False):
164
+ if schema.get('additionalProperties', False) or 'type' not in schema:
164
165
  # materialize in the example the fact that additional properties can be added
165
166
  results.append(("...", "..."))
166
167
 
@@ -245,9 +245,7 @@ def _process_one(prefix, schema, mandatory, entities, convert):
245
245
 
246
246
 
247
247
  def _build(name, schema, entities, convert, options):
248
- if 'type' not in schema:
249
- schema['type'] = 'object'
250
- if schema.get('type', '') not in ['object', 'array']:
248
+ if 'type' in schema and schema['type'] not in ['object', 'array']:
251
249
  return ''
252
250
 
253
251
  yield ''
@@ -257,27 +255,32 @@ def _build(name, schema, entities, convert, options):
257
255
  yield options['header'] * len(name)
258
256
  yield ''
259
257
  D = _get_description(schema, convert)
258
+ if 'type' not in schema and not (set(['oneOf', 'allOf', 'anyOf']) & schema.keys()):
259
+ D += '\n' + _('Any type of content is accepted (number, string or object).')
260
260
  if D:
261
261
  yield D
262
262
  yield ''
263
- yield '.. list-table:: ' + name
264
- yield ' :header-rows: 1'
265
- yield ' :widths: 25 25 45 15'
266
- yield ' :class: longtable'
267
- yield ''
268
- yield ' * - ' + _('Attribute')
269
- yield ' - ' + _('Type')
270
- yield ' - ' + _('Description')
271
- yield ' - ' + _('Required')
272
-
273
- for item in _process_one([], schema, False, entities, convert):
274
- if str(item[0]):
275
- yield ' * - ``' + str(item[0]) + '``'
276
- else:
277
- yield ' * - ' + _('N/A')
278
- yield ' - ' + textwrap.indent(str(item[1]), ' ').lstrip()
279
- yield ' - ' + textwrap.indent(str(item[2]), ' ').lstrip()
280
- yield ' - ' + _('Yes') if item[3] else ' -'
263
+ if 'type' not in schema and not (set(['oneOf', 'allOf', 'anyOf']) & schema.keys()):
264
+ pass
265
+ else:
266
+ yield '.. list-table:: ' + name
267
+ yield ' :header-rows: 1'
268
+ yield ' :widths: 25 25 45 15'
269
+ yield ' :class: longtable'
270
+ yield ''
271
+ yield ' * - ' + _('Attribute')
272
+ yield ' - ' + _('Type')
273
+ yield ' - ' + _('Description')
274
+ yield ' - ' + _('Required')
275
+
276
+ for item in _process_one([], schema, False, entities, convert):
277
+ if str(item[0]):
278
+ yield ' * - ``' + str(item[0]) + '``'
279
+ else:
280
+ yield ' * - ' + _('N/A')
281
+ yield ' - ' + textwrap.indent(str(item[1]), ' ').lstrip()
282
+ yield ' - ' + textwrap.indent(str(item[2]), ' ').lstrip()
283
+ yield ' - ' + _('Yes') if item[3] else ' -'
281
284
 
282
285
  if 'example' in schema or 'examples' in schema:
283
286
  N = 1
@@ -289,7 +292,8 @@ def _build(name, schema, entities, convert, options):
289
292
  N += 1
290
293
  # validate the example against this schema
291
294
  try:
292
- validate(instance=ex, schema=schema)
295
+ if 'type' in schema:
296
+ validate(instance=ex, schema=schema)
293
297
  yield ''
294
298
  yield '.. code-block:: json'
295
299
  yield ''
@@ -0,0 +1,8 @@
1
+ .idea
2
+ *.iml
3
+ *.ipr
4
+ *.iws
5
+ target
6
+ atlassian-ide-plugin.xml
7
+ node_modules/
8
+ Gemfile.lock
@@ -0,0 +1,6 @@
1
+ sudo: false
2
+ language: node_js
3
+ node_js:
4
+ - "node"
5
+ script:
6
+ - node node_modules/mdv/mdv versions/3.*.md
@@ -0,0 +1,9 @@
1
+ * Darrel Miller [@darrelmiller](https://github.com/darrelmiller)
2
+ * Jason Harmon [@jharmn](https://github.com/jharmn)
3
+ * Jeremy Whitlock [@whitlockjc](https://github.com/whitlockjc)
4
+ * Kris Hahn [@KrisHahn](https://github.com/krishahn)
5
+ * Marsh Gardiner [@earth2marsh](https://github.com/earth2marsh)
6
+ * Mike Ralphson [@MikeRalphson](https://github.com/mikeralphson)
7
+ * Rob Dolin [@RobDolinMS](https://github.com/robdolinms)
8
+ * Ron Ratovsky [@webron](https://github.com/webron)
9
+ * Tony Tam [@fehguy](https://github.com/fehguy)
@@ -0,0 +1,118 @@
1
+ ## Development Guidelines
2
+
3
+ This document intends to establish guidelines which build a transparent, open mechanism for deciding how to evolve the OpenAPI Specification. The OpenAPI Technical Steering Committee (TSC) will initially follow these processes when merging changes from external contributors or from the TSC itself. This guideline document will be adjusted as practicality dictates.
4
+
5
+ ## OAI Specification Driving factors
6
+
7
+ The OpenAPI Specification should be use-case driven. We can specify support for hypothetical use cases as we see fit, but specifications should be backed by realistic scenarios.
8
+
9
+ ## Specification Change Criteria
10
+
11
+ The specification *will evolve over time*. Changes may be made when any of the following criteria are met:
12
+
13
+ * Clarity. The current "way" something is done doesn't make sense, is complicated, or not clear.
14
+
15
+ * Consistency. A portion of the specification is not consistent with the rest, or with the industry standard terminology.
16
+
17
+ * Necessary functionality. We are missing functionality because of a certain design of the specification.
18
+
19
+ * Forward-looking designs. As usage of APIs evolves to new protocols, formats, and patterns, we should always consider what the next important functionality should be.
20
+
21
+ * Impact. A change will provide impact on a large number of use cases. We should not be forced to accommodate every use case. We should strive to make the *common* and *important* use cases both well supported and common in the definition of the OAI Spec. We cannot be edge-case driven.
22
+
23
+ ## Specification Change Process
24
+
25
+ For each change in the specification we should *always* consider the following:
26
+
27
+ * Migration. Is this a construct that has a path from the existing 2.0 specification? If so, how complicated is it to migrate to the proposed change?
28
+
29
+ * Tooling. Strive to support code generation, software interfaces, spec generation techniques, as well as other utilities. Some features may be impossible to support in different frameworks/languages. These should be documented and considered during the change approval process.
30
+
31
+ * Visualization. Can the specification change be graphically visualized somehow in a UI or other interface?
32
+
33
+ Spec changes should be approved by a majority of the committers. Approval can be given by commenting on the issue itself, for example, "Approved by @webron" however at least one formal GitHub-based flow approval must be given. After voting criteria is met, any committer can merge the PR. No change should be approved until there is documentation for it, supplied in an accompanying PR.
34
+
35
+ ## Tracking Process
36
+
37
+ * GitHub is the medium of record for all spec designs, use cases, and so on.
38
+
39
+ * As with 2.0, the **human readable** document is the source of truth. If using a JSON Schema again to document the spec, it is secondary to the human documentation. The documentation should live in a *.md file, in parallel to the 2.0 document (versions/3.0.0.md for example).
40
+
41
+ * At any given time, there would be *at most* 4 work branches. The branches would exist if work has started on them. Assuming a current version of 3.0.0:
42
+
43
+ * master - Current stable version. No PRs would be accepted directly to modify the specification. PRs against supporting files can be accepted.
44
+
45
+ * v3.0.1-dev - The next PATCH version of the specification. This would include non-breaking changes such as typo fixes, document fixes, wording clarifications.
46
+
47
+ * v3.1.0 - The next MINOR version.
48
+
49
+ * v4.0.0 - The next MAJOR version.
50
+
51
+ * The master branch shall remain the current, released OpenAPI Specification. We will describe and link the work branch(es) on the **default** README.md on master.
52
+
53
+ * Examples of how something is described *currently* vs. the proposed solution should accompany any change proposal.
54
+
55
+ * New features should be done in feature branches/forks which, upon approval, are merged into the proper work branch.
56
+
57
+ * Use labels for the workflow of specification changes. Examples of labels are proposed, housekeeping, migration-review, tooling-, needs documentation, review (candidate for upcoming TSC mtg), rejected, and needs approval. These labels must be assigned by project committers. Style is lowercase with dashes in place of spaces.
58
+
59
+ * An issue will be opened for each feature change. Embedded in the issue, or ideally linked in a file via pull-request (PR), a document about use cases should be supplied with the change.
60
+
61
+ * A PR will be used to describe the *proposed* solution and linked to the original issue.
62
+
63
+ * Not all committers will contribute to every single proposed change. There may be many open proposals at once, and multiple efforts may happen in parallel.
64
+
65
+ * When the work branch is ready and approved, the branch will be merged to master.
66
+
67
+ ## Release Process
68
+
69
+ A release requires a vote on the release notes by TSC members within the voting period. Major or minor release voting periods will be announced by the Liaison in the Slack channel and noted on the calendar at least 6 days in advance. During this time, TSC members who have not yet voted must note their approval on the GitHub pull request for the release notes. Patch releases happen at the first TSC meeting of a calendar month. The Liaison is responsible for coordinating the actual merge to Master with marketing support, if any.
70
+
71
+ * Patch-level releases require majority approval by TSC members. (Max voting period 3 days)
72
+
73
+ * Minor: requires approval by 66% of TSC members. (Max voting period 7 days)
74
+
75
+ * Major: requires approval by 66% of TSC members. (Max voting period 14 days)
76
+
77
+ ## Draft Features
78
+
79
+ Where suitable, features will be introduced as draft but OAI approved extensions.
80
+ By introducing new features this way we enable new features to be designed, documented and then implemented by tools that are interested in the feature, without putting the burden of implementation on all tooling.
81
+ If the feature is successfully implemented and there is demonstrable value added by the feature, it will become a candidate for inclusion in a future release of the specification, at which point all tools will be expected to support the feature.
82
+
83
+ Draft feature extensions are identified by the `x-oas-draft-` prefix and can only be used where existing extensions are permitted.
84
+ This ensures no existing tooling will affected by the introduction of the draft feature.
85
+ If the feature is deemed appropriate for inclusion in the OAS, the `x-oas-draft-` prefix will be removed.
86
+ Tooling that supports draft features should plan for the future removal of the prefix.
87
+ When tooling adds support for a later version of OAS that includes the final implementation of the feature, it MUST not support the use of the draft prefix for that feature.
88
+ Draft features will only be promoted into minor or major releases of the specification and therefore will be transparent to OpenAPI description writers and tooling providers who choose not to use the feature while in its draft state.
89
+
90
+ Draft features will be documented as GitHub issues and labeled with the `draft-feature` label and will be initially labelled as `draft:proposal`. When the proposal is considered sufficiently stable for pilot implementation, it will be labeled `draft:pilot`.
91
+ If during the development of a draft feature, it is determined that the feature needs to change in a way that may break existing draft implementations, the extension name itself may be versioned with a version suffix. e.g. `-v2`
92
+ When a draft feature becomes part of a future update to the specification any version suffix will be removed.
93
+ Draft features that are deemed not appropriate for inclusion MUST be marked with the `draft:abandoned` label.
94
+ Draft-features that are considered suitably specified and have had successful pilot implementations will be marked with the `draft:graduated` label.
95
+
96
+ Not all future new features will be introduced in this way.
97
+ Some new features impact the specification in ways that cannot be encapsulated in an extension.
98
+ However, where a new feature can be introduced in this way, it should be.
99
+
100
+ ## Transparency
101
+
102
+ The process should be as transparent as possible. Sometimes there will be discussions that use customer names, sensitive use cases, and so on. These must be anonymized, discussed in a private repository, or conducted offline. General discussions should happen on the GitHub issues for this project.
103
+
104
+ ## Participation
105
+
106
+ While governance of the specification is the role of the TSC, the evolution of the specification happens through the participation of members of the developer community at large. Any person willing to contribute to the effort is welcome, and contributions may include filing or participating in issues, creating pull requests, or helping others with such activities.
107
+
108
+ ## Community Roles
109
+
110
+ While these developer community roles are informal, there are many ways to get involved with the OpenAPI community, such as:
111
+
112
+ * Contributor: Includes but is not limited to any [contributor to the specification](https://github.com/OAI/OpenAPI-Specification/graphs/contributors) via an accepted pull request or who participates in issues or TSC calls.
113
+
114
+ * Implementer: any person involved in the creation or maintenance of tooling that leverages the current OpenAPI Specification
115
+
116
+ * Ambassador: represents the OpenAPI Specification to the developer community. This could be through talks at conferences or meetups, blog posts, or answering questions in places like Twitter, Stack Overflow, or the GitHub repo.
117
+
118
+ * Supporter: uses the specification and appreciates its value.
@@ -0,0 +1,31 @@
1
+ # Governance
2
+
3
+ The OpenAPI Specification is a project of the Open API Initiative (OAI), under the auspices of the Linux Foundation. For governance of the OAI, review the [OAI's charter](https://www.openapis.org/participate/how-to-contribute/governance).
4
+
5
+ # Processes and procedures of the Technical Steering Committee (TSC)
6
+
7
+ The TSC is a self-organizing sub-group of the OAI. Herein are its principles and guidelines.
8
+
9
+ ## 1. The establishment of roles and the responsibilities for each role
10
+
11
+ Roles:
12
+
13
+ * [Liaison](https://www.merriam-webster.com/dictionary/liaison) — Elected by TSC members in a plurality vote (oral count). Liaison represents the TSC to the OAI's Business Governing Board (BGB) at board meetings (though this itself does not confer voting rights) and is the public facing mouthpiece of the TSC.
14
+
15
+ * [Maintainer](https://www.merriam-webster.com/dictionary/maintainer) — all and only members of the TSC are maintainers, and are responsible for approving proposed changes to the specification. If membership drops below 3, work is suspended until the BGB can re-establish the minimum. To maintain agility, the TSC should be capped at a maximum 9 members, though that number can be reconsidered by the TSC in the future. Past members will be noted as emeritus status once they are no longer members.
16
+
17
+ * [Rick](https://www.youtube.com/watch?v=dQw4w9WgXcQ) — Responsible for not giving up or letting down. Requires plurality vote of TSC members.
18
+
19
+ ## 2. Adding members to the TSC
20
+
21
+ A call-for-nominations period may be agreed upon by the TSC voting members and announced in a timely manner through [@OpenApiSpec](https://twitter.com/OpenApiSpec) on Twitter, assuming the TSC membership is not already at its maximum. A candidate may be nominated through a motion by a voting TSC member in a closed TSC meeting. A nominee must not receive opposition votes of more than 25% of the TSC voting membership via a confidential vote held electronically within a week following the nomination meeting. Approved nominees become provisional members and are expected to comport themselves as full members of the TSC during the provisional period of 4-6 weeks (to be determined at start of each nominating period), though nominees have no voting rights. The provisional period is concluded by a second, confidential vote similar to the nomination period's vote. At most there are four voting periods per year (no more than one every three months), with a minimum of one per year.
22
+
23
+ ## 3. Removal of membership from the TSC
24
+
25
+ In dire situations, it may be necessary to remove a TSC member, such as behavior that violates the code of conduct (NB: whether non-participation merits removal is a decision left to the TSC voting members). 75% vote (confidential, electronic) of the other TSC members is required to remove a member. Otherwise, TSC members are removed when they renounce their position by informing the Liaison of their effective resignation date.
26
+
27
+ ## 4. Criteria for decisions
28
+
29
+ The group will strive to achieve all decisions via unopposed consensus. When not possible, unresolved conflicts will be raised to the OAI's Technical Oversight Board (TOB).
30
+
31
+ The TSC will maintain a publicly available document specifying the process in the contributor guidelines for how proposed changes are merged into the specification. The TSC will document and publicize the schedule of merge parties and release parties for the benefit of the developer community.
@@ -0,0 +1,73 @@
1
+ ### Implementations
2
+
3
+ Below is a list of known tooling that implements the 3.0.0 specification. While support for the 3.0.0 specification matures, refer to the details of projects listed below for any notes about stability and roadmap. The process to improve the 3.x specification includes feedback from end-users and tooling creators. We strongly encourage draft tooling be made available for early users of OAS drafts.
4
+
5
+ These tools are not endorsed by the OAI.
6
+
7
+ #### Low-Level tooling
8
+
9
+ | Title | Project Link | Language |Description |
10
+ |----------------|--------------|----------|---------------------|
11
+ | swagger-parser | [github/swagger-api](https://github.com/swagger-api/swagger-parser) | Java | Swagger 1.0, 1.1, 1.2, 2.0 to OpenAPI Specification converter |
12
+ | swagger-models | [github/swagger-api](https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-models) | Java | OpenAPI 3.0 Java Pojos |
13
+ | KaiZen OpenAPI Parser | [github/RepreZen/KaiZen-OpenAPI-Parser](https://github.com/RepreZen/KaiZen-OpenAPI-Parser) | Java | High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x |
14
+ | openapi3-ts | [github/metadevpro/openapi3-ts](https://github.com/metadevpro/openapi3-ts) | TypeScript | TS Model & utils for OpenAPI 3.0.x contracts |
15
+ | swagger2openapi | [github/mermade/swagger2openapi](https://github.com/mermade/swagger2openapi) | Node.js | An OpenAPI / Swagger 2.0 to OpenAPI 3.0.x converter and validator |
16
+ | Microsoft.OpenApi.net | [github/microsoft/OpenApi.net](https://github.com/microsoft/openapi.net/) | dotnet | C# based parser with definition validation and migration support from V2 |
17
+ | odata-openapi | [github/oasis-tcs/odata-openapi](https://github.com/oasis-tcs/odata-openapi) | XSLT | OData 4.0 to OpenAPI 3.0.0 converter |
18
+ | openapi3_parser | [github/kevindew/openapi3_parser](https://github.com/kevindew/openapi3_parser) | Ruby | A Ruby implementation of parser and validator for the OpenAPI 3 Specification |
19
+ | oas_parser | [github/Nexmo/oas_parser](https://github.com/Nexmo/oas_parser) | Ruby | An open source OpenAPI Spec 3 Definition Parser writen in Ruby |
20
+ | oas3-remote-refs | [github//OverSpeedIO/oas3-remote-refs](https://github.com/OverSpeedIO/oas3-remote-refs) | Node.js | Tool to pull remote refernences and merge them into the definitions of the provided OpenAPI3 speicfication.
21
+ | go-openapi | [github/nasa9084/go-openapi](https://github.com/nasa9084/go-openapi) | Go | Golang struct model for OpenAPI 3.x. |
22
+ | openapi | [github/wzshiming/openapi](https://github.com/wzshiming/openapi) | Go | OpenAPI 3 Specification for golang |
23
+ | kin-openapi | [github/getkin/kin-openapi](https://github.com/getkin/kin-openapi) | Go | OpenAPI 3.x implementation for Go (parsing, converting, validation) |
24
+
25
+ #### Editors
26
+
27
+ | Title | Project Link | Language |Description |
28
+ |----------------|--------------|----------|---------------------|
29
+ | Apicurio Studio | [github/Apicurio/apicurio-studio](https://github.com/Apicurio/apicurio-studio) | Java/Typescript | Web-Based **visual designer** for OpenAPI 2.0 and 3.0.0. |
30
+ | KaiZen OpenAPI Editor | [github/RepreZen/KaiZen-OpenAPI-Editor](https://github.com/RepreZen/KaiZen-OpenAPI-Editor) | Java | Eclipse Editor for OpenAPI 2.0 and 3.0 |
31
+ | RepreZen API Studio | [RepreZen.com/OpenAPI](https://www.reprezen.com/OpenAPI) | Java | Commercial desktop IDE for API design, documentation & development |
32
+ | OpenAPI-gui | [github/Mermade/openapi-gui](https://github.com/Mermade/openapi-gui) | Node.js | GUI / visual editor for creating and editing OpenAPI definitions |
33
+ | SwaggerHub | [swaggerhub.com](https://swaggerhub.com) | | API Design and Documentation Platform, Built For Teams
34
+ | swagger-editor | [github/swagger-api](https://github.com/swagger-api/swagger-editor) | JavaScript | Web-Based editor for creating, editing, validating and testing OpenAPI\Swagger definitions |
35
+
36
+ #### User Interfaces
37
+
38
+ | Title | Project Link | Language |Description |
39
+ |----------------|--------------|----------|---------------------|
40
+ | openapi-viewer | [github/koumoul/openapi-viewer](https://github.com/koumoul-dev/openapi-viewer) | Vue.js | Browse and test a REST API described with the OpenAPI 3.0 Specification. |
41
+ | swagger-ui | [github/swagger-api](https://github.com/swagger-api/swagger-UI) | JavaScript | Web-Based interface for visualizing and testing OpenAPI\Swagger definitions |
42
+ | lincoln | [github/temando/open-api-renderer](https://github.com/temando/open-api-renderer)| React.js| A React renderer for OpenAPI v3 |
43
+ | WebSphere Liberty | [Download jar](https://developer.ibm.com/wasdev/downloads/) | JavaScript | Includes a native OpenAPI v3 UI which allows for customization of its banners and URL |
44
+ | Widdershins | [github/Mermade/widdershins](https://github.com/Mermade/widdershins) | Node.js | Generate Slate/Shins markdown from OpenAPI 3.0.x |
45
+ | angular-swagger-ui | [github/angular-swagger-ui](https://github.com/Orange-OpenSource/angular-swagger-ui) | AngularJS | An angularJS implementation of Swagger UI |
46
+
47
+ #### Mock Servers
48
+ | Title | Project Link | Language | Description |
49
+ | -------------- | ------------ | -------- | ----------- |
50
+ | API Sprout | [github/danielgtaylor/apisprout](https://github.com/danielgtaylor/apisprout) | Go | Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation |
51
+
52
+ #### Server Implementations
53
+ | Title | Project Link | Language |Description |
54
+ |----------------|--------------|----------|---------------------|
55
+ | Vert.x Web API Contract | [github/vert-x3/vertx-web](http://vertx.io/docs/#web) | Java, Kotlin, JavaScript, Groovy, Ruby, Ceylon & Scala | Create an API endpoint with Vert.x 3 and OpenAPI 3 with automatic requests validation
56
+ | Fusio | [github/apioo/fusio](https://github.com/apioo/fusio) | PHP, JavaScript | Build API endpoints based on OpenAPI 3
57
+ | Modern | [github/modern-project/modern-ruby](https://github.com/modern-project/modern-ruby) | Ruby | OpenAPI 3-based Rack framework with automatic OAS generation and requests/response validation
58
+ | Koa2-OAS3 | [github/OverSpeedIO/koa2-oas3](https://github.com/OverSpeedIO/koa2-oas3) | Node.js | OpenAPI 3 request validation middleware for Koa2 based apps.
59
+ | Exegesis | [github/exegesis-js/exegesis](https://github.com/exegesis-js/exegesis) | Node.js | OpenAPI 3 server-side framework for express and other frameworks.
60
+ | PHP-CRUD-API | [github/mevdschee/php-crud-api](https://github.com/mevdschee/php-crud-api) | PHP | Automatic CRUD API with OpenAPI 3 docs
61
+
62
+ #### Code Generators
63
+
64
+ | Title | Project Link | Language |Description |
65
+ |----------------|--------------|----------|---------------------|
66
+ | baucis-openapi3 | [github/metadevpro/baucis-openapi3](https://github.com/metadevpro/baucis-openapi3) | Node.js | [Baucis.js](https://github.com/wprl/baucis) plugin for generating OpenAPI 3.0 compliant API contracts. |
67
+ | Google Gnostic | [github/googleapis/gnostic](https://github.com/googleapis/gnostic) | Go | Compile OpenAPI descriptions into equivalent Protocol Buffer representations. |
68
+ | Gen | [github/wzshiming/gen](https://github.com/wzshiming/gen) | Go | Generate OpenAPI 3, client, and route based on golang source code. |
69
+ | serverless-openapi-documentation | [github/temando/serverless-openapi-documentation](https://github.com/temando/serverless-openapi-documentation) | Typescript | Serverless 1.0 plugin to generate OpenAPI V3 documentation from serverless configuration |
70
+ | zero-rails_openapi | [github/zhandao/zero-rails_openapi](https://github.com/zhandao/zero-rails_openapi) | Ruby | Provide concise DSL for generating the OpenAPI Specification 3 documentation file for Rails application |
71
+ | slush-vertx | [github/pmlopes/slush-vertx](https://github.com/pmlopes/slush-vertx) | Java, Kotlin & Groovy | Generate server skeleton for [Vert.x Web API Contract](http://vertx.io/docs/#web) and API Client based on [Vert.x 3 Web Client](http://vertx.io/docs/#web)
72
+ | WebSphere Liberty | [Download jar](https://developer.ibm.com/wasdev/downloads/) | Java EE | Generates OpenAPI v3 documentation from Java EE applications |
73
+ | swagger-node-codegen | [github/fmvilas/swagger-node-codegen](https://github.com/fmvilas/swagger-node-codegen) | Node.js | Generates a Node.js/express server, but also has a template engine for creating any templates needed. |