diff --git a/.bowerrc b/.bowerrc
deleted file mode 100644
index 69fad35..0000000
--- a/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "directory": "bower_components"
-}
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 4e31a94..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,25 +0,0 @@
-# EditorConfig helps developers define and maintain consistent
-# coding styles between different editors and IDEs
-# editorconfig.org
-
-root = true
-
-
-[*]
-
-# change these settings to your own preference
-indent_style = space
-indent_size = 2
-
-# we recommend you to keep these unchanged
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.md]
-trim_trailing_whitespace = false
-
-[{package,bower}.json]
-indent_style = space
-indent_size = 2
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..09f417b
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,12 @@
+extends: google
+env:
+ browser: true
+ node: true
+ mocha: true
+rules:
+ quotes:
+ - 2
+ - single
+ brace-style:
+ - 2
+ - stroustrup
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 9e6a43a..c2dd9a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,3 @@
node_modules
-.tmp
-.dist
-.sass-cache
-bower_components
-test/bower_components
+dist
+.vscode
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..0b00ac7
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,27 @@
+language: node_js
+
+node_js:
+ - 6
+
+cache: bundler
+
+branches:
+ only:
+ - master
+
+env:
+ global:
+ - DEPLOY_BRANCH=gh-pages
+ - BUILD_TARGET=dist
+
+before_script:
+ - npm install -g gulp-cli
+ - npm install -g mocha
+script: npm run build
+
+deploy:
+ provider: script
+ skip_cleanup: true
+ script: scripts/deploy.sh
+ on:
+ branch: master
\ No newline at end of file
diff --git a/.yo-rc.json b/.yo-rc.json
deleted file mode 100644
index 7a21352..0000000
--- a/.yo-rc.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "generator-mocha": {}
-}
\ No newline at end of file
diff --git a/README.md b/README.md
index 046faa2..b64dad1 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-# OpenAPI Specification Visual Documentation
-This is a prototype of a D3 rendering of the [OpenAPI specification](https://openapis.org/specification) (fka Swagger Specification) to provide an easy to read visual documentation.
-It is developed by [Arnaud Lauret, the API Handyman](https://github.com/arno-di-loreto).
+# OpenAPI Map 
-This is NOT a rendering of an API OpenAPI specification.
+The OpenAPI Map (fka. OpenAPI Specification Visual Document) aims to help you find your way in the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) (fka. Swagger Specification) documentation. Note that it is not made to render an OpenAPI document.
+
+It has been created by [Arnaud Lauret, the API Handyman](https://apihandyman.io).
## How to use it?
-You can see a live demo on [apihandyman.io](http://openapi-specification-visual-documentation.apihandyman.io/)
+You can see it on [openapi-map.apihandyman.io](http://openapi-map.apihandyman.io/)
- Zoom in: Mouse scroll up
- Zoom out: Mouse scroll down
@@ -13,86 +13,169 @@ You can see a live demo on [apihandyman.io](http://openapi-specification-visual-
- Clicking on a node expand or collapse it
- Moving mouse over a node shows its documentation
-
## How does it work?
-*app/openapi-specification* contains a set of YAML files describing each object provided by the OpenAPI specification.
-The content of these files is based on the OpenAPI specification itself, some precisions have been added when needed.
+### Configuration
+
+The `data/spec-versions.json` file, loaded when `index.html` is load by browser, lists OpenAPI versions which are visible in top right navigation bar:
+
+```json
+[
+ {
+ "name": "Version 3.0",
+ "id": "3.0",
+ "url": "3.0.1.json",
+ "root": "OpenAPI Object",
+ "specificationurl": "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md"
+ },
+ {
+ "name": "Version 2.0",
+ "id": "2.0",
+ "url": "2.0.json",
+ "root": "Swagger Object",
+ "specificationurl": "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md"
+ }
+]
+```
+
+| Property | Description
+|------------------|-----------------
+| name | The name that will appear in tabs
+| id | The json file id to use for direct access `http://openapi-map.apihandyman.io?version=`. Example: http://openapi-map.apihandyman.io?version=3.0
+| url | The json file's url containing the data
+| root | The root object of this version
+| specificationurl | The md file URL for this specification
+
+The data of each version comes from a `.json` file defined in `url`. This file has been generated on build based on data yaml files from folder `data/`.
+The data contains informations coming from the specification available at `specificationUrl`.
+
+### Data files
+The *data* folder contains sets of YAML files (one per version of the OpenAPI Specification) describing each object provided by the OpenAPI Specification.
+
+```
+data
+├── 2.0
+│ ├── Contact_Object.yaml
+│ ├── Definitions_Object.yaml
+ ...
+│ ├── Swagger_Object.yaml
+│ └── Tag_Object.yaml
+└── 3.0.1
+ ├── Callback_Object.yaml
+ ├── Components_Object.yaml
+ ...
+ ├── OpenAPI_Object.yaml
+ ...
+ └── XML_Object.yaml
+```
+
+The content of these files is based on the OpenAPI Specification itself, some precisions have been added when needed.
```yaml
-Info Object:
- description: Provides metadata about the API. The metadata can be used by the clients if needed.
+Some Object:
+ description: |
+ This is `Some Object`' description,
allowExtension: true
- openapiType: true
+ changelog:
+ isNew: true
+ details: Contains former root `responses`, `parameters` (split into `parameters` and `requestBodies`) and `definitions` (as `schemas`).
fields:
- - name: title
- type: string
- required: true
- description: The title of the application.
- - name: description
- type: string
- gfm: true
- description: A short description of the application.
- - name: termsOfService
- type: string
- description: The Terms of Service for the API.
- - name: contact
- type: Contact Object
- description: The contact information for the exposed API.
- - name: licence
- type: Licence Object
- description: The license information for the exposed API.
- - name: version
- type: string
- required: true
- description: Provides the version of the application API (not to be confused with the specification version).
+ -
+ name: schemas
+ type: "{Schema Object}"
+ changelog:
+ isInfo: true
+ details: Replace root `definitions`
+ description: An object to hold reusable [Schema Objects](#schemaObject).
+```
+### Data file structure
+
+| Property | Required | Description
+|------------------|----------|--------------
+| name | no | Optional name used for node's label, if not provided the label is the Object type.
+| description | yes | Object's description.
+| allowExtension | no | Tells this object is extensible with `x-` properties, false by default. If true a `x-` node it automatically added to the object's properties.
+| changelog | no | Describes the modifications from previous version
+| changelog.isNew | no | True is this is a new object
+| changelog.isModified |no | True is this is a modfied object
+| changelog.description |no | Changelog description, markdown can be used
+| changelog.deletedProperties[]|no| List of deleted properties
+| changelog.deletedProperties[].name |yes| Deleted property's name
+| changelog.deletedProperties[].replacedBy |no| New property replacing it
+| changelog.deletedProperties[].see |yes| Object's holding the new property
+| fields[] | yes | Object's properties list
+| fields[].name | yes | Property's name
+| fields[].type | yes | Property's type. Use `"[Some Object]"` or `"[string]"` for arrays. Use `"{Some Object}"`, `"{string}"` or `"{Custom Key, Some Object}"` for maps (a property representing the map key is automatically added to object's properties)
+| fields[].required| no | Property is required if true, false by default
+| fields[].description| no | Property's description.
+| fields[].changelog | no | Describes the modifications from previous version
+| fields[].changelog.isNew | no | True is this is a new object
+| fields[].changelog.isModified |no | True is this is a modfied object
+| fields[].changelog.description |no | Changelog description.
+
+### About descriptions
+
+All `description` properties can contain [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
+If a description contains some links, they are modified that way:
+
+- A `target=_blank` is added to all links
+- Anchor links coming from the specification, like this `[Schema Objects](#schemaObject)` are modified to target the `specificationurl` provided in version's configuration
+- Links to `../examples` are update to target the OpenAPI github repository according to the `specificationurl` provided in version's configuration
+
+## Build and modify
+
+### Prerequisites
+
+You need to install gulp and mocha and download dependencies in order to build the project:
+
+```
+npm install -g gulp-cli
+npm install -g mocha
+npm install
```
-All these files are concatened in openapi-specification.yaml and then converted in openapi-specification.json.
+### Commands
-A tree is generated from the json file on runtime. All descriptions are converted from markdown to html.
+| Command | Decription
+|-----------------|-----------
+| `npm run server`| Launch a local instance with automatic live reload (test then build)
+| `npm run build` | Tests then builds the OpenAPI Map in `dist`
-## Tools used
-This project has been created and built with:
-- [Yeoman](http://yeoman.io/) and the [gulp-webapp](https://github.com/yeoman/generator-gulp-webapp) generator.
-- [npm](https://www.npmjs.com/)
-- [bower](http://bower.io/)
+### Code notes
-This project use:
-- [Bootstrap](http://getbootstrap.com/) framework
-- [Handlebars](http://handlebarsjs.com/) templates
-- [Font Awesome](https://fortawesome.github.io/Font-Awesome/) icons
-- [Marked](https://github.com/chjj/marked) markdown parser and compiler
+| File | Description
+|------|-------------
+| `gulpfiles.js/build-data-files task` | Concatenates the data files and converts the result in json in a `dist/.json` file for each data set.
+| `web/static/js/buildTree.js` | Contains all functions used to build data tree from a `dist/.json` file.
+| `web/static/js/drawTree.js` | Contains all function to draw the D3JS tree in left panel using the data tree generated by `buildTree.js` functions.
+| `web/static/templates.tooltip.hbs` | Handlebar template which is used to show documentation of each node. This template is compiled in the `dist/js/template.js` file by build task.
+| `web/static/js/main.js` | Triggers data loading and tree generation when `web/static/index.html` is loaded by browser.
+
+### Tools used
+
+This project uses:
+
+- [Gulp](https://gulpjs.com/) to automate development tasks
+- [Mocha](https://mochajs.org/) to test the JS code
+- [Bootstrap](http://getbootstrap.com/) framework to lessen the pain of doing HTML and CSS
+- [Handlebars](http://handlebarsjs.com/) templates for the left panel showing the documentation
+- [Font Awesome](https://fontawesome.com/) icons
+- [Marked](https://github.com/chjj/marked) to convert markdown descriptions in HTML
- [YAML](http://www.yaml.org/) a human friendly data serialization
- standard for all programming languages.
-- [d3js](http://d3js.org/) tree
+ standard for all programming languages to store the OpenAPI Map data
+- [d3js](http://d3js.org/) to draw the map
- The d3 tree is based on [D3.js Drag and Drop, Zoomable, Panning, Collapsible Tree with auto-sizing.](http://bl.ocks.org/robschmuecker/7880033) by [Rob Schmuecker](https://github.com/robschmuecker).
- The tooltip has been inspired by [Adding tooltips to a d3.js graph](http://www.d3noob.org/2013/01/adding-tooltips-to-d3js-graph.html) by [3D Noob](http://www.d3noob.org/).
-## How to build and modify
+## CI and Hosting
-You need to install gulp and bower in order to build the project:
-```
-npm install -g gulp
-npm install -g bower
-```
+This project is build by [Travis CI](travis-ci.org) and deployed on [Github pages](https://pages.github.com/) using the following files:
-Command lines to download project's dependancies:
-```
-npm install
-bower install
-```
-
-Command line to build the project (generated files will be available in dist folder):
-```
-gulp
-```
+- .travis.yml: Travis CI Configuration file
+- scripts/deploy.sh: Deploy script (which basically commits the result of the build on the gh-pages branch of this repository)
-Command line to launch a local instance with automatic live reload if some files are modified:
-```
-gulp serve
-```
+**WARNING**: Do not forget to update the `web/CNAME` file when changing Github Page domain using the Github admin.
## Licence
Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/app/index.html b/app/index.html
deleted file mode 100644
index 30ee773..0000000
--- a/app/index.html
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
- OpenAPI Specification Visual Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
OpenAPI Specification Visual Documentation
-
-
-
-
-
-
-
OpenAPI Specification Visual Documentation
- This is a prototype of a D3 rendering of the OpenAPI specification (fka The Swagger Specification) to provide an easy to read visual documentation.
- It is developed by Arnaud Lauret, the API Handyman.
-
- This is NOT a rendering of an API's OpenAPI specification.
-
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 4c79e33..0000000
--- a/bower.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "openapi-specification-visual-documentation",
- "private": true,
- "dependencies": {
- "bootstrap": "~3.3.5",
- "font-awesome": "~4.4.0",
- "d3": "~3.5.6",
- "marked": "~0.3.5",
- "handlebars": "~4.0.3"
- },
- "overrides": {
- "bootstrap": {
- "main": [
- "less/bootstrap.less",
- "dist/css/bootstrap.css",
- "dist/js/bootstrap.js",
- "dist/fonts/*"
- ]
- },
- "font-awesome": {
- "main": [
- "less/font-awesome.less",
- "css/font-awesome.css",
- "fonts/*"
- ]
- }
- },
- "devDependencies": {
- "chai": "~3.4.0",
- "mocha": "~2.3.3"
- }
-}
diff --git a/app/openapi-specification/Contact_Object.yaml b/data/2.0/Contact_Object.yaml
similarity index 100%
rename from app/openapi-specification/Contact_Object.yaml
rename to data/2.0/Contact_Object.yaml
diff --git a/app/openapi-specification/Definitions_Object.yaml b/data/2.0/Definitions_Object.yaml
similarity index 100%
rename from app/openapi-specification/Definitions_Object.yaml
rename to data/2.0/Definitions_Object.yaml
diff --git a/app/openapi-specification/Example_Object.yaml b/data/2.0/Example_Object.yaml
similarity index 100%
rename from app/openapi-specification/Example_Object.yaml
rename to data/2.0/Example_Object.yaml
diff --git a/app/openapi-specification/External_Documentation_Object.yaml b/data/2.0/External_Documentation_Object.yaml
similarity index 96%
rename from app/openapi-specification/External_Documentation_Object.yaml
rename to data/2.0/External_Documentation_Object.yaml
index f8f20f8..47d0257 100644
--- a/app/openapi-specification/External_Documentation_Object.yaml
+++ b/data/2.0/External_Documentation_Object.yaml
@@ -6,7 +6,7 @@ External Documentation Object:
name: description
type: string
description: A short description of the target documentation.
- gfm: true
+ md: GFM
-
name: url
type: string
diff --git a/app/openapi-specification/Header_Object.yaml b/data/2.0/Header_Object.yaml
similarity index 100%
rename from app/openapi-specification/Header_Object.yaml
rename to data/2.0/Header_Object.yaml
diff --git a/app/openapi-specification/Header_Object_Array.yaml b/data/2.0/Header_Object_Array.yaml
similarity index 100%
rename from app/openapi-specification/Header_Object_Array.yaml
rename to data/2.0/Header_Object_Array.yaml
diff --git a/app/openapi-specification/Header_Object_Not_Array.yaml b/data/2.0/Header_Object_Not_Array.yaml
similarity index 100%
rename from app/openapi-specification/Header_Object_Not_Array.yaml
rename to data/2.0/Header_Object_Not_Array.yaml
diff --git a/app/openapi-specification/Header_Object_Number_Or_Integer.yaml b/data/2.0/Header_Object_Number_Or_Integer.yaml
similarity index 100%
rename from app/openapi-specification/Header_Object_Number_Or_Integer.yaml
rename to data/2.0/Header_Object_Number_Or_Integer.yaml
diff --git a/app/openapi-specification/Header_Object_String.yaml b/data/2.0/Header_Object_String.yaml
similarity index 100%
rename from app/openapi-specification/Header_Object_String.yaml
rename to data/2.0/Header_Object_String.yaml
diff --git a/app/openapi-specification/Headers_Object.yaml b/data/2.0/Headers_Object.yaml
similarity index 100%
rename from app/openapi-specification/Headers_Object.yaml
rename to data/2.0/Headers_Object.yaml
diff --git a/app/openapi-specification/Info_Object.yaml b/data/2.0/Info_Object.yaml
similarity index 98%
rename from app/openapi-specification/Info_Object.yaml
rename to data/2.0/Info_Object.yaml
index d249a95..b6589db 100644
--- a/app/openapi-specification/Info_Object.yaml
+++ b/data/2.0/Info_Object.yaml
@@ -8,7 +8,7 @@ Info Object:
description: The title of the application.
- name: description
type: string
- gfm: true
+ md: GFM
description: A short description of the application.
- name: termsOfService
type: string
diff --git a/app/openapi-specification/Licence_Object.yaml b/data/2.0/Licence_Object.yaml
similarity index 100%
rename from app/openapi-specification/Licence_Object.yaml
rename to data/2.0/Licence_Object.yaml
diff --git a/app/openapi-specification/Operation_Object.yaml b/data/2.0/Operation_Object.yaml
similarity index 99%
rename from app/openapi-specification/Operation_Object.yaml
rename to data/2.0/Operation_Object.yaml
index 922c55c..d10fe02 100644
--- a/app/openapi-specification/Operation_Object.yaml
+++ b/data/2.0/Operation_Object.yaml
@@ -18,7 +18,7 @@ Operation Object:
name: description
type: string
description: A verbose explanation of the operation behavior.
- gfm: true
+ md: GFM
-
name: externalDocs
type: External Documentation Object
diff --git a/app/openapi-specification/Parameter_Object.yaml b/data/2.0/Parameter_Object.yaml
similarity index 99%
rename from app/openapi-specification/Parameter_Object.yaml
rename to data/2.0/Parameter_Object.yaml
index 00a361c..ff11eba 100644
--- a/app/openapi-specification/Parameter_Object.yaml
+++ b/data/2.0/Parameter_Object.yaml
@@ -49,7 +49,7 @@ Parameter Object:
-
name: description
type: string
- gfm: true
+ md: GFM
description: |
A brief description of the parameter.
This could contain examples of use.
diff --git a/app/openapi-specification/Parameter_Object_Array.yaml b/data/2.0/Parameter_Object_Array.yaml
similarity index 100%
rename from app/openapi-specification/Parameter_Object_Array.yaml
rename to data/2.0/Parameter_Object_Array.yaml
diff --git a/app/openapi-specification/Parameter_Object_Body.yaml b/data/2.0/Parameter_Object_Body.yaml
similarity index 100%
rename from app/openapi-specification/Parameter_Object_Body.yaml
rename to data/2.0/Parameter_Object_Body.yaml
diff --git a/app/openapi-specification/Parameter_Object_File.yaml b/data/2.0/Parameter_Object_File.yaml
similarity index 100%
rename from app/openapi-specification/Parameter_Object_File.yaml
rename to data/2.0/Parameter_Object_File.yaml
diff --git a/app/openapi-specification/Parameter_Object_Not_Array_Or_File.yaml b/data/2.0/Parameter_Object_Not_Array_Or_File.yaml
similarity index 100%
rename from app/openapi-specification/Parameter_Object_Not_Array_Or_File.yaml
rename to data/2.0/Parameter_Object_Not_Array_Or_File.yaml
diff --git a/app/openapi-specification/Parameter_Object_Not_Body.yaml b/data/2.0/Parameter_Object_Not_Body.yaml
similarity index 99%
rename from app/openapi-specification/Parameter_Object_Not_Body.yaml
rename to data/2.0/Parameter_Object_Not_Body.yaml
index 3bae52b..201a8a0 100644
--- a/app/openapi-specification/Parameter_Object_Not_Body.yaml
+++ b/data/2.0/Parameter_Object_Not_Body.yaml
@@ -30,6 +30,7 @@ Parameter Object Not Body:
description: Fields if *type* value is *string*, *number*, *integer* or *boolean*.
-
name: default
+ type: "*"
description: |
Declares the value of the parameter that the server will use if none is provided.
For example a *count* to control the number of results per page might default to 100 if not supplied by the client in the request.
diff --git a/app/openapi-specification/Parameter_Object_Number_Or_Integer.yaml b/data/2.0/Parameter_Object_Number_Or_Integer.yaml
similarity index 100%
rename from app/openapi-specification/Parameter_Object_Number_Or_Integer.yaml
rename to data/2.0/Parameter_Object_Number_Or_Integer.yaml
diff --git a/app/openapi-specification/Parameter_Object_String.yaml b/data/2.0/Parameter_Object_String.yaml
similarity index 100%
rename from app/openapi-specification/Parameter_Object_String.yaml
rename to data/2.0/Parameter_Object_String.yaml
diff --git a/app/openapi-specification/Parameters_Definition_Object.yaml b/data/2.0/Parameters_Definition_Object.yaml
similarity index 100%
rename from app/openapi-specification/Parameters_Definition_Object.yaml
rename to data/2.0/Parameters_Definition_Object.yaml
diff --git a/app/openapi-specification/Path_Item_Object.yaml b/data/2.0/Path_Item_Object.yaml
similarity index 100%
rename from app/openapi-specification/Path_Item_Object.yaml
rename to data/2.0/Path_Item_Object.yaml
diff --git a/app/openapi-specification/Paths_Object.yaml b/data/2.0/Paths_Object.yaml
similarity index 100%
rename from app/openapi-specification/Paths_Object.yaml
rename to data/2.0/Paths_Object.yaml
diff --git a/app/openapi-specification/Reference_Object.yaml b/data/2.0/Reference_Object.yaml
similarity index 75%
rename from app/openapi-specification/Reference_Object.yaml
rename to data/2.0/Reference_Object.yaml
index 1150efd..6041d70 100644
--- a/app/openapi-specification/Reference_Object.yaml
+++ b/data/2.0/Reference_Object.yaml
@@ -1,12 +1,8 @@
Reference Object:
+ name: $ref
+ type: string
description: |
A simple object to allow referencing other definitions in the specification.
It can be used to reference parameters and responses that are defined at the top level for reuse.
The Reference Object is a JSON Reference that uses a JSON Pointer as its value.
- For this specification, only canonical dereferencing is supported.
- fields:
- -
- name: $ref
- type: string
- description: The reference string.
- required: true
+ For this specification, only canonical dereferencing is supported.
\ No newline at end of file
diff --git a/app/openapi-specification/Response_Object.yaml b/data/2.0/Response_Object.yaml
similarity index 98%
rename from app/openapi-specification/Response_Object.yaml
rename to data/2.0/Response_Object.yaml
index 35a302f..7a636d7 100644
--- a/app/openapi-specification/Response_Object.yaml
+++ b/data/2.0/Response_Object.yaml
@@ -6,7 +6,7 @@ Response Object:
name: description
type: string
required: true
- gfm: true
+ md: GFM
description: A short description of the response. GFM syntax can be used for rich text representation.
-
name: schema
diff --git a/app/openapi-specification/Responses_Definitions_Object.yaml b/data/2.0/Responses_Definitions_Object.yaml
similarity index 100%
rename from app/openapi-specification/Responses_Definitions_Object.yaml
rename to data/2.0/Responses_Definitions_Object.yaml
diff --git a/app/openapi-specification/Responses_Object.yaml b/data/2.0/Responses_Object.yaml
similarity index 96%
rename from app/openapi-specification/Responses_Object.yaml
rename to data/2.0/Responses_Object.yaml
index f425eb3..a9f9b2d 100644
--- a/app/openapi-specification/Responses_Object.yaml
+++ b/data/2.0/Responses_Object.yaml
@@ -9,11 +9,11 @@ Responses Object:
fields:
-
name: default
- allowReference: true
+ #allowReference: true
type: Response Object
description: The documentation of responses other than the ones declared for specific HTTP response codes. It can be used to cover undeclared responses. Reference Object can be used to link to a response that is defined at the Swagger Object's responses section.
-
name: "{HTTP status code}"
- allowReferene: true
+ #allowReference: true
type: Response Object
description: Any HTTP status code can be used as the property name (one property per HTTP status code). Describes the expected response for that HTTP status code. Reference Object can be used to link to a response that is defined at the Swagger Object's responses section.
\ No newline at end of file
diff --git a/app/openapi-specification/Schema_Object.yaml b/data/2.0/Schema_Object.yaml
similarity index 94%
rename from app/openapi-specification/Schema_Object.yaml
rename to data/2.0/Schema_Object.yaml
index 224c05e..15c8e97 100644
--- a/app/openapi-specification/Schema_Object.yaml
+++ b/data/2.0/Schema_Object.yaml
@@ -4,6 +4,7 @@ Schema Object:
These types can be objects, but also primitives and arrays.
This object is based on the JSON Schema Specification Draft 4 and uses a predefined subset of it.
On top of this subset, there are extensions provided by this specification to allow for more complete documentation.
+ allowExtension: true
fields:
-
name: '$ref'
@@ -16,7 +17,7 @@ Schema Object:
-
name: description
type: String
- gfm: true
+ md: GFM
description: The object's description
-
name: default
@@ -36,6 +37,7 @@ Schema Object:
-
name: type
description: Object's type
+ type: string
values:
-
value: array
@@ -74,4 +76,8 @@ Schema Object:
-
name:
type: Schema Object Object
+ description: Fields when *type* is *object*
+ -
+ name:
+ type: Schema Object OpenAPI
description: Fields when *type* is *object*
\ No newline at end of file
diff --git a/app/openapi-specification/Schema_Object_Array.yaml b/data/2.0/Schema_Object_Array.yaml
similarity index 100%
rename from app/openapi-specification/Schema_Object_Array.yaml
rename to data/2.0/Schema_Object_Array.yaml
diff --git a/app/openapi-specification/Schema_Object_Number_Or_Integer.yaml b/data/2.0/Schema_Object_Number_Or_Integer.yaml
similarity index 100%
rename from app/openapi-specification/Schema_Object_Number_Or_Integer.yaml
rename to data/2.0/Schema_Object_Number_Or_Integer.yaml
diff --git a/app/openapi-specification/Schema_Object_Object.yaml b/data/2.0/Schema_Object_Object.yaml
similarity index 97%
rename from app/openapi-specification/Schema_Object_Object.yaml
rename to data/2.0/Schema_Object_Object.yaml
index 95ebcae..f0cde11 100644
--- a/app/openapi-specification/Schema_Object_Object.yaml
+++ b/data/2.0/Schema_Object_Object.yaml
@@ -14,7 +14,7 @@ Schema Object Object:
noFollow: true
-
name: required
- type: [string]
+ type: "[string]"
description: The list of required properties.
-
name: maxProperties
diff --git a/app/openapi-specification/Schema_Object_Swagger.yaml b/data/2.0/Schema_Object_OpenAPI.yaml
similarity index 90%
rename from app/openapi-specification/Schema_Object_Swagger.yaml
rename to data/2.0/Schema_Object_OpenAPI.yaml
index 8242d18..e2de735 100644
--- a/app/openapi-specification/Schema_Object_Swagger.yaml
+++ b/data/2.0/Schema_Object_OpenAPI.yaml
@@ -1,6 +1,6 @@
-Schema Object Swagger:
+Schema Object OpenAPI:
fieldsGroup: true
- description: The following properties are taken directly from the JSON Schema definition and follow the same specifications.
+ description: Other than the JSON Schema subset fields, the following fields may be used for further schema documentation.
fields:
-
name: discriminator
diff --git a/app/openapi-specification/Schema_Object_String.yaml b/data/2.0/Schema_Object_String.yaml
similarity index 100%
rename from app/openapi-specification/Schema_Object_String.yaml
rename to data/2.0/Schema_Object_String.yaml
diff --git a/app/openapi-specification/Scopes_Object.yaml b/data/2.0/Scopes_Object.yaml
similarity index 66%
rename from app/openapi-specification/Scopes_Object.yaml
rename to data/2.0/Scopes_Object.yaml
index c4605e8..be46d4c 100644
--- a/app/openapi-specification/Scopes_Object.yaml
+++ b/data/2.0/Scopes_Object.yaml
@@ -1,9 +1,9 @@
Scopes Object:
- description:
+ description: Lists the available scopes for an OAuth2 security scheme.
allowExtension: true
fields:
- -
- name: "{name}"
+ -
+ name: {name}
type: string
description: Maps between a name of a scope to a short description of it (as the value of the property).
patterned: true
diff --git a/app/openapi-specification/Security_Definitions_Object.yaml b/data/2.0/Security_Definitions_Object.yaml
similarity index 100%
rename from app/openapi-specification/Security_Definitions_Object.yaml
rename to data/2.0/Security_Definitions_Object.yaml
diff --git a/app/openapi-specification/Security_Requirement_Object.yaml b/data/2.0/Security_Requirement_Object.yaml
similarity index 100%
rename from app/openapi-specification/Security_Requirement_Object.yaml
rename to data/2.0/Security_Requirement_Object.yaml
diff --git a/app/openapi-specification/Security_Scheme_Object.yaml b/data/2.0/Security_Scheme_Object.yaml
similarity index 100%
rename from app/openapi-specification/Security_Scheme_Object.yaml
rename to data/2.0/Security_Scheme_Object.yaml
diff --git a/app/openapi-specification/Security_Scheme_Object_ApiKey.yaml b/data/2.0/Security_Scheme_Object_ApiKey.yaml
similarity index 100%
rename from app/openapi-specification/Security_Scheme_Object_ApiKey.yaml
rename to data/2.0/Security_Scheme_Object_ApiKey.yaml
diff --git a/app/openapi-specification/Security_Scheme_Object_Oauth.yaml b/data/2.0/Security_Scheme_Object_Oauth.yaml
similarity index 100%
rename from app/openapi-specification/Security_Scheme_Object_Oauth.yaml
rename to data/2.0/Security_Scheme_Object_Oauth.yaml
diff --git a/app/openapi-specification/Specification_Extensions.yaml b/data/2.0/Specification_Extensions.yaml
similarity index 94%
rename from app/openapi-specification/Specification_Extensions.yaml
rename to data/2.0/Specification_Extensions.yaml
index cfc41f7..dc9a329 100644
--- a/app/openapi-specification/Specification_Extensions.yaml
+++ b/data/2.0/Specification_Extensions.yaml
@@ -3,6 +3,7 @@ Specification Extensions:
type: Any
patterned: true
openapiType: true
+ specificationAnchor: vendorExtensions
description: |
While the OpenAPI Specification tries to accommodate most use cases, additional data can be added to extend the specification at certain points.
The field name MUST begin with *x-*, for example, *x-internal-id.*
diff --git a/app/openapi-specification/Swagger_Object.yaml b/data/2.0/Swagger_Object.yaml
similarity index 95%
rename from app/openapi-specification/Swagger_Object.yaml
rename to data/2.0/Swagger_Object.yaml
index 87f7720..bb660b1 100644
--- a/app/openapi-specification/Swagger_Object.yaml
+++ b/data/2.0/Swagger_Object.yaml
@@ -1,7 +1,7 @@
Swagger Object:
- name: OpenAPI definition
+ name: OpenAPI 2.0
description: |
- This is the *root* document object for the API specification.
+ OpenAPI 2.0 top level object. This is the *root* document object for the API specification.
It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier) together into one document.
allowExtension: true
fields:
@@ -37,7 +37,7 @@ Swagger Object:
The value MUST start with a leading slash (/).
The basePath does not support path templating.
- name: schemes
- type: [string]
+ type: "[string]"
description: |
The transfer protocol of the API.
If the schemes is not included, the default scheme to be used is the one used to access the OpenAPI definition itself.
@@ -49,13 +49,13 @@ Swagger Object:
- value: wss
description: "Secured [web socket](https://en.wikipedia.org/wiki/WebSocket) scheme"
- name: consumes
- type: [string]
+ type: "[string]"
description: |
A list of MIME types the APIs can consume.
This is global to all APIs but can be overridden on specific API calls.
Value MUST be as described under Mime Types.
- name: produces
- type: [string]
+ type: "[string]"
description: |
A list of MIME types the APIs can produce.
This is global to all APIs but can be overridden on specific API calls.
diff --git a/app/openapi-specification/Tag_Object.yaml b/data/2.0/Tag_Object.yaml
similarity index 97%
rename from app/openapi-specification/Tag_Object.yaml
rename to data/2.0/Tag_Object.yaml
index 6b82a67..c5816bb 100644
--- a/app/openapi-specification/Tag_Object.yaml
+++ b/data/2.0/Tag_Object.yaml
@@ -13,7 +13,7 @@ Tag Object:
name: description
type: string
description: A short description for the tag.
- gfm: true
+ md: GFM
-
name: externalDocs
type: ExternalDocumentation
diff --git a/data/3.0.0-rc0/Callback_Object.yaml b/data/3.0.0-rc0/Callback_Object.yaml
new file mode 100644
index 0000000..46b5e49
--- /dev/null
+++ b/data/3.0.0-rc0/Callback_Object.yaml
@@ -0,0 +1,11 @@
+Callback Object:
+ changelog:
+ isNew: true
+ allowExtension: true
+ description: A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.
+ fields:
+ - name: "{expression}"
+ type: Path Item Object
+ noFollow: true
+ description: A Path Item Object used to define a callback request and expected responses
+
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Callbacks_Object.yaml b/data/3.0.0-rc0/Callbacks_Object.yaml
new file mode 100644
index 0000000..88e5f6e
--- /dev/null
+++ b/data/3.0.0-rc0/Callbacks_Object.yaml
@@ -0,0 +1,11 @@
+Callbacks Object:
+ changelog:
+ isNew: true
+ allowExtension: true
+ description: An object to hold reusable Callback Objects.
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Callback Object
+ type: Callback Object
+ allowReference: true
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Callbacks_Map.yaml b/data/3.0.0-rc0/Components_Callbacks_Map.yaml
new file mode 100644
index 0000000..cb79746
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Callbacks_Map.yaml
@@ -0,0 +1,10 @@
+Components Callbacks Map:
+ changelog:
+ isNew: true
+ description: An object to hold reusable Callback Objects.
+ specificationAnchor: componentsObject
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Callback Object
+ type: Callback Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Examples_Map.yaml b/data/3.0.0-rc0/Components_Examples_Map.yaml
new file mode 100644
index 0000000..c671d7a
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Examples_Map.yaml
@@ -0,0 +1,10 @@
+Components Examples Map:
+ description: An object to hold reusable Example Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Example Object
+ type: Example Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Headers_Map.yaml b/data/3.0.0-rc0/Components_Headers_Map.yaml
new file mode 100644
index 0000000..de8ea6b
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Headers_Map.yaml
@@ -0,0 +1,10 @@
+Components Headers Map:
+ description: An object to hold reusable Header Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Header Object
+ type: Header Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Links_Map.yaml b/data/3.0.0-rc0/Components_Links_Map.yaml
new file mode 100644
index 0000000..c389fa9
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Links_Map.yaml
@@ -0,0 +1,10 @@
+Components Links Map:
+ description: An object to hold reusable Link Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Link Object
+ type: Link Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Object.yaml b/data/3.0.0-rc0/Components_Object.yaml
new file mode 100644
index 0000000..3b672d4
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Object.yaml
@@ -0,0 +1,59 @@
+Components Object:
+ description: Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.
+ allowExtension: true
+ changelog:
+ isNew: true
+ details: Contains former root `responses`, `parameters` (split into `parameters` and `requestBodies`) and `definitions` (as `schemas`).
+ fields:
+ -
+ name: schemas
+ type: Components Schemas Map
+ changelog:
+ isInfo: true
+ details: Replace root `definitions`
+ description: A map of reusable Schema Objects.
+ -
+ name: responses
+ type: Components Responses Map
+ changelog:
+ isInfo: true
+ details: Replace root `responses`
+ description: A map of reusable Response Objects.
+ -
+ name: parameters
+ type: Components Parameters Map
+ changelog:
+ isInfo: true
+ details: Replace root `parameters` (Only non body parameters, body ones are in `requestBodies`).
+ description: A map of reusable Parameter Objects.
+ -
+ name: examples
+ type: Components Examples Map
+ description: A map of reusable Example Objects.
+ -
+ name: requestBodies
+ type: Components Request Bodies Map
+ changelog:
+ isInfo: true
+ details: Partially replace root `parameters` (Body parameters only, others are in `parameters`).
+ description: A map of reusable Request Bodies Objects.
+ -
+ name: headers
+ type: Components Headers Map
+ description: A map of reusable Header Objects.
+ -
+ name: securitySchemes
+ type: Components Security Schemes Map
+ changelog:
+ isInfo: true
+ details: Replace root `securityDefinitions`.
+ description: A map of reusable Security Scheme Objects.
+ -
+ name: links
+ type: Components Links Map
+ description: A map of reusable Link Objects.
+ -
+ name: callbacks
+ type: Components Callbacks Map
+ description: A map of reusable Callback Objects.
+
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Parameters_Map.yaml b/data/3.0.0-rc0/Components_Parameters_Map.yaml
new file mode 100644
index 0000000..ff9d6d4
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Parameters_Map.yaml
@@ -0,0 +1,10 @@
+Components Parameters Map:
+ description: An object to hold reusable Parameters Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A reusable Parameter Object
+ type: Parameter Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Request_Bodies_Map.yaml b/data/3.0.0-rc0/Components_Request_Bodies_Map.yaml
new file mode 100644
index 0000000..5ef6e03
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Request_Bodies_Map.yaml
@@ -0,0 +1,10 @@
+Components Request Bodies Map:
+ description: An object to hold reusable Request Body Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Request Body Object
+ type: Request Body Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Responses_Map.yaml b/data/3.0.0-rc0/Components_Responses_Map.yaml
new file mode 100644
index 0000000..0d2c989
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Responses_Map.yaml
@@ -0,0 +1,10 @@
+Components Responses Map:
+ description: An object to hold reusable Response Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Response Object
+ type: Response Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Schemas_Map.yaml b/data/3.0.0-rc0/Components_Schemas_Map.yaml
new file mode 100644
index 0000000..57f8daf
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Schemas_Map.yaml
@@ -0,0 +1,10 @@
+Components Schemas Map:
+ description: An object to hold reusable Schema Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Schema Object
+ type: Schema Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Components_Security_Schemes_Map.yaml b/data/3.0.0-rc0/Components_Security_Schemes_Map.yaml
new file mode 100644
index 0000000..4f336c1
--- /dev/null
+++ b/data/3.0.0-rc0/Components_Security_Schemes_Map.yaml
@@ -0,0 +1,10 @@
+Components Security Schemes Map:
+ description: An object to hold reusable Schema Objects.
+ specificationAnchor: componentsObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A resusable Security Scheme Object
+ type: Security Scheme Object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Contact_Object.yaml b/data/3.0.0-rc0/Contact_Object.yaml
new file mode 100644
index 0000000..758d79e
--- /dev/null
+++ b/data/3.0.0-rc0/Contact_Object.yaml
@@ -0,0 +1,17 @@
+Contact Object:
+ description: Contact information for the exposed API.
+ allowExtension: true
+ fields:
+ - name: name
+ type: string
+ description: The identifying name of the contact person/organization.
+ - name: url
+ type: string
+ description: |
+ The URL pointing to the contact information.
+ MUST be in the format of a URL.
+ - name: email
+ type: string
+ description: |
+ The email address of the contact person/organization.
+ MUST be in the format of an email address.
diff --git a/data/3.0.0-rc0/Content_Object.yaml b/data/3.0.0-rc0/Content_Object.yaml
new file mode 100644
index 0000000..1ca6840
--- /dev/null
+++ b/data/3.0.0-rc0/Content_Object.yaml
@@ -0,0 +1,12 @@
+Content Object:
+ description: |
+ Describes a set of supported media types. A Content Object can be used in Request Body Object, Parameter Objects, Header Objects, and Response Objects.
+
+ Each key in the Content Object is the media type of the Media Type Object.
+ changelog:
+ isNew: true
+ details: Replace `consumes` and `produces`. Reusable `Content Object` can be described in `components`.
+ fields:
+ - name: "{media type}"
+ type: Media Type Object
+ description: A media type object
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Encoding_Object.yaml b/data/3.0.0-rc0/Encoding_Object.yaml
new file mode 100644
index 0000000..c9359de
--- /dev/null
+++ b/data/3.0.0-rc0/Encoding_Object.yaml
@@ -0,0 +1,8 @@
+Encoding Object:
+ description: An object representing multipart region encoding for requestBody objects.
+ changelog:
+ isNew: true
+ fields:
+ - name: "{property}"
+ type: Encoding Property Object
+ description: The property name to which the special encoding are applied. This field MUST exist in the schema as a property.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Encoding_Property_Object.yaml b/data/3.0.0-rc0/Encoding_Property_Object.yaml
new file mode 100644
index 0000000..ea4804d
--- /dev/null
+++ b/data/3.0.0-rc0/Encoding_Property_Object.yaml
@@ -0,0 +1,22 @@
+Encoding Property Object:
+ description: A single encoding definition applied to a single schema property.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: contentType
+ type: string
+ description: "The Content-Type to use for encoding a specific property. Default value depends on the property type: for string with format being binary - application/octet-stream; for other primitive types - plain/text; for object - application/json; for array - the default is defined based on the inner type."
+ -
+ name: Headers
+ type: object
+ description: A string map allowing additional information to be provided as headers, for example Content-Disposition. Note Content-Type is described separately and will be ignored from this section.
+ -
+ name: style
+ type: string
+ description: The Content-Type to use for encoding a specific property. See (#parameterContent) for details on the style property. The behavior follows the same values allowed for query parameters, including default values.
+ -
+ name: explode
+ type: boolean
+ description: When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Example_Object.yaml b/data/3.0.0-rc0/Example_Object.yaml
new file mode 100644
index 0000000..5965a09
--- /dev/null
+++ b/data/3.0.0-rc0/Example_Object.yaml
@@ -0,0 +1,9 @@
+Example Object:
+ description: Allows sharing examples for operation requests and responses. This object can either be a freeform object, array or primitive value. To represent examples of media types that cannot naturally represented in the OpenAPI definition, a string value can be used to contain the example with escaping where necessary.
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: ""
+ type: freeform object or array or primitive value
+ description: Allows sharing examples for operation requests and responses. This object can either be a freeform object, array or primitive value. To represent examples of media types that cannot naturally represented in the OpenAPI definition, a string value can be used to contain the example with escaping where necessary.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/External_Documentation_Object.yaml b/data/3.0.0-rc0/External_Documentation_Object.yaml
new file mode 100644
index 0000000..15f6edb
--- /dev/null
+++ b/data/3.0.0-rc0/External_Documentation_Object.yaml
@@ -0,0 +1,14 @@
+External Documentation Object:
+ description: Allows referencing an external resource for extended documentation.
+ allowExtension: true
+ fields:
+ -
+ name: description
+ type: string
+ description: A short description of the target documentation. CommonMark syntax can be used for rich text representation.
+ md: CommonMarck
+ -
+ name: url
+ type: string
+ description: The URL for the target documentation. Value MUST be in the format of a URL.
+ required: true
diff --git a/data/3.0.0-rc0/Header_Object.yaml b/data/3.0.0-rc0/Header_Object.yaml
new file mode 100644
index 0000000..5466141
--- /dev/null
+++ b/data/3.0.0-rc0/Header_Object.yaml
@@ -0,0 +1,105 @@
+Header Object:
+ description: |
+ The Header Object follows the structure of the Parameter Object, with the following changes:
+
+ - name MUST NOT be specified, it is given in the Headers Object.
+ - in MUST NOT be specified, it is implicitly in header.
+ - All traits that are affected by the location MUST follow the location of header (for example, style).
+
+ Note: allowEmptyValue shouldn't be used too (only for query parameters)
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: Response headers are defined almost like parameters and can now be defined in `OpenAPI Object.components.headers` and reused with a `$ref`.
+ deletedProperties:
+ -
+ name: default
+ replacedBy: schema.default or content.{media type}.schema.default
+ see: Schema Object
+ -
+ name: items
+ replacedBy: schema.items or content.{media type}.schema.items
+ see: Schema Object
+ -
+ name: collectionFormat
+ replacedBy: schema.collectionFormat or content.{media type}.schema.collectionFormat
+ see: Schema Object
+ -
+ name: maxItems
+ replacedBy: schema.maxItems or content.{media type}.schema.maxItems
+ see: Schema Object
+ -
+ name: minItems
+ replacedBy: schema.minItems or content.{media type}.schema.minItems
+ see: Schema Object
+ -
+ name: uniqueItems
+ replacedBy: schema.uniqueItems or content.{media type}.schema.uniqueItems
+ see: Schema Object
+ -
+ name: format
+ replacedBy: schema.format or content.{media type}.schema.format
+ see: Schema Object
+ -
+ name: enum
+ replacedBy: schema.enum or content.{media type}.schema.enum
+ see: Schema Object
+ -
+ name: pattern
+ replacedBy: schema.pattern or content.{media type}.schema.pattern
+ see: Schema Object
+ -
+ name: maxLength
+ replacedBy: schema.maxLength or content.{media type}.schema.maxLength
+ see: Schema Object
+ -
+ name: minLength
+ replacedBy: schema.minLength or content.{media type}.schema.minLength
+ see: Schema Object
+ -
+ name: maximum
+ replacedBy: schema.maximum or content.{media type}.schema.maximum
+ see: Schema Object
+ -
+ name: exclusiveMaximum
+ replacedBy: schema.exclusiveMaximum or content.{media type}.schema.exclusiveMaximum
+ see: Schema Object
+ -
+ name: minimum
+ replacedBy: schema.minimum or content.{media type}.schema.minimum
+ see: Schema Object
+ -
+ name: exclusiveMinimum
+ replacedBy: schema.exclusiveMinimum or content.{media type}.schema.exclusiveMinimum
+ see: Schema Object
+ -
+ name: multipleOf
+ replacedBy: schema.multipleOf or content.{media type}.schema.multipleOf
+ see: Schema Object
+
+ fields:
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: |
+ A brief description of the parameter. This could contain examples of use. CommonMark syntax can be used for rich text representation.
+ -
+ name: required
+ type: boolean
+ description: |
+ Determines whether this parameter is mandatory. If the parameter location is "path", this property is required and its value MUST be true. Otherwise, the property MAY be included and its default value is false.
+ -
+ name: deprecated
+ type: boolean
+ description: Specifies that a parameter is deprecated and SHOULD be transitioned out of usage.
+ changelog:
+ isNew: true
+ -
+ name:
+ type: Parameter Object Style Schema
+ description: The rules for serialization of the parameter are specified in one of two ways. For simpler scenarios, a style and schema can be used to describe the structure and syntax of the parameter.
+ -
+ name:
+ type: Parameter Object Content
+ description: For more complex scenarios a Content Object can be used to define the media type and schema of the parameter. This option is mutually exclusive with the simple scenario above. When example or examples are provided in conjunction with the schema object, the example must follow the prescribed serialization strategy for the parameter.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Headers_Object.yaml b/data/3.0.0-rc0/Headers_Object.yaml
new file mode 100644
index 0000000..eabbbf0
--- /dev/null
+++ b/data/3.0.0-rc0/Headers_Object.yaml
@@ -0,0 +1,10 @@
+Headers Object:
+ description: Lists the headers that can be sent in a response or forwarded via a link. Note that RFC 7230 states header names are case insensitive.
+ fields:
+ - name: "{name}"
+ type: Header Object
+ description: The name of the property corresponds to the name of the header. The value describes the type of the header.
+ allowReference: true
+ changelog:
+ isModified: true
+ details: Headers can now be defined in components to be reused
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Info_Object.yaml b/data/3.0.0-rc0/Info_Object.yaml
new file mode 100644
index 0000000..c1357c6
--- /dev/null
+++ b/data/3.0.0-rc0/Info_Object.yaml
@@ -0,0 +1,25 @@
+Info Object:
+ description: Provides metadata about the API. The metadata can be used by the clients if needed.
+ allowExtension: true
+ fields:
+ - name: title
+ type: string
+ required: true
+ description: The title of the application.
+ - name: description
+ type: string
+ md: CommonMark
+ description: A short description of the application. CommonMark syntax can be used for rich text representation.
+ - name: termsOfService
+ type: string
+ description: A URL to the Terms of Service for the API.
+ - name: contact
+ type: Contact Object
+ description: The contact information for the exposed API.
+ - name: licence
+ type: Licence Object
+ description: The license information for the exposed API.
+ - name: version
+ type: string
+ required: true
+ description: The version of the API definition (which is distinct from the OpenAPI specification version or the API implementation version).
diff --git a/data/3.0.0-rc0/Licence_Object.yaml b/data/3.0.0-rc0/Licence_Object.yaml
new file mode 100644
index 0000000..90d9012
--- /dev/null
+++ b/data/3.0.0-rc0/Licence_Object.yaml
@@ -0,0 +1,14 @@
+Licence Object:
+ description: License information for the exposed API.
+ allowExtension: true
+ fields:
+ - name: name
+ type: string
+ required: true
+ description: The license name used for the API.
+ -
+ name: url
+ type: string
+ description: |
+ A URL to the license used for the API.
+ MUST be in the format of a URL.
diff --git a/data/3.0.0-rc0/Link_Object.yaml b/data/3.0.0-rc0/Link_Object.yaml
new file mode 100644
index 0000000..66d2497
--- /dev/null
+++ b/data/3.0.0-rc0/Link_Object.yaml
@@ -0,0 +1,29 @@
+Link Object:
+ description: The Link Object is responsible for defining a possible operation based on a single response.
+ specificationAnchor: link-object
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: href
+ type: string
+ description: a relative or absolute URL to a linked resource. This field is mutually exclusive with the operationId field.
+ -
+ name: operationId
+ type: string
+ description: the name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive with the href field. Relative href values MAY be used to locate an existing Operation Object in the OAS.
+ -
+ name: parameters
+ type: Link Parameters Object
+ description: an object representing parameters to pass to an operation as specified with operationId or identified via href.
+ -
+ name: headers
+ type: Headers Object
+ description: an object representing headers to pass to the linked resource. Where conflicts occur between these headers, and those defined in the related operation, these headers override.
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: a description of the link, supports CommonMark syntax.
+
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Link_Parameters_Object.yaml b/data/3.0.0-rc0/Link_Parameters_Object.yaml
new file mode 100644
index 0000000..76ae3df
--- /dev/null
+++ b/data/3.0.0-rc0/Link_Parameters_Object.yaml
@@ -0,0 +1,12 @@
+Link Parameters Object:
+ description: |
+ Using the operationId to reference an operation in the definition has many benefits, including the ability to define media type options, security requirements, response and error payloads. Many operations require parameters to be passed, and these MAY be dynamic depending on the response itself.
+
+ To specify parameters required by the operation, we can use a Link Parameters Object. This object contains parameter names along with static or dynamic values
+ changelog:
+ isNew: true
+ fields:
+ - name: "{name}"
+ type: "Any or expression"
+ specificationAnchor: variableSubstitution
+ description: A constant value or [expression](https://github.com/OAI/OpenAPI-Specification/blob/3.0.0-rc0/versions/3.0.md#variableSubstitution) to be evaluated and passed to the linked operation.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Links_Object.yaml b/data/3.0.0-rc0/Links_Object.yaml
new file mode 100644
index 0000000..253999a
--- /dev/null
+++ b/data/3.0.0-rc0/Links_Object.yaml
@@ -0,0 +1,16 @@
+Links Object:
+ allowExtension: true
+ description: |
+ The links object represents a set of possible design-time links for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.
+
+ As opposed to dynamic links (links provided in the response payload), the OAS linking mechanism does not require that link information be provided in a specific response format at runtime.
+
+ For computing links, and providing instructions to execute them, variable substitution is used for accessing values in a response and using them as values while invoking the linked operation.
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: "{name}"
+ description: A short name for the link, following the naming constraints of the names for Component Objects.
+ type: Link Object
+ allowReference: true
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Media_Type_Object.yaml b/data/3.0.0-rc0/Media_Type_Object.yaml
new file mode 100644
index 0000000..3fda7b9
--- /dev/null
+++ b/data/3.0.0-rc0/Media_Type_Object.yaml
@@ -0,0 +1,23 @@
+Media Type Object:
+ description: Each Media Type Object provides schema and examples for a the media type identified by its key. Media Type Objects can be used in a Content Object.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ - name: schema
+ type: Schema Object
+ description: The schema defining the type used for the request body.
+ -
+ name: examples
+ type: "[Example Object]"
+ allowReference: true
+ description: Examples of the media type. Each example in the Examples array SHOULD be in the correct format as specified in the media type. The examples object is mutually exclusive to the example object. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema.
+ -
+ name: example
+ type: Example Object
+ allowReference: true
+ description: Example of the content type. The example object SHOULD be in the correct format as specified in the parameter encoding. The example object is mutually exclusive to the examples object. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the the schema.
+ -
+ name: encoding
+ type: Encoding Object
+ description: Encoding of the media type. The encoding object SHOULD only apply to requestBody objects when the content type is multipart.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/OAuth_Flow_Object.yaml b/data/3.0.0-rc0/OAuth_Flow_Object.yaml
new file mode 100644
index 0000000..92d112b
--- /dev/null
+++ b/data/3.0.0-rc0/OAuth_Flow_Object.yaml
@@ -0,0 +1,28 @@
+OAuth Flow Object:
+ description: Configuration details for a supported OAuth Flow
+ specificationAnchor: oauthFlowObject
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: authorizationUrl
+ type: string
+ validity: oauth2 ("implicit", "authorizationCode")
+ required: true
+ description: The authorization URL to be used for this flow. This MUST be in the form of a URL.
+ -
+ name: tokenUrl
+ type: string
+ validity: oauth2 ("password", "clientCredentials", "authorizationCode")
+ required: true
+ description: The token URL to be used for this flow. This MUST be in the form of a URL.
+ -
+ name: refreshUrl
+ type: string
+ validity: oauth2
+ description: The URL to be used for obtaining refresh tokens. This MUST be in the form of a URL.
+ -
+ name: scopes
+ type: Scopes Object
+ validity: oauth2
+ description: The available scopes for the OAuth2 security scheme.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/OAuth_Flows_Object.yaml b/data/3.0.0-rc0/OAuth_Flows_Object.yaml
new file mode 100644
index 0000000..270cd60
--- /dev/null
+++ b/data/3.0.0-rc0/OAuth_Flows_Object.yaml
@@ -0,0 +1,23 @@
+OAuth Flows Object:
+ description: Allows configuration of the supported OAuth Flows.
+ changelog:
+ isNew: true
+ specificationAnchor: oauthFlowsObject
+ allowExtension: true
+ fields:
+ -
+ name: implicit
+ type: OAuth Flow Object
+ description: Configuration for the OAuth Implicit flow
+ -
+ name: password
+ type: OAuth Flow Object
+ description: Configuration for the OAuth Resource Owner Password flow
+ -
+ name: clientCredentials
+ type: OAuth Flow Object
+ description: Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0.
+ -
+ name: authorizationCode
+ type: OAuth Flow Object
+ description: Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/OpenAPI_Object.yaml b/data/3.0.0-rc0/OpenAPI_Object.yaml
new file mode 100644
index 0000000..3775388
--- /dev/null
+++ b/data/3.0.0-rc0/OpenAPI_Object.yaml
@@ -0,0 +1,88 @@
+OpenAPI Object:
+ name: OpenAPI 3.0.0-rc0
+ specificationAnchor: oasObject
+ description: |
+ OpenAPI 3.0.0 top level object.
+ This is the root document object for the API specification. It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier) together into one document.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ The new OpenAPI specification version 3.0.0 offers many welcomed improvements and new features (see OpenAPI [blog post series about this](https://www.openapis.org/news/blogs/2016/10/tdc-structural-improvements-explaining-30-spec-part-2)).
+
+ Here are the noticeable changes on top level (*navigate through the tree to see what happened on other levels*):
+ - Bye bye `swagger` and hello `openapi`.
+ - Reusable definitions are centralized in `components` making the document more consistent (the previous version mixed reusable and global definitions on the same level).
+
+ deletedProperties:
+ - name: swagger
+ replacedBy: openapi
+ see: OpenAPI Object
+ - name: host
+ replacedBy: servers[].url
+ see: Server Object
+ - name: basePath
+ replacedBy: servers[].url
+ see: Server Object
+ - name: schemes
+ replacedBy: servers[].url
+ see: Server Object
+ - name: definitions
+ replacedBy: components.schemas
+ see: Components Object
+ - name: parameters
+ replacedBy: components.parameters and components.requestBodies
+ see: Components Object
+ - name: securityDefinitions
+ replacedBy: components.securitySchemas
+ see: Components Object
+ - name: consumes
+ replacedBy: Content Object.{media type}
+ see: Content Object
+ - name: produces
+ replacedBy: Content Object.{media type}
+ see: Content Object
+ fields:
+ -
+ name: openapi
+ type: string
+ required: true
+ changelog:
+ isNew: true
+ details: Replace the `swagger` property
+ description: |
+ Specifies the OpenAPI Specification version being used. It can be used by tooling Specifications and clients to interpret the version. The structure SHALL be `major.minor.patch`, where `patch` versions MUST be compatible with the existing `major.minor` tooling. Typically `patch` versions will be introduced to address errors in the documentation, and tooling SHOULD typically be compatible with the corresponding `major.minor` (3.0.*). Patch versions will correspond to patches of this document.
+ -
+ name: info
+ type: Info Object
+ required: true
+ description: Provides metadata about the API. The metadata can be used by the clients if needed.
+ -
+ name: servers
+ type: "[Server Object]"
+ description: An optional array of Server Objects which provide connectivity information to a target server.
+ changelog:
+ isNew: true
+ -
+ name: paths
+ type: Paths Object
+ required: true
+ description: Required. The available paths and operations for the API.
+ -
+ name: components
+ type: Components Object
+ description: An element to hold various schemas for the specification.
+ changelog:
+ isNew: true
+ -
+ name: security
+ type: "[Security Requirement Object]"
+ description: A declaration of which security mechanisms can be used across the API. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. Individual operations can override this definition.
+ -
+ name: tags
+ type: "[Tag Object]"
+ description: A list of tags used by the specification with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique.
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Operation_Object.yaml b/data/3.0.0-rc0/Operation_Object.yaml
new file mode 100644
index 0000000..42d0007
--- /dev/null
+++ b/data/3.0.0-rc0/Operation_Object.yaml
@@ -0,0 +1,89 @@
+Operation Object:
+ description: Describes a single API operation on a path.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Better and consistent parameters description by using `Schema Object` even for atomic ones.
+ - Request body is now define separetely (`requestBody`).
+ - Async/event API design is possible thanks to `callbacks` (webhooks).
+ - The `servers` property enhance documentation and test possibilities (also available on top and path levels).
+ deletedProperties:
+ -
+ name: produces
+ replacedBy: responses.{HTTP Status}.content.{media type}
+ specificationAnchor: mediaTypeObject
+ -
+ name: consumes
+ replacedBy: requestBody.content.{media type}
+ specificationAnchor: mediaTypeObject
+ -
+ name: schemes
+ replacedBy: servers
+ specificationAnchor: Server Object
+ fields:
+ -
+ name: tags
+ type: "[string]"
+ description: A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.
+ -
+ name: summary
+ type: string
+ description: A short summary of what the operation does. For maximum readability in editing or documentation generation tools, this field SHOULD be less than 120 characters.
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: A verbose explanation of the operation behavior. CommonMark syntax can be used for rich text representation.
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation for this operation.
+ -
+ name: operationId
+ type: string
+ description: Unique string used to identify the operation. The id MUST be unique among all operations described in the API. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is recommended to follow common programming naming conventions.
+ -
+ name: parameters
+ type: "[Parameter Object]"
+ allowReference: true
+ changelog:
+ isModified: true
+ details: Does not describe body parameter anymore (see requestBody)
+ description: A list of parameters that are applicable for this operation. If a parameter is already defined at the Path Item, the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object's parameters.
+ -
+ name: requestBody
+ type: Request Body Object
+ allowReference: true
+ required: true
+ changelog:
+ isNew: true
+ details: Replace `parameters` with `in = body`
+ description: The request body applicable for this operation. The requestBody is only supported in HTTP methods where the HTTP 1.1 specification has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague, requestBody SHALL be ignored by consumers.
+ -
+ name: responses
+ type: Responses Object
+ required: true
+ descriptions: The list of possible responses as they are returned from executing this operation.
+ -
+ name: callbacks
+ type: Callbacks Object
+ changelog:
+ isNew: true
+ description: The list of possible callbacks as they are returned from executing this operation.
+ -
+ name: deprecated
+ type: boolean
+ description: Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is false.
+ -
+ name: security
+ type: Security Requirement Object
+ changelog:
+ isNew: true
+ description: A declaration of which security mechanisms can be used for this operation. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. This definition overrides any declared top-level security. To remove a top-level `security` declaration, an empty array can be used.
+ -
+ name: servers
+ type: Server Object
+ changelog:
+ isNew: true
+ description: An alternative server array to service this operation. If an alternative server object is specified at the Path Item Object or Root level, it will be overridden by this value.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Parameter_Object.yaml b/data/3.0.0-rc0/Parameter_Object.yaml
new file mode 100644
index 0000000..858ddef
--- /dev/null
+++ b/data/3.0.0-rc0/Parameter_Object.yaml
@@ -0,0 +1,158 @@
+Parameter Object:
+ description: |
+ Describes a single operation parameter.
+
+ A unique parameter is defined by a combination of a name and location.
+
+ There are four possible parameter locations (as specified with the in field):
+
+ - path - Used together with Path Templating, where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in /items/{itemId}, the path parameter is itemId.
+ - query - Parameters that are appended to the URL. For example, in /items?id=###, the query parameter is id.
+ - header - Custom headers that are expected as part of the request. Note that RFC 7230 states header names are case insensitive.
+ - cookie - Used to pass a specific cookie value to the API.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Besides query, header and path parameters, `cookie` parameters can be defined.
+ - Body parameters are now defined with a `Request Body Object`.
+ - All parameters types (even atomic ones like string or boolean for example) are now defined with a `Schema Object`.
+ - Former `formData` parameters (used for media types `application/x-www-form-urlencoded` or `multipart/form-data` are handled with a `Content Object` which allow to define the media type of parameters, request bodies, headers or responses.
+ - `Example(s)` can be provided.
+ - Parameters can now be `deprecated`.
+ - More control on serialization (with `allowReserved`, `style` and `explode`).
+ deletedProperties:
+ -
+ name: body
+ replacedBy: schema or content.schema
+ see: Parameter Object
+ -
+ name: default
+ replacedBy: schema.default or content.{media type}.schema.default
+ see: Schema Object
+ -
+ name: items
+ replacedBy: schema.items or content.{media type}.schema.items
+ see: Schema Object
+ -
+ name: collectionFormat
+ replacedBy: schema.collectionFormat or content.{media type}.schema.collectionFormat
+ see: Schema Object
+ -
+ name: maxItems
+ replacedBy: schema.maxItems or content.{media type}.schema.maxItems
+ see: Schema Object
+ -
+ name: minItems
+ replacedBy: schema.minItems or content.{media type}.schema.minItems
+ see: Schema Object
+ -
+ name: uniqueItems
+ replacedBy: schema.uniqueItems or content.{media type}.schema.uniqueItems
+ see: Schema Object
+ -
+ name: format
+ replacedBy: schema.format or content.{media type}.schema.format
+ see: Schema Object
+ -
+ name: enum
+ replacedBy: schema.enum or content.{media type}.schema.enum
+ see: Schema Object
+ -
+ name: pattern
+ replacedBy: schema.pattern or content.{media type}.schema.pattern
+ see: Schema Object
+ -
+ name: maxLength
+ replacedBy: schema.maxLength or content.{media type}.schema.maxLength
+ see: Schema Object
+ -
+ name: minLength
+ replacedBy: schema.minLength or content.{media type}.schema.minLength
+ see: Schema Object
+ -
+ name: maximum
+ replacedBy: schema.maximum or content.{media type}.schema.maximum
+ see: Schema Object
+ -
+ name: exclusiveMaximum
+ replacedBy: schema.exclusiveMaximum or content.{media type}.schema.exclusiveMaximum
+ see: Schema Object
+ -
+ name: minimum
+ replacedBy: schema.minimum or content.{media type}.schema.minimum
+ see: Schema Object
+ -
+ name: exclusiveMinimum
+ replacedBy: schema.exclusiveMinimum or content.{media type}.schema.exclusiveMinimum
+ see: Schema Object
+ -
+ name: multipleOf
+ replacedBy: schema.multipleOf or content.{media type}.schema.multipleOf
+ see: Schema Object
+ fields:
+ -
+ name: name
+ required: true
+ type: string
+ description: |
+ The name of the parameter. Parameter names are case sensitive.
+ If in is "path", the name field MUST correspond to the associated path segment from the path field in the Paths Object. See Path Templating for further information.
+ For all other cases, the name corresponds to the parameter name used based on the in property.
+ -
+ name: in
+ type: string
+ required: true
+ description: The location of the parameter. Possible values are "query", "header", "path" or "cookie".
+ changelog:
+ isModified: true
+ details: |
+ `formData` (replaced by the use of a `Content Object`) and `body` (replaced by `Request Body`) values have been removed.
+ values:
+ -
+ value: query
+ description: "Parameters that are appended to the URL. For example, in /items?id=###, the query parameter is id."
+ -
+ value: header
+ description: Custom headers that are expected as part of the request. Note that RFC 7230 states header names are case insensitive.
+ -
+ value: path
+ description: |
+ Used together with Path Templating, where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in /items/{itemId}, the path parameter is itemId.
+ -
+ value: cookie
+ description: Used to pass a specific cookie value to the API.
+
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: |
+ A brief description of the parameter. This could contain examples of use. CommonMark syntax can be used for rich text representation.
+ -
+ name: required
+ type: boolean
+ description: |
+ Determines whether this parameter is mandatory. If the parameter location is "path", this property is required and its value MUST be true. Otherwise, the property MAY be included and its default value is false.
+ -
+ name: deprecated
+ type: boolean
+ description: Specifies that a parameter is deprecated and SHOULD be transitioned out of usage.
+ changelog:
+ isNew: true
+ -
+ name: allowEmptyValue
+ type: boolean
+ description: Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is false. If style is used, if behavior is n/a, the value of allowEmptyValue SHALL be ignored.
+ -
+ name:
+ type: Parameter Object Style Schema
+ changelog:
+ isNew: true
+ description: The rules for serialization of the parameter are specified in one of two ways. For simpler scenarios, a style and schema can be used to describe the structure and syntax of the parameter.
+ -
+ name:
+ type: Parameter Object Content
+ changelog:
+ isNew: true
+ description: For more complex scenarios a Content Object can be used to define the media type and schema of the parameter. This option is mutually exclusive with the simple scenario above. When example or examples are provided in conjunction with the schema object, the example must follow the prescribed serialization strategy for the parameter.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Parameter_Object_Content.yaml b/data/3.0.0-rc0/Parameter_Object_Content.yaml
new file mode 100644
index 0000000..04d7d3e
--- /dev/null
+++ b/data/3.0.0-rc0/Parameter_Object_Content.yaml
@@ -0,0 +1,11 @@
+Parameter Object Content:
+ description: For more complex scenarios a Content Object can be used to define the media type and schema of the parameter. This option is mutually exclusive with the simple scenario above. When example or examples are provided in conjunction with the schema object, the example must follow the prescribed serialization strategy for the parameter.
+ fieldsGroup: true
+ changelog:
+ isNew: true
+ fields:
+ - name: content
+ type: Content Object
+ changelog:
+ isNew: true
+ description: The content of the parameter.
diff --git a/data/3.0.0-rc0/Parameter_Object_Style_Schema.yaml b/data/3.0.0-rc0/Parameter_Object_Style_Schema.yaml
new file mode 100644
index 0000000..e1ab1bc
--- /dev/null
+++ b/data/3.0.0-rc0/Parameter_Object_Style_Schema.yaml
@@ -0,0 +1,44 @@
+Parameter Object Style Schema:
+ description: The rules for serialization of the parameter are specified in one of two ways. For simpler scenarios, a style and schema can be used to describe the structure and syntax of the parameter.
+ fieldsGroup: true
+ fields:
+ -
+ name: style
+ type: string
+ changelog:
+ isNew: true
+ description: |
+ Describes how the parameter value will be serialized depending on type of the parameter value. Default values (based on value of in): for query - form; for path - simple; for header - simple; for cookie - form."
+ -
+ name: explode
+ type: boolean
+ changelog:
+ isNew: true
+ description: When this is true, parameter values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false.
+ -
+ name: allowReserved
+ type: boolean
+ changelog:
+ isNew: true
+ description: "Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. This property only applies to parameters with an in value of query. The default value is false."
+ -
+ name: schema
+ type: Schema Object
+ allowReference: true
+ changelog:
+ isNew: true
+ description: The schema defining the type used for the parameter.
+ -
+ name: examples
+ type: "[Example Object]"
+ allowReference: true
+ changelog:
+ isNew: true
+ description: Examples of the content type. Each example in the Examples array SHOULD be in the correct format as specified parameter encoding. The examples object is mutually exclusive to the example object. Furthermore, if referencing a schema which contains an example, the examples value SHALL override the example provided by the schema.
+ -
+ name: example
+ type: Example Object
+ allowReference: true
+ changelog:
+ isNew: true
+ description: Example of the content type. The example object SHOULD be in the correct format as specified in the parameter encoding. The example object is mutually exclusive to the examples object. Furthermore, if referencing a schema which contains an example, the example value SHALL override the example provided by the the schema.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Path_Item_Object.yaml b/data/3.0.0-rc0/Path_Item_Object.yaml
new file mode 100644
index 0000000..aca4cee
--- /dev/null
+++ b/data/3.0.0-rc0/Path_Item_Object.yaml
@@ -0,0 +1,69 @@
+Path Item Object:
+ description: |
+ Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Enhance resource point of view by adding `summary` and `description` on path level.
+ - HTTP methode `trace` has been added (TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing or diagnostic information. See [RFC7231](https://tools.ietf.org/html/rfc7231#section-4.3.8).)
+ - The `servers` property enhance documentation and test possibilities (also available on top and operation levels).
+ fields:
+ -
+ name: summary
+ type: string
+ description: An optional, string summary, intended to apply to all operations in this path.
+ changelog:
+ isNew: true
+ -
+ name: description
+ type: string
+ description: An optional, string description, intended to apply to all operations in this path.
+ changelog:
+ isNew: true
+ -
+ name: get
+ type: Operation Object
+ description: A definition of a GET operation on this path.
+ -
+ name: put
+ type: Operation Object
+ description: A definition of a PUT operation on this path.
+ -
+ name: post
+ type: Operation Object
+ description: A definition of a POST operation on this path.
+ -
+ name: delete
+ type: Operation Object
+ description: A definition of a DELETE operation on this path.
+ -
+ name: options
+ type: Operation Object
+ description: A definition of a OPTIONS operation on this path.
+ -
+ name: head
+ type: Operation Object
+ description: A definition of a HEAD operation on this path.
+ -
+ name: patch
+ type: Operation Object
+ description: A definition of a PATCH operation on this path.
+ -
+ name: trace
+ type: Operation Object
+ description: A definition of a TRACE operation on this path.
+ changelog:
+ isNew: true
+ -
+ name: servers
+ type: Server Object
+ description: An alternative `server` array to service all operations in this path.
+ changelog:
+ isNew: true
+ -
+ name: parameters
+ type: "[Parameter Object]"
+ allowReference: true
+ description: |
+ A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and location. The list can use the Reference Object to link to parameters that are defined at the OpenAPI Object's parameters.
diff --git a/data/3.0.0-rc0/Paths_Object.yaml b/data/3.0.0-rc0/Paths_Object.yaml
new file mode 100644
index 0000000..2ebd1dc
--- /dev/null
+++ b/data/3.0.0-rc0/Paths_Object.yaml
@@ -0,0 +1,11 @@
+Paths Object:
+ description: |
+ Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL. The Paths MAY be empty, due to ACL constraints.
+ allowExtension: true
+ fields:
+ - name: "/{path}"
+ type: Path Item Object
+ required: true
+ allowReference: true
+ description: |
+ A relative path to an individual endpoint. The field name MUST begin with a slash. The path is appended (no relative URL resolution) to the expanded URL from the `Server Object`'s url field in order to construct the full URL. Path templating is allowed.
diff --git a/data/3.0.0-rc0/Reference_Object.yaml b/data/3.0.0-rc0/Reference_Object.yaml
new file mode 100644
index 0000000..a4d5a1a
--- /dev/null
+++ b/data/3.0.0-rc0/Reference_Object.yaml
@@ -0,0 +1,7 @@
+Reference Object:
+ name: $ref
+ type: string
+ description: |
+ A simple object to allow referencing other definitions in the specification. It can be used to reference parameters and responses that are defined at the top level for reuse.
+
+ The Reference Object is a JSON Reference that uses a JSON Pointer as its value. For this specification, only canonical dereferencing is supported.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Request_Body_Object.yaml b/data/3.0.0-rc0/Request_Body_Object.yaml
new file mode 100644
index 0000000..c96f3f5
--- /dev/null
+++ b/data/3.0.0-rc0/Request_Body_Object.yaml
@@ -0,0 +1,19 @@
+Request Body Object:
+ description: Describes a single request body.
+ changelog:
+ isNew: true
+ allowExtension: true
+ fields:
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: A brief description of the request body. This could contain examples of use. CommonMark syntax can be used for rich text representation.
+ -
+ name: content
+ type: Content Object
+ description: The content of the request body.
+ -
+ name: required
+ type: boolean
+ description: Determines if the request body is required in the request. Defaults to true.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Response_Object.yaml b/data/3.0.0-rc0/Response_Object.yaml
new file mode 100644
index 0000000..9646443
--- /dev/null
+++ b/data/3.0.0-rc0/Response_Object.yaml
@@ -0,0 +1,45 @@
+Response Object:
+ description: Describes a single response from an API Operation, including design-time, static links to operations based on the response.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Better control on media type, response handles returned media type with `content.{mediatype}`. It replaces `produces` definition on `Operation Object` or top level.
+ - Enhanced hypermedia design with `links`.
+ - Headers are easier to define because they can be defined in `components.headers` and used in `headers`
+ deletedProperties:
+ -
+ name: schema
+ replacedBy: content.{media type}.schema
+ see: Media Type Object
+ -
+ name: example
+ replacedBy: content.{media type}.example or content.{media type}.examples
+ see: Media Type Object
+ fields:
+ -
+ name: description
+ type: string
+ isRequired: true
+ md: CommonMark
+ description: A short description of the response. CommonMark syntax can be used for rich text representation.
+ -
+ name: headers
+ type: Headers Object
+ changelog:
+ isModified: true
+ details: Headers can now be defined in the root `components`
+ description: A list of headers that are sent with the response.
+ -
+ name: content
+ type: Content Object
+ changelog:
+ isNew: true
+ details: Replace `schema` but also `Operation Object.produces` or `Open API Object.produces`
+ description: An object containing descriptions of potential response payloads.
+ -
+ name: links
+ type: Links Object
+ changelog:
+ isNew: true
+ description: An object representing operations related to the response payload.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Responses_Object.yaml b/data/3.0.0-rc0/Responses_Object.yaml
new file mode 100644
index 0000000..a603ae7
--- /dev/null
+++ b/data/3.0.0-rc0/Responses_Object.yaml
@@ -0,0 +1,24 @@
+Responses Object:
+ description: |
+ A container for the expected responses of an operation. The container maps a HTTP response code to the expected response. It is not expected from the documentation to necessarily cover all possible HTTP response codes, since they may not be known in advance. However, it is expected from the documentation to cover a successful operation response and any known errors.
+
+ The default MAY be used as a default response object for all HTTP codes that are not covered individually by the specification.
+
+ The Responses Object MUST contain at least one response code, and it SHOULD be the response for a successful operation call.
+ allowExtension: true
+ changelog:
+ isModified: true
+ fields:
+ -
+ name: default
+ allowReference: true
+ type: Response Object
+ description: The documentation of responses other than the ones declared for specific HTTP response codes. It can be used to cover undeclared responses. Reference Object can be used to link to a response that is defined at the Swagger Object's responses section.
+ -
+ name: "{HTTP status code}"
+ allowReference: true
+ type: Response Object
+ changelog:
+ isModified: true
+ details: Wildcard are now allowed (2XX for example)
+ description: Any HTTP status code can be used as the property name (one property per HTTP status code). Describes the expected response for that HTTP status code. Reference Object can be used to link to a response that is defined at the OpenAPI Object's responses section. This field MUST be quoted for compatibility between JSON and YAML (i.e. "200"), and MAY contain the uppercase character, X to designate a wildcard, such as 2XX to represent all response codes between [200-299].
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Schema_Object.yaml b/data/3.0.0-rc0/Schema_Object.yaml
new file mode 100644
index 0000000..9241cd9
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object.yaml
@@ -0,0 +1,31 @@
+Schema Object:
+ description: |
+ The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the [JSON Schema Specification Wright Draft 00](http://json-schema.org/).
+
+ Further information about the properties can be found in [JSON Schema Core](https://tools.ietf.org/html/draft-wright-json-schema-00) and [JSON Schema Validation](https://tools.ietf.org/html/draft-wright-json-schema-validation-00). Unless stated otherwise, the property definitions follow the JSON Schema specification as referenced here.
+
+ Alternatively, any time a Schema Object can be used, a Reference Object can be used in its place. This allows referencing definitions in place of defining them inline.
+
+ Additional properties defined by the JSON Schema specification that are not mentioned here are strictly unsupported.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Enhanced consistency and easier design with extensive use of Schema Object for all definitions (parameters, bodies, responses, headers)
+ - Inheritance and polymorphism mecanism has been enhanced (`oneOf`, `anyOf` and `not` have been added) and clarified (see new `discriminator` behaviour).
+ - Creating read/write models is easier with `readOnly` (behaviour modified) and `writeOnly` (new).
+ - Enhance versioning thanks to `deprecated`.
+ - Better documentation with the possibility to have multiple `examples`.
+ fields:
+ -
+ name:
+ type: Schema Object JSON
+ changelog:
+ isModified: true
+ description: JSON Schema Properties
+ -
+ name:
+ type: Schema Object OpenAPI
+ changelog:
+ isModified: true
+ description: Other than the JSON Schema subset fields, the following fields MAY be used for further schema documentation.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Schema_Object_Array.yaml b/data/3.0.0-rc0/Schema_Object_Array.yaml
new file mode 100644
index 0000000..5f2b342
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_Array.yaml
@@ -0,0 +1,20 @@
+Schema Object Array:
+ description:: Fields if type is array.
+ fieldsGroup: true
+ fields:
+ -
+ name: items
+ type: Items Object
+ description: Describes the type of items in the array.
+ -
+ name: maxItems
+ type: number
+ description: Maximum count of items in array
+ -
+ name: minItems
+ type: number
+ description: Minimum count of items in array.
+ -
+ name: uniqueItems
+ type: boolean
+ description: Allow only unique items in array.
diff --git a/data/3.0.0-rc0/Schema_Object_JSON.yaml b/data/3.0.0-rc0/Schema_Object_JSON.yaml
new file mode 100644
index 0000000..8136f05
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_JSON.yaml
@@ -0,0 +1,26 @@
+Schema Object JSON:
+ description: The following properties are taken directly from the JSON Schema definition and follow the same specifications
+ fieldsGroup: true
+ fields:
+ -
+ name:
+ type: Schema Object Modified JSON
+ changelog:
+ isModified: true
+ description: The following properties are taken from the JSON Schema definition but their definitions were adjusted to the OpenAPI Specification.
+ -
+ name:
+ type: Schema Object Array
+ description: Properties when *type* is *array*
+ -
+ name:
+ type: Schema Object String
+ description: Properties when *type* is *string*
+ -
+ name:
+ type: Schema Object Number Or Integer
+ description: Properties when *type* is *number* or *integer*
+ -
+ name:
+ type: Schema Object Object
+ description: Properties when *type* is *object*
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Schema_Object_Modified_JSON.yaml b/data/3.0.0-rc0/Schema_Object_Modified_JSON.yaml
new file mode 100644
index 0000000..5cd4f9b
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_Modified_JSON.yaml
@@ -0,0 +1,134 @@
+Schema Object Modified JSON:
+ description: The following properties are taken from the JSON Schema definition but their definitions were adjusted to the OpenAPI Specification.
+ fieldsGroup: true
+ changelog:
+ isModified: true
+ fields:
+ -
+ name: type
+ type: string
+ description: Value MUST be a string. Multiple types via an array are not supported.
+ values:
+ -
+ value: array
+ description: A JSON array.
+ -
+ value: boolean
+ description: A JSON boolean.
+ -
+ value: integer
+ description: A JSON number without a fraction or exponent part.
+ -
+ value: number
+ description: Any JSON number. Number includes integer.
+ -
+ value: 'null'
+ description: The JSON null value.
+ -
+ value: object
+ description: A JSON object.
+ default: true
+ -
+ value: string
+ description: A JSON string.
+ -
+ name: allOf
+ type: "[Schema Object]"
+ allowReference: true
+ noFollow: true
+ description: |
+ Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
+
+ [What the JSON Schema Specification says](http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.22): This keyword's value MUST be an array. This array MUST have at least one element.
+
+ Elements of the array MUST be objects. Each object MUST be a valid JSON Schema.
+
+ An instance validates successfully against this keyword if it validates successfully against all schemas defined by this keyword's value.
+ -
+ name: oneOf
+ type: "[Schema Object]"
+ allowReference: true
+ noFollow: true
+ changelog:
+ isNew: true
+ description: |
+ Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
+
+ [What the JSON Schema Specification says](http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.24): This keyword's value MUST be an array. This array MUST have at least one element.
+
+ Elements of the array MUST be objects. Each object MUST be a valid JSON Schema.
+
+ An instance validates successfully against this keyword if it validates successfully against at least one schema defined by this keyword's value.
+ -
+ name: anyOf
+ type: "[Schema Object]"
+ allowReference: true
+ noFollow: true
+ changelog:
+ isNew: true
+ description: |
+ Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
+
+ [What the JSON Schema Specification says](http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.23):This keyword's value MUST be an array. This array MUST have at least one element.
+
+ Elements of the array MUST be objects. Each object MUST be a valid JSON Schema.
+
+ An instance validates successfully against this keyword if it validates successfully against at least one schema defined by this keyword's value.
+ -
+ name: not
+ type: "Schema Object"
+ allowReference: true
+ noFollow: true
+ changelog:
+ isNew: true
+ description: |
+ Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
+
+ [What the JSON Schema Specification says](http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.25): This keyword's value MUST be an object. This object MUST be a valid JSON Schema.
+
+ An instance is valid against this keyword if it fails to validate successfully against the schema defined by this keyword.
+ -
+ name: items
+ type: "Schema Object"
+ allowReference: true
+ noFollow: true
+ description: Value MUST be an object and not an array. Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema. items MUST be present if the type is array.
+ -
+ name: properties
+ type: "Schema Object"
+ allowReference: true
+ noFollow: true
+ description: Property definitions MUST be a Schema Object and not a standard JSON Schema (inline or referenced).
+ -
+ name: additionalProperties
+ type: Schema Object
+ additionalType: Boolean
+ allowReference: true
+ noFollow: true
+ changelog:
+ isModified: true
+ details: Can now be a boolean besides a Schema Object.
+ description: |
+ Value can be boolean or object. Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
+
+ [What the JSON Schema Specification says](http://json-schema.org/latest/json-schema-validation.html#rfc.section.5.18): The value of "additionalProperties" MUST be a boolean or a schema.
+
+ If "additionalProperties" is absent, it may be considered present with an empty schema as a value.
+
+ If "additionalProperties" is true, validation always succeeds.
+
+ If "additionalProperties" is false, validation succeeds only if the instance is an object and all properties on the instance were covered by "properties" and/or "patternProperties".
+
+ If "additionalProperties" is an object, validate the value as a schema to all of the properties that weren't validated by "properties" nor "patternProperties".
+ -
+ name: description
+ type: string
+ description: CommonMark syntax can be used for rich text representation.
+ -
+ name: format
+ type: string
+ description: See Data Type Formats for further details. While relying on JSON Schema's defined formats, the OAS offers a few additional predefined formats.
+ -
+ name: default
+ type: '*'
+ description: The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level. For example, of type is string, then default can be "foo" but cannot be 1.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Schema_Object_Number_Or_Integer.yaml b/data/3.0.0-rc0/Schema_Object_Number_Or_Integer.yaml
new file mode 100644
index 0000000..e75be08
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_Number_Or_Integer.yaml
@@ -0,0 +1,48 @@
+Schema Object Number Or Integer:
+ description: A number or integer value
+ fieldsGroup: true
+ fields:
+ -
+ name: format
+ type: string
+ description: |
+ The extending format for the previously mentioned type.
+ See Data Type Formats for further details.
+
+ Common Name | type | format| Comments
+ ------------|------|-------|---------
+ integer | integer | int32 | signed 32 bits
+ long | integer | int64 | signed 64 bits
+ float | number | float |
+ double | number | double|
+
+ -
+ name: maximum
+ type: number
+ description: |
+ Maximum value.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor17.
+ -
+ name: exclusiveMaximum
+ type: boolean
+ description: |
+ Indicate if the value must be < maximum.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor17.
+ -
+ name: minimum
+ type: number
+ description: |
+ Minimum value.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor21.
+ -
+ name: exclusiveMinimum
+ type: boolean
+ description: |
+ Indicate if the value must value > minimum.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor21.
+ -
+ name: multipleOf
+ type: number
+ description: |
+ The value must be a multiple of *multiplOf*.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor14.
diff --git a/data/3.0.0-rc0/Schema_Object_Object.yaml b/data/3.0.0-rc0/Schema_Object_Object.yaml
new file mode 100644
index 0000000..f0cde11
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_Object.yaml
@@ -0,0 +1,26 @@
+Schema Object Object:
+ fieldsGroup: true
+ description: type value is object.
+ fields:
+ -
+ name: properties
+ description: List of properties.
+ type: '[Schema Object | Reference Object]'
+ noFollow: true
+ -
+ name: additionalProperties
+ description: Additionnal properties to create a map.
+ type: '[Schema Object | Reference Object]'
+ noFollow: true
+ -
+ name: required
+ type: "[string]"
+ description: The list of required properties.
+ -
+ name: maxProperties
+ type: integer
+ description: An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword.
+ -
+ name: minProperties
+ type: integer
+ description: An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, the value of this keyword.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Schema_Object_OpenAPI.yaml b/data/3.0.0-rc0/Schema_Object_OpenAPI.yaml
new file mode 100644
index 0000000..21dcb14
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_OpenAPI.yaml
@@ -0,0 +1,58 @@
+Schema Object OpenAPI:
+ fieldsGroup: true
+ description: Other than the JSON Schema subset fields, the following fields may be used for further schema documentation.
+ fields:
+ -
+ name: nullable
+ type: boolean
+ changelog:
+ isNew: true
+ description: Allows sending a null value for the defined schema. Default value is false.
+ -
+ name: discriminator
+ type: string
+ changelog:
+ isModified: true
+ details: Composition and inheritance mecanism has been clarified.
+ description: |
+ Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. The property name used MUST be defined at this schema and it MUST be in the required property list. When used, the value MUST be the name of this schema or any schema that inherits it. See [Composition and Inheritance](https://github.com/OAI/OpenAPI-Specification/blob/3.0.0-rc0/versions/3.0.md#schemaComposition) for more details.
+ -
+ name: readOnly
+ type: boolean
+ changelog:
+ isModified: true
+ details: Light behavior modification concerning a required property (see description and also the new property `writeOnly`)
+ description: |
+ Relevant only for Schema "properties" definitions. Declares the property as "read only". This means that it MAY be sent as part of a response but SHOULD NOT be sent as part of the request. If property is marked as readOnly being true and is in the required list, the required will take effect on the response only. A property MUST NOT be marked as both readOnly and writeOnly being true. Default value is false.
+ -
+ name: writeOnly
+ type: boolean
+ changelog:
+ isNew: true
+ description: |
+ Relevant only for Schema "properties" definitions. Declares the property as "write only". This means that it MAY be sent as part of a request but SHOULD NOT be sent as part of the response. If property is marked as writeOnly being true and is in the required list, the required will take effect on the request only. A property MUST NOT be marked as both readOnly and writeOnly being true. Default value is false.
+ -
+ name: xml
+ type: XML Object
+ description: |
+ This MAY be used only on properties schemas. It has no effect on root schemas. Adds Additional metadata to describe the XML representation format of this property.
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation for this schema.
+ -
+ name: example
+ type: Any
+ description: A free-form property to include an example of an instance for this schema.
+ -
+ name: examples
+ type: Any
+ changelog:
+ isNew: true
+ description: An array of free-formed properties to include examples for this schema.
+ -
+ name: deprecated
+ type: boolean
+ changelog:
+ isNew: true
+ description: Specifies that a schema is deprecated and SHOULD be transitioned out of usage.
diff --git a/data/3.0.0-rc0/Schema_Object_String.yaml b/data/3.0.0-rc0/Schema_Object_String.yaml
new file mode 100644
index 0000000..24ad4f2
--- /dev/null
+++ b/data/3.0.0-rc0/Schema_Object_String.yaml
@@ -0,0 +1,37 @@
+Schema Object String:
+ description: type value is string
+ fieldsGroup: true
+ fields:
+ -
+ name: format
+ type: String
+ description: |
+ The extending format for the previously mentioned type.
+ See Data Type Formats for further details.
+
+ Common Name | format | Comments
+ ------------|-----------|---------
+ byte | byte | base64 encoded characters
+ binary | binary | any sequence of octets
+ date | date | As defined by full-date - RFC3339
+ dateTime | date-time | As defined by date-time - RFC3339
+ password | password | Used to hint UIs the input needs to be obscured.
+ -
+ name: pattern
+ type: string
+ description: |
+ This string SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor33.
+ See https://regex101.com/
+ -
+ name: maxLength
+ type: integer
+ description: |
+ Maximum string's length.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor26.
+ -
+ name: minLength
+ type: integer
+ description: |
+ Minimum string's length.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor29.
diff --git a/data/3.0.0-rc0/Scopes_Object.yaml b/data/3.0.0-rc0/Scopes_Object.yaml
new file mode 100644
index 0000000..730a8c9
--- /dev/null
+++ b/data/3.0.0-rc0/Scopes_Object.yaml
@@ -0,0 +1,9 @@
+Scopes Object:
+ description: Lists the available scopes for an OAuth2 security scheme.
+ allowExtension: true
+ fields:
+ -
+ name: "{name}"
+ type: string
+ description: Maps between a name of a scope to a short description of it (as the value of the property).
+ patterned: true
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Security_Requirement_Object.yaml b/data/3.0.0-rc0/Security_Requirement_Object.yaml
new file mode 100644
index 0000000..714939c
--- /dev/null
+++ b/data/3.0.0-rc0/Security_Requirement_Object.yaml
@@ -0,0 +1,14 @@
+Security Requirement Object:
+ allowExtension: true
+ description: |
+ Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.
+
+ Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where there multiple query parameters or HTTP headers are required to convey security information.
+
+ When a list of Security Requirement Objects is defined on the Open API object or Operation Object, only one of Security Requirement Objects in the list needs to be satisfied to authorize.
+ fields:
+ -
+ name: "{name}"
+ type: "[string]"
+ description: |
+ Each name MUST correspond to a security scheme which is declared in the Security Schemes under the Components Object. If the security scheme is of type "oauth2" or "openIdConnect", then the value is a list of scope names required for the execution. For other security scheme types, the array MUST be empty.
diff --git a/data/3.0.0-rc0/Security_Scheme_Object.yaml b/data/3.0.0-rc0/Security_Scheme_Object.yaml
new file mode 100644
index 0000000..52b424c
--- /dev/null
+++ b/data/3.0.0-rc0/Security_Scheme_Object.yaml
@@ -0,0 +1,88 @@
+Security Scheme Object:
+ description: Allows the definition of a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header or as a query parameter) and OAuth2's common flows (implicit, password, application and access code).
+ changelog:
+ isModified: true
+ details: |
+ - Better overall security definitions with:
+ - a more generic HTTP authentication (that goes beyond the previous `basic` type)
+ - a more complete Oauth2 description (`OAuth Flows Object`) including some OpenId connect aspect (`openIdConnectUrl`)
+ - APIKey support is unchanged
+ deletedProperties:
+ -
+ name: apiKey
+ replacedBy: name
+ see: Security Scheme Object
+ -
+ name: authorizationUrl
+ replacedBy: flow..authorizationUrl
+ see: Oauth Flows Object
+ -
+ name: tokenUrl
+ replacedBy: flow..tokenUrl
+ see: Oauth Flows Object
+ -
+ name: scopes
+ replacedBy: flow..scopes
+ see: Oauth Flows Object
+
+ allowExtension: true
+ fields:
+ -
+ name: type
+ type: string
+ validity: Any
+ required: true
+ changelog:
+ isUpdated: true
+ details: "`basic` type is replaced by `http`, `openIdConnect` type has been added"
+ description: The type of the security scheme. Valid values are "apiKey", "http", "oauth2", "openIdConnect".
+ -
+ name: description
+ type: string
+ validity: Any
+ description: A short description for security scheme.
+ -
+ name: name
+ required: true
+ type: string
+ validity: apikey
+ description: The name of the header or query parameter to be used.
+ -
+ name: in
+ required: true
+ type: string
+ validity: apikey
+ description: The location of the API key. Valid values are "query" or "header".
+ -
+ name: scheme
+ type: string
+ required: true
+ validity: http
+ changelog:
+ isNew: true
+ description: The name of the HTTP Authorization scheme to be used in the [Authorization header as defined in RFC 7235](https://tools.ietf.org/html/rfc7235#section-4.2).
+ -
+ name: bearerFormat
+ type: string
+ validity: http("bearer")
+ changelog:
+ isNew: true
+ description: A hint to the client to identify how the bearer token is formatted. Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.
+ -
+ name: flow
+ type: OAuth Flows Object
+ validity: oauth2
+ required: true
+ changelog:
+ isModified: true
+ details: |
+ `flow` is now a OAuth Flows Object (was a string) and define all Oauth2 properties. The original flow value is replaced by using the matching property in Oauth Flows Object.
+ description: An object containing configuration information for the flow types supported.
+ -
+ name: openIdConnectUrl
+ type: string
+ validity: openIdConnect
+ required: true
+ changelog:
+ isNew: true
+ description: OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL.
diff --git a/data/3.0.0-rc0/Server_Object.yaml b/data/3.0.0-rc0/Server_Object.yaml
new file mode 100644
index 0000000..93f94b2
--- /dev/null
+++ b/data/3.0.0-rc0/Server_Object.yaml
@@ -0,0 +1,17 @@
+Server Object:
+ description: An object representing a Server.
+ allowExtension: true
+ changelog:
+ isNew: true
+ details: Replace `host`, `basePath` and `schemes` properties from root object.
+ fields:
+ - name: url
+ type: string
+ required: true
+ description: A URL to the target host. This URL supports Server Variables and may be relative, to indicate that the host location is relative to the location where the OpenAPI definition is being served. Variable substitutions will be made when a variable is named in {brackets}.
+ - name: description
+ type: string
+ description: An optional string describing the host designated by the URL.
+ - name: variables
+ type: Server Variables Object
+ description: An object holding variables for substitution in the URL template.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Server_Variable_Object.yaml b/data/3.0.0-rc0/Server_Variable_Object.yaml
new file mode 100644
index 0000000..ad49b51
--- /dev/null
+++ b/data/3.0.0-rc0/Server_Variable_Object.yaml
@@ -0,0 +1,16 @@
+Server Variable Object:
+ description: An object representing a Server Variable for server URL template substitution.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ - name: enum
+ type: "[primitive]"
+ description: An enumeration of primitive type values to be used if the substitution options are from a limited set.
+ - name: default
+ required: true
+ type: primitive
+ description: Required. The default value to use for substitution if an alternate value is not specified, and will be sent if an alternative value is not supplied. Unlike the Schema Object's default, this value MUST be provided by the consumer.
+ - name: description
+ type: string
+ description: An optional description for the server variable.
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Server_Variables_Object.yaml b/data/3.0.0-rc0/Server_Variables_Object.yaml
new file mode 100644
index 0000000..9849184
--- /dev/null
+++ b/data/3.0.0-rc0/Server_Variables_Object.yaml
@@ -0,0 +1,10 @@
+Server Variables Object:
+ description: An object holding variables for substitution in the URL template.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ - name: "{name}"
+ type: Server Variable Object
+ description: A single definition, mapping a *name* to the schema it defines.
+ patterned: true
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Specification_Extensions.yaml b/data/3.0.0-rc0/Specification_Extensions.yaml
new file mode 100644
index 0000000..b712610
--- /dev/null
+++ b/data/3.0.0-rc0/Specification_Extensions.yaml
@@ -0,0 +1,14 @@
+Specification Extensions:
+ name: ^x-
+ type: Any
+ patterned: true
+ openapiType: true
+ specificationAnchor: specificationExtensions
+ description: |
+ While the OpenAPI Specification tries to accommodate most use cases, additional data can be added to extend the specification at certain points.
+
+ The extensions properties are implemented as patterned fields that are always prefixed by "x-".
+
+ | Field Pattern | Type | Description
+ |---------------|-------|--------------
+ |^x- | Any | Allows extensions to the OpenAPI Schema. The field name MUST begin with x-, for example, x-internal-id. The value can be null, a primitive, an array or an object. Can have any valid JSON format value. The extensions may or may not be supported by the available tooling, but those may be extended as well to add requested support (if tools are internal or open-sourced).
\ No newline at end of file
diff --git a/data/3.0.0-rc0/Tag_Object.yaml b/data/3.0.0-rc0/Tag_Object.yaml
new file mode 100644
index 0000000..58e618d
--- /dev/null
+++ b/data/3.0.0-rc0/Tag_Object.yaml
@@ -0,0 +1,18 @@
+Tag Object:
+ description: Allows adding meta data to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag used there.
+ allowExtension: true
+ fields:
+ -
+ name: name
+ type: string
+ description: The name of the tag.
+ required: true
+ -
+ name: description
+ type: string
+ description: A short description for the tag. CommonMark syntax can be used for rich text representation.
+ md: CommonMark
+ -
+ name: externalDocs
+ type: ExternalDocumentation
+ description: Additional external documentation for this tag.
diff --git a/data/3.0.0-rc0/Z_Object.yaml b/data/3.0.0-rc0/Z_Object.yaml
new file mode 100644
index 0000000..d438393
--- /dev/null
+++ b/data/3.0.0-rc0/Z_Object.yaml
@@ -0,0 +1,6 @@
+Z Object:
+ description: tmp
+ fields:
+ - name: tmp
+ type: string
+ description: tmp
\ No newline at end of file
diff --git a/data/3.0.1/Callback_Object.yaml b/data/3.0.1/Callback_Object.yaml
new file mode 100644
index 0000000..b7d480a
--- /dev/null
+++ b/data/3.0.1/Callback_Object.yaml
@@ -0,0 +1,12 @@
+Callback Object:
+ changelog:
+ isNew: true
+ allowExtension: true
+ description: A map of possible out-of band callbacks related to the parent operation. Each value in the map is a [Path Item Object](#pathItemObject) that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.
+ fields:
+ - name: "{expression}"
+ type: Path Item Object
+ noFollow: true
+ description: |
+ A Path Item Object used to define a callback request and expected responses. A [complete example](../examples/v3.0/callback-example.yaml) is available.
+
\ No newline at end of file
diff --git a/data/3.0.1/Components_Object.yaml b/data/3.0.1/Components_Object.yaml
new file mode 100644
index 0000000..87dccad
--- /dev/null
+++ b/data/3.0.1/Components_Object.yaml
@@ -0,0 +1,59 @@
+Components Object:
+ description: Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.
+ allowExtension: true
+ changelog:
+ isNew: true
+ details: Contains former root `responses`, `parameters` (split into `parameters` and `requestBodies`) and `definitions` (as `schemas`).
+ fields:
+ -
+ name: schemas
+ type: "{Schema Object}"
+ changelog:
+ isInfo: true
+ details: Replace root `definitions`
+ description: An object to hold reusable [Schema Objects](#schemaObject).
+ -
+ name: responses
+ type: "{Response Object}"
+ changelog:
+ isInfo: true
+ details: Replace root `responses`
+ description: An object to hold reusable [Response Objects](#responseObject).
+ -
+ name: parameters
+ type: "{Parameter Object}"
+ changelog:
+ isInfo: true
+ details: Replace root `parameters` (Only non body parameters, body ones are in `requestBodies`).
+ description: An object to hold reusable [Parameter Objects](#parameterObject).
+ -
+ name: examples
+ type: "{Example Object}"
+ description: An object to hold reusable [Example Objects](#exampleObject).
+ -
+ name: requestBodies
+ type: "{Request Body Object}"
+ changelog:
+ isInfo: true
+ details: Partially replace root `parameters` (Body parameters only, others are in `parameters`).
+ description: An object to hold reusable [Request Body Objects](#requestBodyObject).
+ -
+ name: headers
+ type: "{Header Object}"
+ description: An object to hold reusable [Header Objects](#headerObject).
+ -
+ name: securitySchemes
+ type: "{Security Scheme Object}"
+ changelog:
+ isInfo: true
+ details: Replace root `securityDefinitions`.
+ description: An object to hold reusable [Security Scheme Objects](#securitySchemeObject).
+ -
+ name: links
+ type: "{Link Object}"
+ description: An object to hold reusable [Link Objects](#linkObject).
+ -
+ name: callbacks
+ type: "{Callback Object}"
+ description: An object to hold reusable [Callback Objects](#callbackObject).
+
\ No newline at end of file
diff --git a/data/3.0.1/Contact_Object.yaml b/data/3.0.1/Contact_Object.yaml
new file mode 100644
index 0000000..c517cd9
--- /dev/null
+++ b/data/3.0.1/Contact_Object.yaml
@@ -0,0 +1,15 @@
+Contact Object:
+ description: Contact information for the exposed API.
+ allowExtension: true
+ fields:
+ - name: name
+ type: string
+ description: The identifying name of the contact person/organization.
+ - name: url
+ type: string
+ description: |
+ The URL pointing to the contact information. MUST be in the format of a URL.
+ - name: email
+ type: string
+ description: |
+ The email address of the contact person/organization. MUST be in the format of an email address.
diff --git a/data/3.0.1/Discriminator_Object.yaml b/data/3.0.1/Discriminator_Object.yaml
new file mode 100644
index 0000000..ff89188
--- /dev/null
+++ b/data/3.0.1/Discriminator_Object.yaml
@@ -0,0 +1,27 @@
+Discriminator Object:
+ description: |
+ When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation. The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.
+
+ When using the discriminator, _inline_ schemas will not be considered.
+
+ The discriminator attribute is legal only when using one of the composite keywords `oneOf`, `anyOf`, `allOf`.
+
+ See [Discrimitor Object](#discriminatorObject) for complete examples.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: propertyName
+ type: string
+ required: true
+ description: The name of the property in the payload that will hold the discriminator value.
+ -
+ name: mapping
+ type: "{propertyName value, string}"
+ description: |
+ An object to hold mappings between payload values and schema names or references.
+
+ In scenarios where the value of the discriminator field does not match the schema name or implicit mapping is not possible, an optional `mapping` definition MAY be used.
+
+ See [Discrimitor Object](#discriminatorObject) for complete examples.
\ No newline at end of file
diff --git a/data/3.0.1/Encoding_Object.yaml b/data/3.0.1/Encoding_Object.yaml
new file mode 100644
index 0000000..53e472d
--- /dev/null
+++ b/data/3.0.1/Encoding_Object.yaml
@@ -0,0 +1,29 @@
+Encoding Object:
+ description: A single encoding definition applied to a single schema property.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: contentType
+ type: string
+ description: |
+ The Content-Type for encoding a specific property. Default value depends on the property type: for `string` with `format` being `binary` – `application/octet-stream`; for other primitive types – `text/plain`; for `object` - `application/json`; for `array` – the default is defined based on the inner type. The value can be a specific media type (e.g. `application/json`), a wildcard media type (e.g. `image/*`), or a comma-separated list of the two types.
+ -
+ name: headers
+ type: Header Object
+ allowReference: true
+ noFollow: true
+ description: A map allowing additional information to be provided as headers, for example `Content-Disposition`. `Content-Type` is described separately and SHALL be ignored in this section. This property SHALL be ignored if the request body media type is not a `multipart`.
+ -
+ name: style
+ type: string
+ description: Describes how a specific property value will be serialized depending on its type. See [Parameter Object](#parameterObject) for details on the [`style`](#parameterStyle) property. The behavior follows the same values as `query` parameters, including default values. This property SHALL be ignored if the request body media type is not `application/x-www-form-urlencoded`.
+ -
+ name: explode
+ type: boolean
+ description: When this is true, property values of type `array` or `object` generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect. When [`style`](#encodingStyle) is `form`, the default value is `true`. For all other styles, the default value is `false`. This property SHALL be ignored if the request body media type is not `application/x-www-form-urlencoded`.
+ -
+ name: allowReserved
+ type: boolean
+ description: Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986](https://tools.ietf.org/html/rfc3986#section-2.2) `:/?#[]@!$&'()*+,;=` to be included without percent-encoding. The default value is `false`. This property SHALL be ignored if the request body media type is not `application/x-www-form-urlencoded`.
\ No newline at end of file
diff --git a/data/3.0.1/Example_Object.yaml b/data/3.0.1/Example_Object.yaml
new file mode 100644
index 0000000..d6e9bdd
--- /dev/null
+++ b/data/3.0.1/Example_Object.yaml
@@ -0,0 +1,19 @@
+Example Object:
+ description: In all cases, the example value is expected to be compatible with the type schema of its associated value. Tooling implementations MAY choose to validate compatibility automatically, and reject the example value(s) if incompatible.
+ changelog:
+ isNew: true
+ allowExtension: true
+ fields:
+ -
+ name: summary
+ type: string
+ description: Short description for the example.
+ -
+ name: description
+ type: string
+ description: Long description for the example.
+ md: CommonMark
+ -
+ name: value
+ type: Any
+ description: Embedded literal example. The `value` field and `externalValue` field are mutually exclusive. To represent examples of media types that cannot naturally represented in JSON or YAML, use a string value to contain the example, escaping where necessary.
\ No newline at end of file
diff --git a/data/3.0.1/External_Documentation_Object.yaml b/data/3.0.1/External_Documentation_Object.yaml
new file mode 100644
index 0000000..c2c24d7
--- /dev/null
+++ b/data/3.0.1/External_Documentation_Object.yaml
@@ -0,0 +1,14 @@
+External Documentation Object:
+ description: Allows referencing an external resource for extended documentation.
+ allowExtension: true
+ fields:
+ -
+ name: description
+ type: string
+ description: A short description of the target documentation.
+ md: CommonMark
+ -
+ name: url
+ type: string
+ description: The URL for the target documentation. Value MUST be in the format of a URL.
+ required: true
diff --git a/data/3.0.1/Header_Object.yaml b/data/3.0.1/Header_Object.yaml
new file mode 100644
index 0000000..e749911
--- /dev/null
+++ b/data/3.0.1/Header_Object.yaml
@@ -0,0 +1,105 @@
+Header Object:
+ description: |
+ The Header Object follows the structure of the [Parameter Object](#parameterObject) with the following changes:
+
+ 1. `name` MUST NOT be specified, it is given in the corresponding `headers` map.
+ 1. `in` MUST NOT be specified, it is implicitly in `header`.
+ 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, [`style`](#parameterStyle)).
+
+ Note: allowEmptyValue shouldn't be used too (only for query parameters)
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: Response headers are defined almost like parameters and can now be defined in `OpenAPI Object.components.headers` and reused with a `$ref`.
+ deletedProperties:
+ -
+ name: default
+ replacedBy: schema.default or content.{media type}.schema.default
+ see: Schema Object
+ -
+ name: items
+ replacedBy: schema.items or content.{media type}.schema.items
+ see: Schema Object
+ -
+ name: collectionFormat
+ replacedBy: schema.collectionFormat or content.{media type}.schema.collectionFormat
+ see: Schema Object
+ -
+ name: maxItems
+ replacedBy: schema.maxItems or content.{media type}.schema.maxItems
+ see: Schema Object
+ -
+ name: minItems
+ replacedBy: schema.minItems or content.{media type}.schema.minItems
+ see: Schema Object
+ -
+ name: uniqueItems
+ replacedBy: schema.uniqueItems or content.{media type}.schema.uniqueItems
+ see: Schema Object
+ -
+ name: format
+ replacedBy: schema.format or content.{media type}.schema.format
+ see: Schema Object
+ -
+ name: enum
+ replacedBy: schema.enum or content.{media type}.schema.enum
+ see: Schema Object
+ -
+ name: pattern
+ replacedBy: schema.pattern or content.{media type}.schema.pattern
+ see: Schema Object
+ -
+ name: maxLength
+ replacedBy: schema.maxLength or content.{media type}.schema.maxLength
+ see: Schema Object
+ -
+ name: minLength
+ replacedBy: schema.minLength or content.{media type}.schema.minLength
+ see: Schema Object
+ -
+ name: maximum
+ replacedBy: schema.maximum or content.{media type}.schema.maximum
+ see: Schema Object
+ -
+ name: exclusiveMaximum
+ replacedBy: schema.exclusiveMaximum or content.{media type}.schema.exclusiveMaximum
+ see: Schema Object
+ -
+ name: minimum
+ replacedBy: schema.minimum or content.{media type}.schema.minimum
+ see: Schema Object
+ -
+ name: exclusiveMinimum
+ replacedBy: schema.exclusiveMinimum or content.{media type}.schema.exclusiveMinimum
+ see: Schema Object
+ -
+ name: multipleOf
+ replacedBy: schema.multipleOf or content.{media type}.schema.multipleOf
+ see: Schema Object
+
+ fields:
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: |
+ A brief description of the header. This could contain examples of use. CommonMark syntax can be used for rich text representation.
+ -
+ name: required
+ type: boolean
+ description: |
+ Determines whether this header is mandatory (always returnd). Its default value is false.
+ -
+ name: deprecated
+ type: boolean
+ description: Specifies that a header is deprecated and SHOULD be transitioned out of usage.
+ changelog:
+ isNew: true
+ -
+ name:
+ type: Header Object Style Schema
+ description: The rules for serialization of the header are specified in one of two ways. For simpler scenarios, a [`style`](#parameterSchema) and [`schema`](#parameterStyle) can be used to describe the structure and syntax of the parameter.
+ -
+ name:
+ type: Header Object Content
+ description: For more complex scenarios, the [`content`](#parameterContent) property can define the media type and schema of the header. A header MUST contain either a `schema` property, or a `content` property, but not both. When example or examples are provided in conjunction with the `schema` object, the example MUST follow the prescribed serialization strategy for the header.
\ No newline at end of file
diff --git a/data/3.0.1/Header_Object_Content.yaml b/data/3.0.1/Header_Object_Content.yaml
new file mode 100644
index 0000000..193c59e
--- /dev/null
+++ b/data/3.0.1/Header_Object_Content.yaml
@@ -0,0 +1,12 @@
+Header Object Content:
+ description: For more complex scenarios, the [`content`](#parameterContent) property can define the media type and schema of the parameter. A parameter MUST contain either a `schema` property, or a `content` property, but not both. When example or examples are provided in conjunction with the `schema` object, the example MUST follow the prescribed serialization strategy for the parameter.
+ fieldsGroup: true
+ changelog:
+ isNew: true
+ fields:
+ - name: content
+ type: "{media type, Media Type Object}"
+ changelog:
+ isNew: true
+ details: Replace operation's `consumes`.
+ description: A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry.
diff --git a/data/3.0.1/Header_Object_Style_Schema.yaml b/data/3.0.1/Header_Object_Style_Schema.yaml
new file mode 100644
index 0000000..263c51f
--- /dev/null
+++ b/data/3.0.1/Header_Object_Style_Schema.yaml
@@ -0,0 +1,50 @@
+Header Object Style Schema:
+ description: |
+ _Reminder: The Header Object follows the structure of the [Parameter Object](#parameterObject) with some adaptations. See [Header Object](#headerObject)._
+
+ The rules for serialization of the header are specified in one of two ways. For simpler scenarios, a [`style`](#parameterSchema) and [`schema`](#parameterStyle) can be used to describe the structure and syntax of the parameter.
+ fieldsGroup: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: style
+ type: string
+ changelog:
+ isNew: true
+ description: |
+ Describes how the header value will be serialized depending on the type of the parameter value. Default value is `simple` (because it's a Header Object).
+ -
+ name: explode
+ type: boolean
+ changelog:
+ isNew: true
+ description: When this is true, headers values of type `array` or `object` generate separate parameters for each value of the array or key-value pair of the map. For other types of headers this property has no effect. When [`style`](#parameterStyle) is `form`, the default value is `true`. For all other styles, the default value is `false`.
+ # Need to check if allowReserved make sense for a header
+ -
+ name: allowReserved
+ type: boolean
+ changelog:
+ isNew: true
+ description: Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986](https://tools.ietf.org/html/rfc3986#section-2.2) `:/?#[]@!$&'()*+,;=` to be included without percent-encoding. This property only applies to parameters with an `in` value of `query`. The default value is `false`.
+ -
+ name: schema
+ type: Schema Object
+ allowReference: true
+ changelog:
+ isNew: true
+ description: The schema defining the type used for the header.
+ -
+ name: example
+ type: Any
+ allowReference: true
+ changelog:
+ isNew: true
+ description: Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The `example` field is mutually exclusive of the `examples` field. Furthermore, if referencing a `schema` which contains an example, the `example` value SHALL _override_ the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.
+ -
+ name: examples
+ type: "{Example Object}"
+ allowReference: true
+ changelog:
+ isNew: true
+ description: Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The `examples` field is mutually exclusive of the `example` field. Furthermore, if referencing a `schema` which contains an example, the `examples` value SHALL _override_ the example provided by the schema.
\ No newline at end of file
diff --git a/data/3.0.1/Info_Object.yaml b/data/3.0.1/Info_Object.yaml
new file mode 100644
index 0000000..13a6534
--- /dev/null
+++ b/data/3.0.1/Info_Object.yaml
@@ -0,0 +1,25 @@
+Info Object:
+ description: Provides metadata about the API. The metadata can be used by the clients if needed.
+ allowExtension: true
+ fields:
+ - name: title
+ type: string
+ required: true
+ description: The title of the application.
+ - name: description
+ type: string
+ md: CommonMark
+ description: A short description of the application.
+ - name: termsOfService
+ type: string
+ description: A URL to the Terms of Service for the API. MUST be in the format of a URL.
+ - name: contact
+ type: Contact Object
+ description: The contact information for the exposed API.
+ - name: licence
+ type: Licence Object
+ description: The license information for the exposed API.
+ - name: version
+ type: string
+ required: true
+ description: The version of the API definition (which is distinct from the OpenAPI specification version or the API implementation version).
diff --git a/data/3.0.1/Licence_Object.yaml b/data/3.0.1/Licence_Object.yaml
new file mode 100644
index 0000000..948ed8b
--- /dev/null
+++ b/data/3.0.1/Licence_Object.yaml
@@ -0,0 +1,12 @@
+Licence Object:
+ description: License information for the exposed API.
+ allowExtension: true
+ fields:
+ - name: name
+ type: string
+ required: true
+ description: The license name used for the API.
+ - name: url
+ type: string
+ description: |
+ A URL to the license used for the API. MUST be in the format of a URL.
\ No newline at end of file
diff --git a/data/3.0.1/Link_Object.yaml b/data/3.0.1/Link_Object.yaml
new file mode 100644
index 0000000..66d2497
--- /dev/null
+++ b/data/3.0.1/Link_Object.yaml
@@ -0,0 +1,29 @@
+Link Object:
+ description: The Link Object is responsible for defining a possible operation based on a single response.
+ specificationAnchor: link-object
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: href
+ type: string
+ description: a relative or absolute URL to a linked resource. This field is mutually exclusive with the operationId field.
+ -
+ name: operationId
+ type: string
+ description: the name of an existing, resolvable OAS operation, as defined with a unique operationId. This field is mutually exclusive with the href field. Relative href values MAY be used to locate an existing Operation Object in the OAS.
+ -
+ name: parameters
+ type: Link Parameters Object
+ description: an object representing parameters to pass to an operation as specified with operationId or identified via href.
+ -
+ name: headers
+ type: Headers Object
+ description: an object representing headers to pass to the linked resource. Where conflicts occur between these headers, and those defined in the related operation, these headers override.
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: a description of the link, supports CommonMark syntax.
+
\ No newline at end of file
diff --git a/data/3.0.1/Media_Type_Object.yaml b/data/3.0.1/Media_Type_Object.yaml
new file mode 100644
index 0000000..e204bc3
--- /dev/null
+++ b/data/3.0.1/Media_Type_Object.yaml
@@ -0,0 +1,24 @@
+Media Type Object:
+ description: Each Media Type Object provides schema and examples for the media type identified by its key.
+ allowExtension: true
+ changelog:
+ isNew: true
+ details: Replace operation's `consumes` and `produces`
+ fields:
+ - name: schema
+ type: Schema Object
+ description: The schema defining the type used for the request body.
+ -
+ name: examples
+ type: "{Example Object}"
+ allowReference: true
+ description: Example of the media type. The example object SHOULD be in the correct format as specified by the media type. The `example` field is mutually exclusive of the `examples` field. Furthermore, if referencing a `schema` which contains an example, the `example` value SHALL _override_ the example provided by the schema.
+ -
+ name: example
+ type: Example Object
+ allowReference: true
+ description: Examples of the media type. Each example object SHOULD match the media type and specified schema if present. The `examples` field is mutually exclusive of the `example` field. Furthermore, if referencing a `schema` which contains an example, the `examples` value SHALL _override_ the example provided by the schema.
+ -
+ name: encoding
+ type: "{property name, Encoding Object}"
+ description: A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to `requestBody` objects when the media type is `multipart` or `application/x-www-form-urlencoded`.
\ No newline at end of file
diff --git a/data/3.0.1/OpenAPI_Object.yaml b/data/3.0.1/OpenAPI_Object.yaml
new file mode 100644
index 0000000..6605ecb
--- /dev/null
+++ b/data/3.0.1/OpenAPI_Object.yaml
@@ -0,0 +1,89 @@
+OpenAPI Object:
+ name: OpenAPI 3.0
+ specificationAnchor: oasObject
+ description: |
+ OpenAPI 3.0 top level object.
+ This is the root document object for the OpenAPI Specification document.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ The new OpenAPI Specification version 3.0 offers many welcomed improvements and new features (see OpenAPI [blog post series about this](https://www.openapis.org/news/blogs/2016/10/tdc-structural-improvements-explaining-30-spec-part-2)).
+
+ Here are the noticeable changes on top level (*navigate through the tree to see what happened on other levels*):
+ - Bye bye `swagger` and hello `openapi`.
+ - Reusable definitions are centralized in `components` making the document more consistent (the previous version mixed reusable and global definitions on the same level).
+
+ deletedProperties:
+ - name: swagger
+ replacedBy: openapi
+ see: OpenAPI Object
+ - name: host
+ replacedBy: servers[].url
+ see: Server Object
+ - name: basePath
+ replacedBy: servers[].url
+ see: Server Object
+ - name: schemes
+ replacedBy: servers[].url
+ see: Server Object
+ - name: definitions
+ replacedBy: components.schemas
+ see: Components Object
+ - name: parameters
+ replacedBy: components.parameters and components.requestBodies
+ see: Components Object
+ - name: securityDefinitions
+ replacedBy: components.securitySchemas
+ see: Components Object
+ - name: consumes
+ replacedBy: Content Object.{media type}
+ see: Content Object
+ - name: produces
+ replacedBy: Content Object.{media type}
+ see: Content Object
+ fields:
+ -
+ name: openapi
+ type: string
+ required: true
+ changelog:
+ isNew: true
+ details: Replace the `swagger` property
+ description: |
+ This string MUST be the [semantic version number](https://semver.org/spec/v2.0.0.html) of the [OpenAPI Specification version](#versions) that the OpenAPI document uses. The `openapi` field SHOULD be used by tooling specifications and clients to interpret the OpenAPI document. This is *not* related to the API [`info.version`](#infoVersion) string.
+ -
+ name: info
+ type: Info Object
+ required: true
+ description: Provides metadata about the API. The metadata MAY be used by tooling as required.
+ -
+ name: servers
+ type: "[Server Object]"
+ description: An array of Server Objects, which provide connectivity information to a target server. If the `servers` property is not provided, or is an empty array, the default value would be a `Server Object` with a `url` value of `/`.
+ changelog:
+ isNew: true
+ -
+ name: paths
+ type: Paths Object
+ required: true
+ description: The available paths and operations for the API.
+ -
+ name: components
+ type: Components Object
+ description: An element to hold various schemas for the specification.
+ changelog:
+ isNew: true
+ details: Replace `definitions`, `parameters` and `securityDefinitions`
+ -
+ name: security
+ type: "[Security Requirement Object]"
+ description: A declaration of which security mechanisms can be used across the API. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. Individual operations can override this definition.
+ -
+ name: tags
+ type: "[Tag Object]"
+ description: A list of tags used by the specification with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools. Not all tags that are used by the Operation Object must be declared. The tags that are not declared MAY be organized randomly or based on the tools' logic. Each tag name in the list MUST be unique.
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation.
\ No newline at end of file
diff --git a/data/3.0.1/Operation_Object.yaml b/data/3.0.1/Operation_Object.yaml
new file mode 100644
index 0000000..dee8803
--- /dev/null
+++ b/data/3.0.1/Operation_Object.yaml
@@ -0,0 +1,89 @@
+Operation Object:
+ description: Describes a single API operation on a path.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Better and consistent parameters description by using `Schema Object` even for atomic ones.
+ - Request body is now defined separetely (`requestBody`).
+ - Async/event API design is possible thanks to `callbacks` (webhooks).
+ - The `servers` property enhance documentation and test possibilities (also available on top and path levels).
+ deletedProperties:
+ -
+ name: produces
+ replacedBy: responses.{HTTP Status}.content.{media type}
+ specificationAnchor: mediaTypeObject
+ -
+ name: consumes
+ replacedBy: requestBody.content.{media type}
+ specificationAnchor: mediaTypeObject
+ -
+ name: schemes
+ replacedBy: servers
+ specificationAnchor: Server Object
+ fields:
+ -
+ name: tags
+ type: "[string]"
+ description: A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier.
+ -
+ name: summary
+ type: string
+ description: A short summary of what the operation does. For maximum readability in editing or documentation generation tools, this field SHOULD be less than 120 characters.
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: A verbose explanation of the operation behavior. CommonMark syntax can be used for rich text representation.
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation for this operation.
+ -
+ name: operationId
+ type: string
+ description: Unique string used to identify the operation. The id MUST be unique among all operations described in the API. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is recommended to follow common programming naming conventions.
+ -
+ name: parameters
+ type: "[Parameter Object]"
+ allowReference: true
+ changelog:
+ isModified: true
+ details: Does not describe body parameter anymore (see requestBody)
+ description: A list of parameters that are applicable for this operation. If a parameter is already defined at the [Path Item](#pathItemParameters), the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn). The list can use the [Reference Object](#referenceObject) to link to parameters that are defined at the [OpenAPI Object's components/parameters](#componentsParameters).
+ -
+ name: requestBody
+ type: Request Body Object
+ allowReference: true
+ required: true
+ changelog:
+ isNew: true
+ details: Replace `parameters` with `in = body`
+ description: The request body applicable for this operation. The `requestBody` is only supported in HTTP methods where the HTTP 1.1 specification [RFC7231](https://tools.ietf.org/html/rfc7231#section-4.3.1) has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague, `requestBody` SHALL be ignored by consumers.
+ -
+ name: responses
+ type: Responses Object
+ required: true
+ descriptions: The list of possible responses as they are returned from executing this operation.
+ -
+ name: callbacks
+ type: "{expression idenfiying URL, Callback Object}"
+ changelog:
+ isNew: true
+ description: A map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the Callback Object. Each value in the map is a [Callback Object](#callbackObject) that describes a request that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.
+ -
+ name: deprecated
+ type: boolean
+ description: Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is `false`.
+ -
+ name: security
+ type: Security Requirement Object
+ changelog:
+ isNew: true
+ description: A declaration of which security mechanisms can be used for this operation. The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. This definition overrides any declared top-level [`security`](#oasSecurity). To remove a top-level security declaration, an empty array can be used.
+ -
+ name: servers
+ type: Server Object
+ changelog:
+ isNew: true
+ description: An alternative `server` array to service this operation. If an alternative `server` object is specified at the Path Item Object or Root level, it will be overridden by this value.
\ No newline at end of file
diff --git a/data/3.0.1/Parameter_Object.yaml b/data/3.0.1/Parameter_Object.yaml
new file mode 100644
index 0000000..ba4d565
--- /dev/null
+++ b/data/3.0.1/Parameter_Object.yaml
@@ -0,0 +1,161 @@
+Parameter Object:
+ description: |
+ Describes a single operation parameter.
+
+ A unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).
+
+ There are four possible parameter locations specified by the `in` field:
+
+ * path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`, the path parameter is `itemId`.
+ * query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.
+ * header - Custom headers that are expected as part of the request. Note that [RFC7230](https://tools.ietf.org/html/rfc7230#page-22) states header names are case insensitive.
+ * cookie - Used to pass a specific cookie value to the API.
+
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Besides query, header and path parameters, `cookie` parameters can be defined.
+ - Body parameters are now defined with a `Request Body Object`.
+ - All parameters types (even atomic ones like string or boolean for example) are now defined with a `Schema Object`.
+ - Former `formData` parameters (used for media types `application/x-www-form-urlencoded` or `multipart/form-data` are handled with a `Content Object` which allow to define the media type of parameters, request bodies, headers or responses.
+ - `Example(s)` can be provided.
+ - Parameters can now be `deprecated`.
+ - More control on serialization (with `allowReserved`, `style` and `explode`).
+ deletedProperties:
+ -
+ name: body
+ replacedBy: schema or content.schema
+ see: Parameter Object
+ -
+ name: default
+ replacedBy: schema.default or content.{media type}.schema.default
+ see: Schema Object
+ -
+ name: items
+ replacedBy: schema.items or content.{media type}.schema.items
+ see: Schema Object
+ -
+ name: collectionFormat
+ replacedBy: schema.collectionFormat or content.{media type}.schema.collectionFormat
+ see: Schema Object
+ -
+ name: maxItems
+ replacedBy: schema.maxItems or content.{media type}.schema.maxItems
+ see: Schema Object
+ -
+ name: minItems
+ replacedBy: schema.minItems or content.{media type}.schema.minItems
+ see: Schema Object
+ -
+ name: uniqueItems
+ replacedBy: schema.uniqueItems or content.{media type}.schema.uniqueItems
+ see: Schema Object
+ -
+ name: format
+ replacedBy: schema.format or content.{media type}.schema.format
+ see: Schema Object
+ -
+ name: enum
+ replacedBy: schema.enum or content.{media type}.schema.enum
+ see: Schema Object
+ -
+ name: pattern
+ replacedBy: schema.pattern or content.{media type}.schema.pattern
+ see: Schema Object
+ -
+ name: maxLength
+ replacedBy: schema.maxLength or content.{media type}.schema.maxLength
+ see: Schema Object
+ -
+ name: minLength
+ replacedBy: schema.minLength or content.{media type}.schema.minLength
+ see: Schema Object
+ -
+ name: maximum
+ replacedBy: schema.maximum or content.{media type}.schema.maximum
+ see: Schema Object
+ -
+ name: exclusiveMaximum
+ replacedBy: schema.exclusiveMaximum or content.{media type}.schema.exclusiveMaximum
+ see: Schema Object
+ -
+ name: minimum
+ replacedBy: schema.minimum or content.{media type}.schema.minimum
+ see: Schema Object
+ -
+ name: exclusiveMinimum
+ replacedBy: schema.exclusiveMinimum or content.{media type}.schema.exclusiveMinimum
+ see: Schema Object
+ -
+ name: multipleOf
+ replacedBy: schema.multipleOf or content.{media type}.schema.multipleOf
+ see: Schema Object
+ fields:
+ -
+ name: name
+ required: true
+ type: string
+ description: |
+ The name of the parameter. Parameter names are *case sensitive*.
+
+ * If [`in`](#parameterIn) is `"path"`, the `name` field MUST correspond to the associated path segment from the [path](#pathsPath) field in the [Paths Object](#pathsObject). See [Path Templating](#pathTemplating) for further information.
+ * If [`in`](#parameterIn) is `"header"` and the `name` field is `"Accept"`, `"Content-Type"` or `"Authorization"`, the parameter definition SHALL be ignored.
+ * For all other cases, the `name` corresponds to the parameter name used by the [`in`](#parameterIn) property.
+ -
+ name: in
+ type: string
+ required: true
+ description: The location of the parameter.
+ changelog:
+ isModified: true
+ details: |
+ `formData` (replaced by the use of a `Content Object`) and `body` (replaced by `Request Body`) values have been removed.
+ values:
+ -
+ value: query
+ description: "Parameters that are appended to the URL. For example, in /items?id=###, the query parameter is id."
+ -
+ value: header
+ description: Custom headers that are expected as part of the request. Note that RFC 7230 states header names are case insensitive.
+ -
+ value: path
+ description: |
+ Used together with Path Templating, where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in /items/{itemId}, the path parameter is itemId.
+ -
+ value: cookie
+ description: Used to pass a specific cookie value to the API.
+
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: |
+ A brief description of the parameter. This could contain examples of use.
+ -
+ name: required
+ type: boolean
+ description: |
+ Determines whether this parameter is mandatory. If the [parameter location](#parameterIn) is "path", this property is *REQUIRED* and its value MUST be true. Otherwise, the property MAY be included and its default value is false.
+ -
+ name: deprecated
+ type: boolean
+ description: Specifies that a parameter is deprecated and SHOULD be transitioned out of usage.
+ changelog:
+ isNew: true
+ -
+ name: allowEmptyValue
+ type: boolean
+ description: Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is `false`. If [`style`](#parameterStyle) is used, and if behavior is n/a (cannot be serialized), the value of `allowEmptyValue` SHALL be ignored.
+ -
+ name:
+ type: Parameter Object Style Schema
+ changelog:
+ isNew: true
+ description: The rules for serialization of the parameter are specified in one of two ways. For simpler scenarios, a [`style`](#parameterSchema) and [`schema`](#parameterStyle) can be used to describe the structure and syntax of the parameter.
+ -
+ name:
+ type: Parameter Object Content
+ changelog:
+ isNew: true
+ description: For more complex scenarios, the [`content`](#parameterContent) property can define the media type and schema of the parameter. A parameter MUST contain either a `schema` property, or a `content` property, but not both. When example or examples are provided in conjunction with the `schema` object, the example MUST follow the prescribed serialization strategy for the parameter.
\ No newline at end of file
diff --git a/data/3.0.1/Parameter_Object_Content.yaml b/data/3.0.1/Parameter_Object_Content.yaml
new file mode 100644
index 0000000..bf768a2
--- /dev/null
+++ b/data/3.0.1/Parameter_Object_Content.yaml
@@ -0,0 +1,12 @@
+Parameter Object Content:
+ description: For more complex scenarios, the [`content`](#parameterContent) property can define the media type and schema of the parameter. A parameter MUST contain either a `schema` property, or a `content` property, but not both. When example or examples are provided in conjunction with the `schema` object, the example MUST follow the prescribed serialization strategy for the parameter.
+ fieldsGroup: true
+ changelog:
+ isNew: true
+ fields:
+ - name: content
+ type: "{media type,Media Type Object}"
+ changelog:
+ isNew: true
+ details: Replace operation's `consumes`.
+ description: A map containing the representations for the parameter. The key is the media type and the value describes it. The map MUST only contain one entry.
diff --git a/data/3.0.1/Parameter_Object_Style_Schema.yaml b/data/3.0.1/Parameter_Object_Style_Schema.yaml
new file mode 100644
index 0000000..76debba
--- /dev/null
+++ b/data/3.0.1/Parameter_Object_Style_Schema.yaml
@@ -0,0 +1,44 @@
+Parameter Object Style Schema:
+ description: The rules for serialization of the parameter are specified in one of two ways. For simpler scenarios, a [`style`](#parameterSchema) and [`schema`](#parameterStyle) can be used to describe the structure and syntax of the parameter.
+ fieldsGroup: true
+ fields:
+ -
+ name: style
+ type: string
+ changelog:
+ isNew: true
+ description: |
+ Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of `in`): for `query` - `form`; for `path` - `simple`; for `header` - `simple`; for `cookie` - `form`.
+ -
+ name: explode
+ type: boolean
+ changelog:
+ isNew: true
+ description: When this is true, parameter values of type `array` or `object` generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters this property has no effect. When [`style`](#parameterStyle) is `form`, the default value is `true`. For all other styles, the default value is `false`.
+ -
+ name: allowReserved
+ type: boolean
+ changelog:
+ isNew: true
+ description: Determines whether the parameter value SHOULD allow reserved characters, as defined by [RFC3986](https://tools.ietf.org/html/rfc3986#section-2.2) `:/?#[]@!$&'()*+,;=` to be included without percent-encoding. This property only applies to parameters with an `in` value of `query`. The default value is `false`.
+ -
+ name: schema
+ type: Schema Object
+ allowReference: true
+ changelog:
+ isNew: true
+ description: The schema defining the type used for the parameter.
+ -
+ name: example
+ type: Any
+ allowReference: true
+ changelog:
+ isNew: true
+ description: Example of the media type. The example SHOULD match the specified schema and encoding properties if present. The `example` field is mutually exclusive of the `examples` field. Furthermore, if referencing a `schema` which contains an example, the `example` value SHALL _override_ the example provided by the schema. To represent examples of media types that cannot naturally be represented in JSON or YAML, a string value can contain the example with escaping where necessary.
+ -
+ name: examples
+ type: "{Example Object}"
+ allowReference: true
+ changelog:
+ isNew: true
+ description: Examples of the media type. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The `examples` field is mutually exclusive of the `example` field. Furthermore, if referencing a `schema` which contains an example, the `examples` value SHALL _override_ the example provided by the schema.
\ No newline at end of file
diff --git a/data/3.0.1/Path_Item_Object.yaml b/data/3.0.1/Path_Item_Object.yaml
new file mode 100644
index 0000000..741c5c7
--- /dev/null
+++ b/data/3.0.1/Path_Item_Object.yaml
@@ -0,0 +1,70 @@
+Path Item Object:
+ description: |
+ Describes the operations available on a single path. A Path Item MAY be empty, due to [ACL constraints](#securityFiltering). The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Enhance resource point of view by adding `summary` and `description` on path level.
+ - HTTP methode `trace` has been added (TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing or diagnostic information. See [RFC7231](https://tools.ietf.org/html/rfc7231#section-4.3.8).)
+ - The `servers` property enhance documentation and test possibilities (also available on top and operation levels).
+ fields:
+ -
+ name: summary
+ type: string
+ description: An optional, string summary, intended to apply to all operations in this path.
+ changelog:
+ isNew: true
+ -
+ name: description
+ type: string
+ description: An optional, string description, intended to apply to all operations in this path.
+ md: CommonMark
+ changelog:
+ isNew: true
+ -
+ name: get
+ type: Operation Object
+ description: A definition of a GET operation on this path.
+ -
+ name: put
+ type: Operation Object
+ description: A definition of a PUT operation on this path.
+ -
+ name: post
+ type: Operation Object
+ description: A definition of a POST operation on this path.
+ -
+ name: delete
+ type: Operation Object
+ description: A definition of a DELETE operation on this path.
+ -
+ name: options
+ type: Operation Object
+ description: A definition of a OPTIONS operation on this path.
+ -
+ name: head
+ type: Operation Object
+ description: A definition of a HEAD operation on this path.
+ -
+ name: patch
+ type: Operation Object
+ description: A definition of a PATCH operation on this path.
+ -
+ name: trace
+ type: Operation Object
+ description: A definition of a TRACE operation on this path.
+ changelog:
+ isNew: true
+ -
+ name: servers
+ type: Server Object
+ description: An alternative `server` array to service all operations in this path.
+ changelog:
+ isNew: true
+ -
+ name: parameters
+ type: "[Parameter Object]"
+ allowReference: true
+ description: |
+ A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn). The list can use the [Reference Object](#referenceObject) to link to parameters that are defined at the [OpenAPI Object's components/parameters](#componentsParameters).
diff --git a/data/3.0.1/Paths_Object.yaml b/data/3.0.1/Paths_Object.yaml
new file mode 100644
index 0000000..8afd548
--- /dev/null
+++ b/data/3.0.1/Paths_Object.yaml
@@ -0,0 +1,11 @@
+Paths Object:
+ description: |
+ Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL. The Paths MAY be empty, due to [ACL constraints](#securityFiltering).
+ allowExtension: true
+ fields:
+ - name: "/{path}"
+ type: Path Item Object
+ required: true
+ allowReference: true
+ description: |
+ A relative path to an individual endpoint. The field name MUST begin with a slash. The path is *appended* (no relative URL resolution) to the expanded URL from the `Server Object`'s url field in order to construct the full URL. [Path templating](#pathTemplating) is allowed. When matching URLs, concrete (non-templated) paths would be matched before their templated counterparts. Templated paths with the same hierarchy but different templated names MUST NOT exist as they are identical. In case of ambiguous matching, it's up to the tooling to decide which one to use.
diff --git a/data/3.0.1/Reference_Object.yaml b/data/3.0.1/Reference_Object.yaml
new file mode 100644
index 0000000..b06508d
--- /dev/null
+++ b/data/3.0.1/Reference_Object.yaml
@@ -0,0 +1,15 @@
+Reference Object:
+ name: $ref
+ type: string
+ description: |
+ A simple object to allow referencing other definitions in the specification. It can be used to reference parameters and responses that are defined at the top level for reuse.
+
+ The Reference Object is a JSON Reference that uses a JSON Pointer as its value. For this specification, only canonical dereferencing is supported.
+
+ A simple object to allow referencing other components in the specification, internally and externally.
+
+ The Reference Object is defined by [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03) and follows the same structure, behavior and rules.
+
+ For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.
+
+ This object cannot be extended with additional properties and any properties added SHALL be ignored.
\ No newline at end of file
diff --git a/data/3.0.1/Request_Body_Object.yaml b/data/3.0.1/Request_Body_Object.yaml
new file mode 100644
index 0000000..fd2a259
--- /dev/null
+++ b/data/3.0.1/Request_Body_Object.yaml
@@ -0,0 +1,21 @@
+Request Body Object:
+ description: Describes a single request body.
+ changelog:
+ isNew: true
+ details: Replace `Parameter Object` with `in = body`.
+ allowExtension: true
+ fields:
+ -
+ name: description
+ type: string
+ md: CommonMark
+ description: A brief description of the request body. This could contain examples of use.
+ -
+ name: content
+ type: "{media type,Media Type Object}"
+ required: true
+ description: The content of the request body. The key is a media type or [media type range](https://tools.ietf.org/html/rfc7231#appendix-D) and the value describes it. For requests that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*
+ -
+ name: required
+ type: boolean
+ description: Determines if the request body is required in the request. Defaults to `false`.
\ No newline at end of file
diff --git a/data/3.0.1/Response_Object.yaml b/data/3.0.1/Response_Object.yaml
new file mode 100644
index 0000000..77ae280
--- /dev/null
+++ b/data/3.0.1/Response_Object.yaml
@@ -0,0 +1,45 @@
+Response Object:
+ description: Describes a single response from an API Operation, including design-time, static links to operations based on the response.
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Better control on media type, response handles returned media type with `content.{mediatype}`. It replaces `produces` definition on `Operation Object` or top level.
+ - Enhanced hypermedia design with `links`.
+ - Headers are easier to define because they can be defined in `components.headers` and used in `headers`
+ deletedProperties:
+ -
+ name: schema
+ replacedBy: content.{media type}.schema
+ see: Media Type Object
+ -
+ name: example
+ replacedBy: content.{media type}.example or content.{media type}.examples
+ see: Media Type Object
+ fields:
+ -
+ name: description
+ type: string
+ isRequired: true
+ md: CommonMark
+ description: A short description of the response. CommonMark syntax can be used for rich text representation.
+ -
+ name: headers
+ type: "{header name, Header Object}"
+ changelog:
+ isModified: true
+ details: Headers can now be defined in the root `components`
+ description: Maps a header name to its definition. [RFC7230](https://tools.ietf.org/html/rfc7230#page-22) states header names are case insensitive. If a response header is defined with the name `"Content-Type"`, it SHALL be ignored.
+ -
+ name: content
+ type: "{media type,Media Type Object}"
+ changelog:
+ isNew: true
+ details: Replace `schema` but also `Operation Object.produces` or `Open API Object.produces`
+ description: A map containing descriptions of potential response payloads. The key is a media type or [media type range](https://tools.ietf.org/html/rfc7231#appendix-D) and the value describes it. For responses that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides text/*
+ -
+ name: links
+ type: "{Link Object}"
+ changelog:
+ isNew: true
+ description: A map of operations links that can be followed from the response. The key of the map is a short name for the link, following the naming constraints of the names for [Component Objects](#componentsObject).
\ No newline at end of file
diff --git a/data/3.0.1/Responses_Object.yaml b/data/3.0.1/Responses_Object.yaml
new file mode 100644
index 0000000..7ef3592
--- /dev/null
+++ b/data/3.0.1/Responses_Object.yaml
@@ -0,0 +1,32 @@
+Responses Object:
+ description: |
+ A container for the expected responses of an operation.
+ The container maps a HTTP response code to the expected response.
+
+ The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance.
+ However, documentation is expected to cover a successful operation response and any known errors.
+
+ The `default` MAY be used as a default response object for all HTTP codes
+ that are not covered individually by the specification.
+
+ The `Responses Object` MUST contain at least one response code, and it
+ SHOULD be the response for a successful operation call.
+
+ allowExtension: true
+ changelog:
+ isModified: true
+ fields:
+ -
+ name: default
+ allowReference: true
+ type: Response Object
+ description: The documentation of responses other than the ones declared for specific HTTP response codes. Use this field to cover undeclared responses. A [Reference Object](#referenceObject) can link to a response that the [OpenAPI Object's components/responses](#componentsResponses) section defines.
+ -
+ name: "{HTTP status code}"
+ allowReference: true
+ type: Response Object
+ changelog:
+ isModified: true
+ details: Wildcard are now allowed (2XX for example)
+ description: |
+ Any [HTTP status code](#httpCodes) can be used as the property name, but only one property per code, to describe the expected response for that HTTP status code. A [Reference Object](#referenceObject) can link to a response that is defined in the [OpenAPI Object's components/responses](#componentsResponses) section. This field MUST be enclosed in quotation marks (for example, "200") for compatibility between JSON and YAML. To define a range of response codes, this field MAY contain the uppercase wildcard character `X`. For example, `2XX` represents all response codes between `[200-299]`. The following range definitions are allowed: `1XX`, `2XX`, `3XX`, `4XX`, and `5XX`. If a response range is defined using an explicit code, the explicit code definition takes precedence over the range definition for that code.
\ No newline at end of file
diff --git a/data/3.0.1/Schema_Object.yaml b/data/3.0.1/Schema_Object.yaml
new file mode 100644
index 0000000..b902141
--- /dev/null
+++ b/data/3.0.1/Schema_Object.yaml
@@ -0,0 +1,31 @@
+Schema Object:
+ description: |
+ The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the [JSON Schema Specification Wright Draft 00](http://json-schema.org/).
+
+ For more information about the properties, see [JSON Schema Core](https://tools.ietf.org/html/draft-wright-json-schema-00) and [JSON Schema Validation](https://tools.ietf.org/html/draft-wright-json-schema-validation-00). Unless stated otherwise, the property definitions follow the JSON Schema.
+
+ Alternatively, any time a Schema Object can be used, a [Reference Object](#referenceObject) can be used in its place. This allows referencing definitions instead of defining them inline.
+
+ Additional properties defined by the JSON Schema specification that are not mentioned here are strictly unsupported.
+
+ allowExtension: true
+ changelog:
+ isModified: true
+ details: |
+ - Enhanced consistency and easier design with extensive use of Schema Object for all definitions (parameters, bodies, responses, headers)
+ - [Inheritance and polymorphism](#schemaComposition) mecanism has been enhanced (`oneOf`, `anyOf` and `not` have been added) and clarified (see new `discriminator` behaviour).
+ - Creating read/write models is easier with `readOnly` (behaviour modified) and `writeOnly` (new).
+ - Enhance versioning thanks to `deprecated`.
+ fields:
+ -
+ name:
+ type: Schema Object JSON
+ changelog:
+ isModified: true
+ description: JSON Schema Properties
+ -
+ name:
+ type: Schema Object OpenAPI
+ changelog:
+ isModified: true
+ description: Other than the JSON Schema subset fields, the following fields MAY be used for further schema documentation.
\ No newline at end of file
diff --git a/data/3.0.1/Schema_Object_Array.yaml b/data/3.0.1/Schema_Object_Array.yaml
new file mode 100644
index 0000000..cdcb0c6
--- /dev/null
+++ b/data/3.0.1/Schema_Object_Array.yaml
@@ -0,0 +1,27 @@
+Schema Object Array:
+ description: Fields if type is array.
+ fieldsGroup: true
+ fields:
+ -
+ name: items
+ type: Schema Object
+ origin: JSON Schema
+ modOrigin: true
+ allowReference: true
+ noFollow: true
+ description: Value MUST be an object and not an array. Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema. `items` MUST be present if the `type` is `array`.
+ -
+ name: maxItems
+ type: number
+ origin: JSON Schema
+ description: Maximum count of items in array
+ -
+ name: minItems
+ type: number
+ origin: JSON Schema
+ description: Minimum count of items in array.
+ -
+ name: uniqueItems
+ type: boolean
+ origin: JSON Schema
+ description: Allow only unique items in array.
diff --git a/data/3.0.1/Schema_Object_Composition_Inheritance.yaml b/data/3.0.1/Schema_Object_Composition_Inheritance.yaml
new file mode 100644
index 0000000..8b98756
--- /dev/null
+++ b/data/3.0.1/Schema_Object_Composition_Inheritance.yaml
@@ -0,0 +1,40 @@
+Schema Object Composition Inheritance:
+ description: See [Discrimitor Object](#discriminatorObject) for complete examples of polymorpism.
+ fieldsGroup: true
+ changelog:
+ isModified: true
+ fields:
+ -
+ name: allOf
+ type: "[Schema Object]"
+ noFollow: true
+ allowReference: true
+ modifiedJSONSchema: true
+ description: Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.
+ -
+ name: oneOf
+ type: "[Schema Object]"
+ noFollow: true
+ allowReference: true
+ modifiedJSONSchema: true
+ changelog:
+ isNew: true
+ description: Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.
+ -
+ name: anyOf
+ type: "[Schema Object]"
+ noFollow: true
+ allowReference: true
+ modifiedJSONSchema: true
+ changelog:
+ isNew: true
+ description: Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.
+ -
+ name: not
+ type: Schema Object
+ noFollow: true
+ allowReference: true
+ modifiedJSONSchema: true
+ changelog:
+ isNew: true
+ description: Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.
diff --git a/data/3.0.1/Schema_Object_JSON.yaml b/data/3.0.1/Schema_Object_JSON.yaml
new file mode 100644
index 0000000..d0f49cb
--- /dev/null
+++ b/data/3.0.1/Schema_Object_JSON.yaml
@@ -0,0 +1,117 @@
+Schema Object JSON:
+ description: The following properties are taken directly from the JSON Schema definition and follow the same specifications
+ fieldsGroup: true
+ fields:
+ -
+ name: title
+ type: string
+ origin: JSON Schema
+ description: |
+ Can be used to decorate a user interface with information about the data produced by this user interface
+
+ A title will preferably be short, whereas a description will provide explanation about the purpose of the instance described by this schema.
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.10.1.
+ -
+ name: description
+ type: string
+ md: CommonMark
+ origin: JSON Schema
+ originMod: true
+ modifiedJSONSchema: true
+ description: |
+ Can be used to decorate a user interface with information about the data produced by this user interface
+
+ A title will preferably be short, whereas a description will provide explanation about the purpose of the instance described by this schema.
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.10.1.
+
+ OpenAPI modification: CommonMark syntax MAY be used for rich text representation.
+ -
+ name: enum
+ type: "[Any]"
+ origin: JSON Schema
+ description: |
+ The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique.
+
+ An instance validates successfully against this keyword if its value is equal to one of the elements in this keyword's array value.
+
+ Elements in the array might be of any value, including null.
+
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.1.2
+ -
+ name: default
+ type: Any
+ origin: JSON Schema
+ originMod: true
+ description: |
+ The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level. For example, if type is string, then default can be "foo" but cannot be 1.
+ -
+ name: format
+ type: string
+ origin: JSON Schema
+ originMod: true
+ description: |
+ See [Data Type Formats](#dataTypeFormat) for further details. While relying on JSON Schema's defined formats, the OAS offers a few additional predefined formats.
+
+ The formats defined by the OAS are:
+
+ Common Name | [`type`](#dataTypes) | [`format`](#dataTypeFormat) | Comments
+ ----------- | ------ | -------- | --------
+ integer | `integer` | `int32` | signed 32 bits
+ long | `integer` | `int64` | signed 64 bits
+ float | `number` | `float` | |
+ double | `number` | `double` | |
+ string | `string` | | |
+ byte | `string` | `byte` | base64 encoded characters
+ binary | `string` | `binary` | any sequence of octets
+ boolean | `boolean` | | |
+ date | `string` | `date` | As defined by `full-date` - [RFC3339](https://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14)
+ dateTime | `string` | `date-time` | As defined by `date-time` - [RFC3339](https://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14)
+ password | `string` | `password` | A hint to UIs to obscure input.
+
+ # Mod
+ -
+ name: type
+ type: string
+ origin: JSON Schema
+ originMod: true
+ description: Value MUST be a string. Multiple types via an array are not supported. Note `null`JSON schema type is not supported see [`nullable`](#schemaNullable) property.
+ values:
+ -
+ value: array
+ description: A JSON array.
+ -
+ value: boolean
+ description: A JSON boolean.
+ -
+ value: integer
+ description: A JSON number without a fraction or exponent part.
+ -
+ value: number
+ description: Any JSON number. Number includes integer.
+ -
+ value: object
+ description: A JSON object.
+ default: true
+ -
+ value: string
+ description: A JSON string.
+ -
+ name:
+ type: Schema Object Array
+ description: Properties when *type* is *array*
+ -
+ name:
+ type: Schema Object String
+ description: Properties when *type* is *string*
+ -
+ name:
+ type: Schema Object Number Or Integer
+ description: Properties when *type* is *number* or *integer*
+ -
+ name:
+ type: Schema Object Object
+ description: Properties when *type* is *object*
+ -
+ name:
+ type: Schema Object Composition Inheritance
+ description: Properties to use for composition and inheritance
\ No newline at end of file
diff --git a/data/3.0.1/Schema_Object_Number_Or_Integer.yaml b/data/3.0.1/Schema_Object_Number_Or_Integer.yaml
new file mode 100644
index 0000000..dc7c7d1
--- /dev/null
+++ b/data/3.0.1/Schema_Object_Number_Or_Integer.yaml
@@ -0,0 +1,39 @@
+Schema Object Number Or Integer:
+ description: A number or integer value
+ fieldsGroup: true
+ fields:
+ -
+ name: maximum
+ type: number
+ origin: JSON Schema
+ description: |
+ Maximum value.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor17.
+ -
+ name: exclusiveMaximum
+ type: boolean
+ origin: JSON Schema
+ description: |
+ Indicate if the value must be < maximum.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor17.
+ -
+ name: minimum
+ type: number
+ origin: JSON Schema
+ description: |
+ Minimum value.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor21.
+ -
+ name: exclusiveMinimum
+ type: boolean
+ origin: JSON Schema
+ description: |
+ Indicate if the value must value > minimum.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor21.
+ -
+ name: multipleOf
+ type: number
+ origin: JSON Schema
+ description: |
+ The value must be a multiple of *multiplOf*.
+ See http://json-schema.org/latest/json-schema-validation.html#anchor14.
diff --git a/data/3.0.1/Schema_Object_Object.yaml b/data/3.0.1/Schema_Object_Object.yaml
new file mode 100644
index 0000000..e10b9a2
--- /dev/null
+++ b/data/3.0.1/Schema_Object_Object.yaml
@@ -0,0 +1,42 @@
+Schema Object Object:
+ fieldsGroup: true
+ description: type value is object.
+ fields:
+ -
+ name: required
+ type: "[string]"
+ origin: JSON Schema
+ description: |
+ The value of this keyword MUST be an array. Elements of this array, if any, MUST be strings, and MUST be unique.
+
+ An object instance is valid against this keyword if every item in the array is the name of a property in the instance.
+
+ Omitting this keyword has the same behavior as an empty array.
+
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.5.3
+ -
+ name: properties
+ type: "[Schema Object]"
+ origin: JSON Schema
+ modOrigin: true
+ allowReference: true
+ noFollow: true
+ description: Property definitions MUST be a [Schema Object](#schemaObject) and not a standard JSON Schema (inline or referenced).
+ -
+ name: additionalProperties
+ type: Schema Object
+ origin: JSON Schema
+ modOrigin: true
+ allowReference: true
+ noFollow: true
+ description: Value can be boolean or object. Inline or referenced schema MUST be of a [Schema Object](#schemaObject) and not a standard JSON Schema.
+ -
+ name: maxProperties
+ type: integer
+ origin: JSON Schema
+ description: An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword.
+ -
+ name: minProperties
+ type: integer
+ origin: JSON Schema
+ description: An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, the value of this keyword.
\ No newline at end of file
diff --git a/data/3.0.1/Schema_Object_OpenAPI.yaml b/data/3.0.1/Schema_Object_OpenAPI.yaml
new file mode 100644
index 0000000..398dbb7
--- /dev/null
+++ b/data/3.0.1/Schema_Object_OpenAPI.yaml
@@ -0,0 +1,54 @@
+Schema Object OpenAPI:
+ fieldsGroup: true
+ description: Other than the JSON Schema subset fields, the following fields may be used for further schema documentation.
+ fields:
+ -
+ name: nullable
+ type: boolean
+ changelog:
+ isNew: true
+ description: Allows sending a `null` value for the defined schema. Default value is `false`.
+ -
+ name: discriminator
+ type: Discriminator Object
+ changelog:
+ isModified: true
+ details: Composition and inheritance mecanism has been clarified.
+ description: |
+ Adds support for polymorphism. The discriminator is an object name that is used to differentiate between other schemas which may satisfy the payload description. See [Composition and Inheritance](#schemaComposition) for more details.
+ -
+ name: readOnly
+ type: boolean
+ changelog:
+ isModified: true
+ details: Light behavior modification concerning a required property (see description and also the new property `writeOnly`)
+ description: |
+ Relevant only for Schema `"properties"` definitions. Declares the property as "read only". This means that it MAY be sent as part of a response but SHOULD NOT be sent as part of the request. If the property is marked as `readOnly` being `true` and is in the `required` list, the `required` will take effect on the response only. A property MUST NOT be marked as both `readOnly` and `writeOnly` being `true`. Default value is `false`.
+ -
+ name: writeOnly
+ type: boolean
+ changelog:
+ isNew: true
+ description: |
+ Relevant only for Schema `"properties"` definitions. Declares the property as "write only". Therefore, it MAY be sent as part of a request but SHOULD NOT be sent as part of the response. If the property is marked as `writeOnly` being `true` and is in the `required` list, the `required` will take effect on the request only. A property MUST NOT be marked as both `readOnly` and `writeOnly` being `true`. Default value is `false`.
+ -
+ name: xml
+ type: XML Object
+ changelog:
+ isNew: true
+ description: |
+ This MAY be used only on properties schemas. It has no effect on root schemas. Adds additional metadata to describe the XML representation of this property.
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation for this schema.
+ -
+ name: example
+ type: Any
+ description: A free-form property to include an example of an instance for this schema.
+ -
+ name: deprecated
+ type: boolean
+ changelog:
+ isNew: true
+ description: Specifies that a schema is deprecated and SHOULD be transitioned out of usage. Default value is `false`.
diff --git a/data/3.0.1/Schema_Object_String.yaml b/data/3.0.1/Schema_Object_String.yaml
new file mode 100644
index 0000000..fa1f9b5
--- /dev/null
+++ b/data/3.0.1/Schema_Object_String.yaml
@@ -0,0 +1,26 @@
+Schema Object String:
+ description: type value is string
+ fieldsGroup: true
+ fields:
+ -
+ name: pattern
+ type: string
+ origin: JSON Schema
+ description: |
+ This string SHOULD be a valid regular expression, according to the [ECMA 262 regular expression dialect](https://www.ecma-international.org/ecma-262/5.1/#sec-7.8.5).
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.3.3.
+ See also [Regex 101](https://regex101.com/) to debug regex.
+ -
+ name: maxLength
+ origin: JSON Schema
+ type: integer
+ description: |
+ Maximum string's length.
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.3.1
+ -
+ name: minLength
+ origin: JSON Schema
+ type: integer
+ description: |
+ Minimum string's length.
+ See http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.3.2
diff --git a/data/3.0.1/Security_Requirement_Object.yaml b/data/3.0.1/Security_Requirement_Object.yaml
new file mode 100644
index 0000000..0530eff
--- /dev/null
+++ b/data/3.0.1/Security_Requirement_Object.yaml
@@ -0,0 +1,14 @@
+Security Requirement Object:
+ allowExtension: true
+ description: |
+ Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.
+
+ Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.
+
+ When a list of Security Requirement Objects is defined on the Open API object or Operation Object, only one of Security Requirement Objects in the list needs to be satisfied to authorize the request.
+ fields:
+ -
+ name: "{name}"
+ type: "[string]"
+ description: |
+ Each name MUST correspond to a security scheme which is declared in the Security Schemes under the Components Object. If the security scheme is of type "oauth2" or "openIdConnect", then the value is a list of scope names required for the execution. For other security scheme types, the array MUST be empty.
diff --git a/data/3.0.1/Server_Object.yaml b/data/3.0.1/Server_Object.yaml
new file mode 100644
index 0000000..858d7f3
--- /dev/null
+++ b/data/3.0.1/Server_Object.yaml
@@ -0,0 +1,18 @@
+Server Object:
+ description: An object representing a Server.
+ allowExtension: true
+ changelog:
+ isNew: true
+ details: Replace `host`, `basePath` and `schemes` properties from root object.
+ fields:
+ - name: url
+ type: string
+ required: true
+ description: A URL to the target host. This URL supports Server Variables and may be relative, to indicate that the host location is relative to the location where the OpenAPI definition is being served. Variable substitutions will be made when a variable is named in {brackets}.
+ - name: description
+ type: string
+ md: CommonMark
+ description: An optional string describing the host designated by the URL.
+ - name: variables
+ type: "{Variable Name, Server Variable Object}"
+ description: A map between a variable name and its value. The value is used for substitution in the server's URL template.
\ No newline at end of file
diff --git a/data/3.0.1/Server_Variable_Object.yaml b/data/3.0.1/Server_Variable_Object.yaml
new file mode 100644
index 0000000..353e103
--- /dev/null
+++ b/data/3.0.1/Server_Variable_Object.yaml
@@ -0,0 +1,17 @@
+Server Variable Object:
+ description: An object representing a Server Variable for server URL template substitution.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ - name: enum
+ type: "[primitive]"
+ description: An enumeration of primitive type values to be used if the substitution options are from a limited set.
+ - name: default
+ required: true
+ type: primitive
+ description: Required. The default value to use for substitution if an alternate value is not specified, and will be sent if an alternative value is not supplied. Unlike the Schema Object's default, this value MUST be provided by the consumer.
+ - name: description
+ type: string
+ md: CommonMark
+ description: An optional description for the server variable.
\ No newline at end of file
diff --git a/data/3.0.1/Specification_Extensions.yaml b/data/3.0.1/Specification_Extensions.yaml
new file mode 100644
index 0000000..a1fe847
--- /dev/null
+++ b/data/3.0.1/Specification_Extensions.yaml
@@ -0,0 +1,12 @@
+Specification Extensions:
+ name: ^x-
+ type: Any
+ patterned: true
+ openapiType: true
+ specificationAnchor: specificationExtensions
+ description: |
+ While the OpenAPI Specification tries to accommodate most use cases, additional data can be added to extend the specification at certain points.
+
+ The extensions properties are implemented as patterned fields that are always prefixed by "x-", for example, x-internal-id. The value can be null, a primitive, an array or an object. Can have any valid JSON format value.
+
+ The extensions may or may not be supported by the available tooling, but those may be extended as well to add requested support (if tools are internal or open-sourced).
\ No newline at end of file
diff --git a/data/3.0.1/Tag_Object.yaml b/data/3.0.1/Tag_Object.yaml
new file mode 100644
index 0000000..d859c1e
--- /dev/null
+++ b/data/3.0.1/Tag_Object.yaml
@@ -0,0 +1,18 @@
+Tag Object:
+ description: Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.
+ allowExtension: true
+ fields:
+ -
+ name: name
+ type: string
+ description: The name of the tag.
+ required: true
+ -
+ name: description
+ type: string
+ description: A short description for the tag.
+ md: CommonMark
+ -
+ name: externalDocs
+ type: External Documentation Object
+ description: Additional external documentation for this tag.
diff --git a/data/3.0.1/XML_Object.yaml b/data/3.0.1/XML_Object.yaml
new file mode 100644
index 0000000..3baa23c
--- /dev/null
+++ b/data/3.0.1/XML_Object.yaml
@@ -0,0 +1,29 @@
+XML Object:
+ description: |
+ A metadata object that allows for more fine-tuned XML model definitions.
+
+ When using arrays, XML element names are not inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.
+ allowExtension: true
+ changelog:
+ isNew: true
+ fields:
+ -
+ name: name
+ type: string
+ description: Replaces the name of the element/attribute used for the described schema property. When defined within `items`, it will affect the name of the individual XML elements within the list. When defined alongside `type` being `array` (outside the `items`), it will affect the wrapping element and only if `wrapped` is `true`. If `wrapped` is `false`, it will be ignored.
+ -
+ name: namespace
+ type: string
+ description: The URI of the namespace definition. Value MUST be in the form of an absolute URI.
+ -
+ name: prefix
+ type: string
+ description: The prefix to be used for the [name](#xmlName).
+ -
+ name: attribute
+ type: boolean
+ description: Declares whether the property definition translates to an attribute instead of an element. Default value is `false`.
+ -
+ name: wrapped
+ type: boolean
+ description: MAY be used only for an array definition. Signifies whether the array is wrapped (for example, ``) or unwrapped (``). Default value is `false`. The definition takes effect only when defined alongside `type` being `array` (outside the `items`).
\ No newline at end of file
diff --git a/data/3.0.1/Z_Object.yaml b/data/3.0.1/Z_Object.yaml
new file mode 100644
index 0000000..601ad40
--- /dev/null
+++ b/data/3.0.1/Z_Object.yaml
@@ -0,0 +1,13 @@
+Z Object:
+ name: Test
+ description: |
+ Test description with a [link](http://apihandyman.io) and another [one](#openapi/).
+ fields:
+ - name: required
+ type: string
+ required: true
+ description: |
+ Test properties with a [link](http://apihandyman.io) and another [one](#openapi/)
+ - name: notRequired
+ type: string
+ description: Non required property
\ No newline at end of file
diff --git a/data/spec-versions.json b/data/spec-versions.json
new file mode 100644
index 0000000..0d846d6
--- /dev/null
+++ b/data/spec-versions.json
@@ -0,0 +1,16 @@
+[
+ {
+ "name": "Version 3.0",
+ "id": "3.0",
+ "url": "3.0.1.json",
+ "root": "OpenAPI Object",
+ "specificationurl": "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md"
+ },
+ {
+ "name": "Version 2.0",
+ "id": "2.0",
+ "url": "2.0.json",
+ "root": "Swagger Object",
+ "specificationurl": "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md"
+ }
+]
\ No newline at end of file
diff --git a/dist/fonts/fontawesome-webfont.eot b/dist/fonts/fontawesome-webfont.eot
deleted file mode 100644
index a30335d..0000000
Binary files a/dist/fonts/fontawesome-webfont.eot and /dev/null differ
diff --git a/dist/fonts/fontawesome-webfont.woff b/dist/fonts/fontawesome-webfont.woff
deleted file mode 100644
index 6fd4ede..0000000
Binary files a/dist/fonts/fontawesome-webfont.woff and /dev/null differ
diff --git a/dist/fonts/fontawesome-webfont.woff2 b/dist/fonts/fontawesome-webfont.woff2
deleted file mode 100644
index 5560193..0000000
Binary files a/dist/fonts/fontawesome-webfont.woff2 and /dev/null differ
diff --git a/dist/fonts/glyphicons-halflings-regular.eot b/dist/fonts/glyphicons-halflings-regular.eot
deleted file mode 100644
index b93a495..0000000
Binary files a/dist/fonts/glyphicons-halflings-regular.eot and /dev/null differ
diff --git a/dist/fonts/glyphicons-halflings-regular.svg b/dist/fonts/glyphicons-halflings-regular.svg
deleted file mode 100644
index 94fb549..0000000
--- a/dist/fonts/glyphicons-halflings-regular.svg
+++ /dev/null
@@ -1,288 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/dist/fonts/glyphicons-halflings-regular.ttf b/dist/fonts/glyphicons-halflings-regular.ttf
deleted file mode 100644
index 1413fc6..0000000
Binary files a/dist/fonts/glyphicons-halflings-regular.ttf and /dev/null differ
diff --git a/dist/fonts/glyphicons-halflings-regular.woff b/dist/fonts/glyphicons-halflings-regular.woff
deleted file mode 100644
index 9e61285..0000000
Binary files a/dist/fonts/glyphicons-halflings-regular.woff and /dev/null differ
diff --git a/dist/fonts/glyphicons-halflings-regular.woff2 b/dist/fonts/glyphicons-halflings-regular.woff2
deleted file mode 100644
index 64539b5..0000000
Binary files a/dist/fonts/glyphicons-halflings-regular.woff2 and /dev/null differ
diff --git a/dist/index.html b/dist/index.html
deleted file mode 100644
index 554f17a..0000000
--- a/dist/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
- OpenAPI Specification Visual Documentation
This is NOT a rendering of an API's OpenAPI specification.
Controls
Zoom in: Mouse scroll up
Zoom out: Mouse scroll down
Move: Mouse drag
Moving mouse over a node shows its documentation
Clicking on a node expand or collapse it
\ No newline at end of file
diff --git a/dist/openapi-specification.json b/dist/openapi-specification.json
deleted file mode 100644
index 3b4c302..0000000
--- a/dist/openapi-specification.json
+++ /dev/null
@@ -1,1057 +0,0 @@
-{
- "Contact Object": {
- "description": "Contact information for the exposed API.",
- "allowExtension": true,
- "fields": [{
- "name": "name",
- "type": "string",
- "description": "The identifying name of the contact person/organization."
- }, {
- "name": "url",
- "type": "string",
- "description": "The URL pointing to the contact information. \nMUST be in the format of a URL.\n"
- }, {
- "name": "email",
- "type": "string",
- "description": "The email address of the contact person/organization. \nMUST be in the format of an email address.\n"
- }]
- },
- "Definitions Object": {
- "description": "An object to hold data types that can be consumed and produced by operations. These data types can be primitives, arrays or models.",
- "fields": [{
- "name": "{name}",
- "type": "Schema Object",
- "description": "A single definition, mapping a *name* to the schema it defines.",
- "patterned": true
- }]
- },
- "Example Object": {
- "description": "Allows sharing examples for operation responses.",
- "fields": [{
- "name": "{mime type}",
- "type": "Any",
- "description": "The name of the property MUST be one of the Operation produces values (either implicit or inherited). \nThe value SHOULD be an example of what such a response would look like.\n"
- }]
- },
- "External Documentation Object": {
- "description": "Allows referencing an external resource for extended documentation.",
- "allowExtension": true,
- "fields": [{
- "name": "description",
- "type": "string",
- "description": "A short description of the target documentation.",
- "gfm": true
- }, {
- "name": "url",
- "type": "string",
- "description": "The URL for the target documentation. \nValue MUST be in the format of a URL.\n",
- "required": true
- }]
- },
- "Header Object": {
- "fields": [{
- "name": "description",
- "type": "string",
- "description": "A short description of the header."
- }, {
- "name": "type",
- "type": "string",
- "description": "The type of the object.",
- "values": [{
- "value": "string"
- }, {
- "value": "number"
- }, {
- "value": "integer"
- }, {
- "value": "boolean"
- }, {
- "value": "array"
- }]
- }, {
- "name": "default",
- "type": "*",
- "description": "Declares the value of the header that the server will use if none is provided. \n(Note: \"default\" has no meaning for required headers.) \nSee http://json-schema.org/latest/json-schema-validation.html#anchor101. \nUnlike JSON Schema this value MUST conform to the defined type for the header.\n"
- }, {
- "name": "",
- "type": "Header Object Array",
- "description": "Fields if *type* is *array*."
- }, {
- "name": "",
- "type": "Header Object Not Array",
- "description": "Fields if *type* is *string*, *number*, *integer* or *boolean*."
- }]
- },
- "Header Object Array": {
- "description": "Fields if *type* is *array*.",
- "fieldsGroup": true,
- "fields": [{
- "name": "items",
- "type": "Items Object",
- "description": "Describes the type of items in the array."
- }, {
- "name": "collectionFormat",
- "type": "string",
- "description": "Determines the format of the array if type array is used.\n",
- "values": [{
- "value": "csv",
- "description": "Comma separated values *foo,bar*.",
- "default": true
- }, {
- "value": "ssv",
- "description": "Space separated values *foo bar*."
- }, {
- "value": "tsv",
- "description": "Tab separated values *foo\\\\tbar*."
- }, {
- "value": "pipes",
- "description": "Pipe separated values *foo|bar*."
- }, {
- "value": "multi",
- "description": "Corresponds to multiple parameter instances instead of multiple values for a single instance *foo=bar&foo=baz*.\nThis is valid only for parameters in *query* or *formData*.\n"
- }]
- }, {
- "name": "maxItems",
- "type": "number",
- "description": "Maximum count of items in array"
- }, {
- "name": "minItems",
- "type": "number",
- "description": "Minimum count of items in array."
- }, {
- "name": "uniqueItems",
- "type": "boolean",
- "description": "Allow only unique items in array."
- }]
- },
- "Header Object Not Array": {
- "description": "Fields if *type* is *string*, *number*, *integer* or *boolean*.",
- "fieldsGroup": true,
- "fields": [{
- "name": "format",
- "type": "string",
- "description": "The extending format for the previously mentioned type. \nSee Data Type Formats for further details. \n\nCommon Name | type | format| Comments\n------------|------|-------|---------\ninteger\t | integer | int32 | signed 32 bits\nlong\t | integer\t| int64\t| signed 64 bits\nfloat\t | number\t| float |\t\ndouble\t | number\t| double|\t\nstring\t | string\t| |\t\nbyte\t | string\t| byte\t| base64 encoded characters\nbinary\t | string\t| binary|\tany sequence of octets\nboolean\t | boolean | |\t\t\ndate\t | string\t| date\t| As defined by full-date - RFC3339\ndateTime\t | string\t| date-time\t| As defined by date-time - RFC3339\npassword\t | string |\tpassword | Used to hint UIs the input needs to be obscured.\n"
- }, {
- "name": "",
- "type": "Header Object String",
- "description": "Fields if *type* is *string*."
- }, {
- "name": "",
- "type": "Header Object Number Or Integer",
- "description": "Fields if *type* is *number* or *integer*."
- }, {
- "name": "enum",
- "type": "[*]",
- "description": "Authorized values. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor76.\n"
- }]
- },
- "Header Object Number Or Integer": {
- "description": "A number or integer header",
- "fieldsGroup": true,
- "fields": [{
- "name": "maximum",
- "type": "number",
- "description": "Maximum value. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor17.\n"
- }, {
- "name": "exclusiveMaximum",
- "type": "boolean",
- "description": "Indicate if the value must be < maximum. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor17.\n"
- }, {
- "name": "minimum",
- "type": "number",
- "description": "Minimum value. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor21.\n"
- }, {
- "name": "exclusiveMinimum",
- "type": "boolean",
- "description": "Indicate if the value must value > minimum. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor21.\n"
- }, {
- "name": "multipleOf",
- "type": "number",
- "description": "The value must be a multiple of *multiplOf*. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor14.\n"
- }]
- },
- "Header Object String": {
- "description": "A string header",
- "fieldsGroup": true,
- "fields": [{
- "name": "pattern",
- "type": "string",
- "description": "This string SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor33. \nSee https://regex101.com/\n"
- }, {
- "name": "maxLength",
- "type": "integer",
- "description": "Maximum string's length. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor26.\n"
- }, {
- "name": "minLength",
- "type": "integer",
- "description": "Minimum string's length. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor29.\n"
- }]
- },
- "Headers Object": {
- "description": "The name of the property corresponds to the name of the header. The value describes the type of the header.",
- "fields": [{
- "name": "{name}",
- "patterned": true,
- "type": "Header Object",
- "description": "The name of the property corresponds to the name of the header. \nThe value describes the type of the header.\n"
- }]
- },
- "Info Object": {
- "description": "Provides metadata about the API. The metadata can be used by the clients if needed.",
- "allowExtension": true,
- "fields": [{
- "name": "title",
- "type": "string",
- "required": true,
- "description": "The title of the application."
- }, {
- "name": "description",
- "type": "string",
- "gfm": true,
- "description": "A short description of the application."
- }, {
- "name": "termsOfService",
- "type": "string",
- "description": "The Terms of Service for the API."
- }, {
- "name": "contact",
- "type": "Contact Object",
- "description": "The contact information for the exposed API."
- }, {
- "name": "licence",
- "type": "Licence Object",
- "description": "The license information for the exposed API."
- }, {
- "name": "version",
- "type": "string",
- "required": true,
- "description": "Provides the version of the application API (not to be confused with the specification version)."
- }]
- },
- "Licence Object": {
- "description": "License information for the exposed API.",
- "allowExtension": true,
- "fields": [{
- "name": "name",
- "type": "string",
- "required": true,
- "description": "The license name used for the API."
- }, {
- "name": "url",
- "type": "string",
- "description": "A URL to the license used for the API. \nMUST be in the format of a URL.\n"
- }]
- },
- "Operation Object": {
- "description": "Describes a single API operation on a path.",
- "allowExtension": true,
- "fields": [{
- "name": "tags",
- "type": "[string]",
- "description": "A list of tags for API documentation control.\nTags can be used for logical grouping of operations by resources or any other qualifier.\n"
- }, {
- "name": "summary",
- "type": "string",
- "description": "A short summary of what the operation does.\nFor maximum readability in the swagger-ui, this field SHOULD be less than 120 characters.\n"
- }, {
- "name": "description",
- "type": "string",
- "description": "A verbose explanation of the operation behavior.",
- "gfm": true
- }, {
- "name": "externalDocs",
- "type": "External Documentation Object",
- "description": "Additional external documentation for this operation."
- }, {
- "name": "operationId",
- "type": "string",
- "description": "Unique string used to identify the operation.\nThe id MUST be unique among all operations described in the API.\nTools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is recommended to follow common programming naming conventions.\n"
- }, {
- "name": "consumes",
- "type": "[string]",
- "description": "A list of MIME types the operation can consume.\nThis overrides the consumes definition at the Swagger Object.\nAn empty value MAY be used to clear the global definition.\nValue MUST be as described under Mime Types.\n"
- }, {
- "name": "produces",
- "type": "[string]",
- "description": "A list of MIME types the operation can produce.\nThis overrides the produces definition at the Swagger Object.\nAn empty value MAY be used to clear the global definition.\nValue MUST be as described under Mime Types.\n"
- }, {
- "name": "parameters",
- "type": "[Parameter Object]",
- "description": "A list of parameters that are applicable for this operation.\nIf a parameter is already defined at the Path Item, the new definition will override it, but can never remove it.\nThe list MUST NOT include duplicated parameters.\nA unique parameter is defined by a combination of a name and location.\nThe list can use the Reference Object to link to parameters that are defined at the Swagger Object's parameters.\nThere can be one *body* parameter at most.\n",
- "allowReference": true
- }, {
- "name": "responses",
- "type": "Responses Object",
- "required": true,
- "description": "The list of possible responses as they are returned from executing this operation."
- }, {
- "name": "schemes",
- "type": "[string]",
- "description": "The transfer protocol for the operation.\nThe value overrides the Swagger Object schemes definition.\n",
- "values": [{
- "value": "http"
- }, {
- "value": "https"
- }, {
- "value": "ws",
- "description": "Web socket scheme"
- }, {
- "value": "wss",
- "description": "Secured web socket scheme"
- }]
- }, {
- "name": "deprecated",
- "type": "boolean",
- "description": "Declares this operation to be deprecated.\nUsage of the declared operation should be refrained.\nDefault value is false.\n"
- }, {
- "name": "security",
- "type": "[Security Requirement Object]",
- "description": "A declaration of which security schemes are applied for this operation.\nThe list of values describes alternative security schemes that can be used (that is, there is a logical OR between the security requirements).\nThis definition overrides any declared top-level security.\nTo remove a top-level security declaration, an empty array can be used.\n"
- }]
- },
- "Parameter Object": {
- "description": "Describes a single operation parameter.\nA unique parameter is defined by a combination of a name and location (in).\n",
- "allowExtension": true,
- "fields": [{
- "name": "in",
- "type": "string",
- "description": "The location of the parameter.",
- "values": [{
- "value": "query",
- "description": "Parameters that are appended to the URL. For example, in */items?id=value*, the query parameter is id."
- }, {
- "value": "header",
- "description": "Custom headers that are expected as part of the request."
- }, {
- "value": "path",
- "description": "Used together with Path Templating, where the parameter value is actually part of the operation's URL.\nThis does not include the host or base path of the API.\nFor example, in */items/{itemId}*, the path parameter is itemId.\n"
- }, {
- "value": "formData",
- "description": "Used to describe the payload of an HTTP request when either *application/x-www-form-urlencoded* or *multipart/form-data* are used as the content type of the request (in OpenAPI's definition, the consumes property of an operation).\nThis is the only parameter type that can be used to send files, thus supporting the file type.\nSince form parameters are sent in the payload, they cannot be declared together with a body parameter for the same operation.\nForm parameters have a different format based on the content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4):\n\n - application/x-www-form-urlencoded - Similar to the format of Query parameters but as a payload. For example, foo=1&bar=openapi - both foo and bar are form parameters. This is normally used for simple parameters that are being transferred.\n - multipart/form-data - Each parameter takes a section in the payload with an internal header. For example, for the header Content-Disposition: form-data; name=\"submit-name\" the name of the parameter is submit-name. This type of form parameters is more commonly used for file transfers.\n"
- }, {
- "value": "body",
- "description": "The payload that's appended to the HTTP request.\nSince there can only be one payload, there can only be one body parameter.\nThe name of the body parameter has no effect on the parameter itself and is used for documentation purposes only.\nSince Form parameters are also in the payload, body and form parameters cannot exist together for the same operation.\n"
- }]
- }, {
- "name": "",
- "type": "Parameter Object Body",
- "description": "Fields if *in* value is *body*."
- }, {
- "name": "",
- "type": "Parameter Object Not Body",
- "description": "Fields if *in* value is *query*, *header*, *path* or *formData*."
- }, {
- "name": "description",
- "type": "string",
- "gfm": true,
- "description": "A brief description of the parameter.\nThis could contain examples of use.\n"
- }, {
- "name": "required",
- "type": "boolean",
- "description": "Determines whether this parameter is mandatory.\nIf the parameter is in *path*, this property is required and its value MUST be true.\nOtherwise, the property MAY be included and its default value is false.\n"
- }]
- },
- "Parameter Object Array": {
- "description:": "Fields if parameter type is array.",
- "fieldsGroup": true,
- "fields": [{
- "name": "items",
- "type": "Items Object",
- "description": "Describes the type of items in the array."
- }, {
- "name": "collectionFormat",
- "type": "string",
- "description": "Determines the format of the array if type array is used.\n",
- "values": [{
- "value": "csv",
- "description": "Comma separated values *foo,bar*.",
- "default": true
- }, {
- "value": "ssv",
- "description": "Space separated values *foo bar*."
- }, {
- "value": "tsv",
- "description": "Tab separated values *foo\\\\tbar*."
- }, {
- "value": "pipes",
- "description": "Pipe separated values *foo|bar*."
- }, {
- "value": "multi",
- "description": "Corresponds to multiple parameter instances instead of multiple values for a single instance *foo=bar&foo=baz*.\nThis is valid only for parameters in *query* or *formData*.\n"
- }]
- }, {
- "name": "maxItems",
- "type": "number",
- "description": "Maximum count of items in array"
- }, {
- "name": "minItems",
- "type": "number",
- "description": "Minimum count of items in array."
- }, {
- "name": "uniqueItems",
- "type": "boolean",
- "description": "Allow only unique items in array."
- }]
- },
- "Parameter Object Body": {
- "description": "Fields if *in* value is *body*.",
- "fieldsGroup": true,
- "fields": [{
- "name": "body",
- "required": true,
- "type": "Schema Object",
- "description": "The schema defining the type used for the body parameter."
- }]
- },
- "Parameter Object File": {
- "description": "A File parameter",
- "fieldsGroup": true,
- "fields": [{
- "name": "maxLength",
- "type": "integer",
- "description": "See http://json-schema.org/latest/json-schema-validation.html#anchor26."
- }, {
- "name": "minLength",
- "type": "integer",
- "description": "See http://json-schema.org/latest/json-schema-validation.html#anchor29."
- }]
- },
- "Parameter Object Not Array Or File": {
- "description": "Fields if *type* value is *string*, *number*, *integer* or *boolean*.",
- "fieldsGroup": true,
- "fields": [{
- "name": "format",
- "type": "string",
- "description": "The extending format for the previously mentioned type. \nSee Data Type Formats for further details. \n\nCommon Name | type | format| Comments\n------------|------|-------|---------\ninteger\t | integer | int32 | signed 32 bits\nlong\t | integer\t| int64\t| signed 64 bits\nfloat\t | number\t| float |\t\ndouble\t | number\t| double|\t\nstring\t | string\t| |\t\nbyte\t | string\t| byte\t| base64 encoded characters\nbinary\t | string\t| binary|\tany sequence of octets\nboolean\t | boolean | |\t\t\ndate\t | string\t| date\t| As defined by full-date - RFC3339\ndateTime\t | string\t| date-time\t| As defined by date-time - RFC3339\npassword\t | string |\tpassword | Used to hint UIs the input needs to be obscured.\n"
- }, {
- "name": "allowEmptyValue",
- "type": "boolean",
- "description": "Sets the ability to pass empty-valued parameters.\nThis is valid only for either query or formData parameters and allows you to send a parameter with a name only or an empty value. \nDefault value is false.\n"
- }, {
- "name": "",
- "type": "Parameter Object String",
- "description": "Fields if *type* is *string*."
- }, {
- "name": "",
- "type": "Parameter Object Number Or Integer",
- "description": "Fields if *type* is *number* or *integer*."
- }, {
- "name": "enum",
- "type": "[Any]",
- "description": "Authorized values. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor76.\n"
- }]
- },
- "Parameter Object Not Body": {
- "description": "Fields if *in* value is *query*, *header*, *path* or *formData*.",
- "fieldsGroup": true,
- "fields": [{
- "name": "type",
- "type": "string",
- "description": "The type of the parameter.\nSince the parameter is not located at the request body, it is limited to simple types (that is, not an object).\n",
- "values": [{
- "value": "string"
- }, {
- "value": "number"
- }, {
- "value": "integer"
- }, {
- "value": "boolean"
- }, {
- "value": "array"
- }, {
- "value": "file",
- "description": "If type is *file*, the consumes MUST be either *multipart/form-data* or *application/x-www-form-urlencoded* and the parameter MUST be in *formData*."
- }]
- }, {
- "name": "",
- "type": "Parameter Object Array",
- "description": "Fields if *type* value is *array*."
- }, {
- "name": "",
- "type": "Parameter Object File",
- "description": "Fields if *type* value is *file*."
- }, {
- "name": "",
- "type": "Parameter Object Not Array Or File",
- "description": "Fields if *type* value is *string*, *number*, *integer* or *boolean*."
- }, {
- "name": "default",
- "description": "Declares the value of the parameter that the server will use if none is provided.\nFor example a *count* to control the number of results per page might default to 100 if not supplied by the client in the request.\n(Note: *default* has no meaning for required parameters.)\nUnlike JSON Schema this value MUST conform to the defined type for this parameter.\nSee http://json-schema.org/latest/json-schema-validation.html#anchor101.\n"
- }]
- },
- "Parameter Object Number Or Integer": {
- "description": "A number or integer parameter",
- "fieldsGroup": true,
- "fields": [{
- "name": "maximum",
- "type": "number",
- "description": "Maximum value. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor17.\n"
- }, {
- "name": "exclusiveMaximum",
- "type": "boolean",
- "description": "Indicate if the value must be < maximum. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor17.\n"
- }, {
- "name": "minimum",
- "type": "number",
- "description": "Minimum value. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor21.\n"
- }, {
- "name": "exclusiveMinimum",
- "type": "boolean",
- "description": "Indicate if the value must value > minimum. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor21.\n"
- }, {
- "name": "multipleOf",
- "type": "number",
- "description": "The value must be a multiple of *multiplOf*. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor14.\n"
- }]
- },
- "Parameter Object String": {
- "description": "A string parameter",
- "fieldsGroup": true,
- "fields": [{
- "name": "pattern",
- "type": "string",
- "description": "This string SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor33. \nSee https://regex101.com/\n"
- }, {
- "name": "maxLength",
- "type": "integer",
- "description": "Maximum string's length. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor26.\n"
- }, {
- "name": "minLength",
- "type": "integer",
- "description": "Minimum string's length. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor29.\n"
- }]
- },
- "Parameters Definitions Object": {
- "description": null,
- "fields": [{
- "name": "{name}",
- "type": "Parameter Object",
- "description": "A single parameter definition, mapping a *name* to the parameter it defines.",
- "patterned": true
- }]
- },
- "Path Item Object": {
- "description": "Describes the operations available on a single path.\nA Path Item may be empty, due to ACL constraints.\nThe path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\n",
- "allowExtension": true,
- "fields": [{
- "name": "$ref",
- "type": "string",
- "description": "Allows for an external definition of this path item.\nThe referenced structure MUST be in the format of a Path Item Object.\nIf there are conflicts between the referenced definition and this Path Item's definition, the behavior is undefined.\n"
- }, {
- "name": "get",
- "type": "Operation Object",
- "description": "A definition of a GET operation on this path."
- }, {
- "name": "put",
- "type": "Operation Object",
- "description": "A definition of a PUT operation on this path."
- }, {
- "name": "post",
- "type": "Operation Object",
- "description": "A definition of a POST operation on this path."
- }, {
- "name": "delete",
- "type": "Operation Object",
- "description": "A definition of a DELETE operation on this path."
- }, {
- "name": "options",
- "type": "Operation Object",
- "description": "A definition of a OPTIONS operation on this path."
- }, {
- "name": "head",
- "type": "Operation Object",
- "description": "A definition of a HEAD operation on this path."
- }, {
- "name": "patch",
- "type": "Operation Object",
- "description": "A definition of a PATCH operation on this path."
- }, {
- "name": "parameters",
- "type": "[Parameter Object]",
- "allowReference": true,
- "description": "A list of parameters that are applicable for all the operations described under this path.\nThese parameters can be overridden at the operation level, but cannot be removed there.\nThe list MUST NOT include duplicated parameters.\nA unique parameter is defined by a combination of a name and location.\nThe list can use the Reference Object to link to parameters that are defined at the Swagger Object's parameters.\nThere can be one *body* parameter at most.\n"
- }]
- },
- "Paths Object": {
- "description": "Holds the relative paths to the individual endpoints.\nThe path is appended to the basePath in order to construct the full URL.\nThe Paths may be empty, due to ACL constraints.\n",
- "allowExtension": true,
- "fields": [{
- "name": "/{path}",
- "type": "Path Item Object",
- "required": true,
- "description": "A relative path to an individual endpoint.\nThe field name MUST begin with a slash.\nThe path is appended to the basePath in order to construct the full URL.\nPath templating is allowed.\n"
- }]
- },
- "Reference Object": {
- "description": "A simple object to allow referencing other definitions in the specification.\nIt can be used to reference parameters and responses that are defined at the top level for reuse.\nThe Reference Object is a JSON Reference that uses a JSON Pointer as its value.\nFor this specification, only canonical dereferencing is supported.\n",
- "fields": [{
- "name": "$ref",
- "type": "string",
- "description": "The reference string.",
- "required": true
- }]
- },
- "Response Object": {
- "description": "Describes a single response from an API Operation.",
- "allowExtension": true,
- "fields": [{
- "name": "description",
- "type": "string",
- "required": true,
- "gfm": true,
- "description": "A short description of the response. GFM syntax can be used for rich text representation."
- }, {
- "name": "schema",
- "type": "Schema Object",
- "description": "A definition of the response structure.\nIt can be a primitive, an array or an object.\nIf this field does not exist, it means no content is returned as part of the response.\nAs an extension to the Schema Object, its root type value may also be \"file\".\nThis SHOULD be accompanied by a relevant produces mime-type.\n"
- }, {
- "name": "headers",
- "type": "Headers Object",
- "description": "A list of headers that are sent with the response."
- }, {
- "name": "example",
- "type": "Example Object",
- "description": "An example of the response message."
- }]
- },
- "Responses Definitions Object": {
- "description": "An object to hold responses to be reused across operations.\nResponse definitions can be referenced to the ones defined here.\nThis does not define global operation responses.\n",
- "fields": [{
- "name": "{name}",
- "type": "Response Object",
- "patterned": true,
- "description": "A single response definition, mapping a \"name\" to the response it defines."
- }]
- },
- "Responses Object": {
- "description": "A container for the expected responses of an operation. The container maps a HTTP response code to the expected response. It is not expected from the documentation to necessarily cover all possible HTTP response codes, since they may not be known in advance. However, it is expected from the documentation to cover a successful operation response and any known errors.\n \nThe default can be used a default response object for all HTTP codes that are not covered individually by the specification.\n \nThe Responses Object MUST contain at least one response code, and it SHOULD be the response for a successful operation call.\n",
- "allowExtension": true,
- "fields": [{
- "name": "default",
- "allowReference": true,
- "type": "Response Object",
- "description": "The documentation of responses other than the ones declared for specific HTTP response codes. It can be used to cover undeclared responses. Reference Object can be used to link to a response that is defined at the Swagger Object's responses section."
- }, {
- "name": "{HTTP status code}",
- "allowReferene": true,
- "type": "Response Object",
- "description": "Any HTTP status code can be used as the property name (one property per HTTP status code). Describes the expected response for that HTTP status code. Reference Object can be used to link to a response that is defined at the Swagger Object's responses section."
- }]
- },
- "Schema Object": {
- "description": "The Schema Object allows the definition of input and output data types.\nThese types can be objects, but also primitives and arrays.\nThis object is based on the JSON Schema Specification Draft 4 and uses a predefined subset of it.\nOn top of this subset, there are extensions provided by this specification to allow for more complete documentation.\n",
- "fields": [{
- "name": "$ref",
- "type": "string",
- "description": "A JSON Reference"
- }, {
- "name": "title",
- "type": "string",
- "description": "The object's title"
- }, {
- "name": "description",
- "type": "String",
- "gfm": true,
- "description": "The object's description"
- }, {
- "name": "default",
- "type": "*",
- "description": "The default value. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object."
- }, {
- "name": "enum",
- "type": "[*]",
- "description": "Object's authorized values"
- }, {
- "name": "allOf",
- "type": "[Schema Object | Reference Object]",
- "noFollow": true,
- "description": "OpenAPI Specification allows combining and extending model definitions using the allOf property of JSON Schema, in effect offering model composition. allOf takes in an array of object definitions that are validated independently but together compose a single object. \nWhile composition offers model extensibility, it does not imply a hierarchy between the models. To support polymorphism, OpenAPI Specification adds the support of the discriminator field. When used, the discriminator will be the name of the property used to decide which schema definition is used to validate the structure of the model. As such, the discriminator field MUST be a required field. The value of the chosen property has to be the friendly name given to the model under the definitions property. As such, inline schema definitions, which do not have a given id, cannot be used in polymorphism.\n"
- }, {
- "name": "type",
- "description": "Object's type",
- "values": [{
- "value": "array",
- "description": "A JSON array."
- }, {
- "value": "boolean",
- "description": "A JSON boolean."
- }, {
- "value": "integer",
- "description": "A JSON number without a fraction or exponent part."
- }, {
- "value": "number",
- "description": "Any JSON number. Number includes integer."
- }, {
- "value": "null",
- "description": "The JSON null value."
- }, {
- "value": "object",
- "description": "A JSON object.",
- "default": true
- }, {
- "value": "string",
- "description": "A JSON string."
- }]
- }, {
- "name": "",
- "type": "Schema Object Array",
- "description": "Fields when *type* is *array*"
- }, {
- "name": "",
- "type": "Schema Object String",
- "description": "Fields when *type* is *string*"
- }, {
- "name": "",
- "type": "Schema Object Number Or Integer",
- "description": "Fields when *type* is *number* or *integer*"
- }, {
- "name": "",
- "type": "Schema Object Object",
- "description": "Fields when *type* is *object*"
- }]
- },
- "Schema Object Array": {
- "description:": "Fields if type is array.",
- "fieldsGroup": true,
- "fields": [{
- "name": "items",
- "type": "Items Object",
- "description": "Describes the type of items in the array."
- }, {
- "name": "maxItems",
- "type": "number",
- "description": "Maximum count of items in array"
- }, {
- "name": "minItems",
- "type": "number",
- "description": "Minimum count of items in array."
- }, {
- "name": "uniqueItems",
- "type": "boolean",
- "description": "Allow only unique items in array."
- }]
- },
- "Schema Object Number Or Integer": {
- "description": "A number or integer value",
- "fieldsGroup": true,
- "fields": [{
- "name": "format",
- "type": "string",
- "description": "The extending format for the previously mentioned type. \nSee Data Type Formats for further details. \n\nCommon Name | type | format| Comments\n------------|------|-------|---------\ninteger\t | integer | int32 | signed 32 bits\nlong\t | integer\t| int64\t| signed 64 bits\nfloat\t | number\t| float |\t\ndouble\t | number\t| double|\t\n"
- }, {
- "name": "maximum",
- "type": "number",
- "description": "Maximum value. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor17.\n"
- }, {
- "name": "exclusiveMaximum",
- "type": "boolean",
- "description": "Indicate if the value must be < maximum. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor17.\n"
- }, {
- "name": "minimum",
- "type": "number",
- "description": "Minimum value. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor21.\n"
- }, {
- "name": "exclusiveMinimum",
- "type": "boolean",
- "description": "Indicate if the value must value > minimum. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor21.\n"
- }, {
- "name": "multipleOf",
- "type": "number",
- "description": "The value must be a multiple of *multiplOf*. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor14.\n"
- }]
- },
- "Schema Object Object": {
- "fieldsGroup": true,
- "description": "type value is object.",
- "fields": [{
- "name": "properties",
- "description": "List of properties.",
- "type": "[Schema Object | Reference Object]",
- "noFollow": true
- }, {
- "name": "additionalProperties",
- "description": "Additionnal properties to create a map.",
- "type": "[Schema Object | Reference Object]",
- "noFollow": true
- }, {
- "name": "required",
- "type": ["string"],
- "description": "The list of required properties."
- }, {
- "name": "maxProperties",
- "type": "integer",
- "description": "An object instance is valid against \"maxProperties\" if its number of properties is less than, or equal to, the value of this keyword."
- }, {
- "name": "minProperties",
- "type": "integer",
- "description": "An object instance is valid against \"minProperties\" if its number of properties is greater than, or equal to, the value of this keyword."
- }]
- },
- "Schema Object String": {
- "description": "type value is string",
- "fieldsGroup": true,
- "fields": [{
- "name": "format",
- "type": "String",
- "description": "The extending format for the previously mentioned type. \nSee Data Type Formats for further details. \n\nCommon Name | format | Comments\n------------|-----------|---------\nbyte\t | byte\t | base64 encoded characters\nbinary\t | binary |\tany sequence of octets\ndate\t | date\t | As defined by full-date - RFC3339\ndateTime\t | date-time\t| As defined by date-time - RFC3339\npassword\t | password | Used to hint UIs the input needs to be obscured.\n"
- }, {
- "name": "pattern",
- "type": "string",
- "description": "This string SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor33. \nSee https://regex101.com/\n"
- }, {
- "name": "maxLength",
- "type": "integer",
- "description": "Maximum string's length. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor26.\n"
- }, {
- "name": "minLength",
- "type": "integer",
- "description": "Minimum string's length. \nSee http://json-schema.org/latest/json-schema-validation.html#anchor29.\n"
- }]
- },
- "Schema Object Swagger": {
- "fieldsGroup": true,
- "description": "The following properties are taken directly from the JSON Schema definition and follow the same specifications.",
- "fields": [{
- "name": "discriminator",
- "type": "string",
- "description": "Adds support for polymorphism. \nThe discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. \nThe property name used MUST be defined at this schema and it MUST be in the required property list. \nWhen used, the value MUST be the name of this schema or any schema that inherits it.\n"
- }, {
- "name": "readOnly",
- "type": "boolean",
- "description": "Relevant only for Schema \"properties\" definitions. Declares the property as \"read only\". This means that it MAY be sent as part of a response but MUST NOT be sent as part of the request. Properties marked as readOnly being true SHOULD NOT be in the required list of the defined schema. Default value is false.\n"
- }, {
- "name": "xml",
- "type": "XML Object",
- "description": "This MAY be used only on properties schemas. It has no effect on root schemas. \nAdds Additional metadata to describe the XML representation format of this property.\n"
- }, {
- "name": "externalDocs",
- "type": "External Documentation Object",
- "description": "Additional external documentation for this schema."
- }, {
- "name": "example",
- "type": "Any",
- "description": "A free-form property to include an example of an instance for this schema."
- }]
- },
- "Scopes Object": {
- "description": null,
- "allowExtension": true,
- "fields": [{
- "name": "{name}",
- "type": "string",
- "description": "Maps between a name of a scope to a short description of it (as the value of the property).",
- "patterned": true
- }]
- },
- "Security Definitions Object": {
- "description": "A declaration of the security schemes available to be used in the specification. \nThis does not enforce the security schemes on the operations and only serves to provide the relevant details for each scheme.\n",
- "allowExtension": true,
- "fields": [{
- "name": "{name}",
- "type": "Security Scheme Object",
- "description": "A single security scheme definition, mapping a *name* to the scheme it defines.",
- "patterned": true
- }]
- },
- "Security Requirement Object": {
- "allowExtension": true,
- "fields": [{
- "name": "{name}",
- "type": "[string]",
- "description": "Each name must correspond to a security scheme which is declared in the Security Definitions. \nIf the security scheme is of type *oauth2*, then the value is a list of scope names required for the execution. \nFor other security scheme types, the array MUST be empty.\n"
- }]
- },
- "Security Scheme Object": {
- "description": "Allows the definition of a security scheme that can be used by the operations.\nSupported schemes are basic authentication, an API key (either as a header or as a query parameter) and OAuth2's common flows (implicit, password, application and access code).\n",
- "allowExtension": true,
- "fields": [{
- "name": "type",
- "type": "string",
- "description": "The type of the security scheme.",
- "required": true,
- "values": [{
- "value": "basic"
- }, {
- "value": "apiKey"
- }, {
- "value": "oauth2"
- }]
- }, {
- "name": "description",
- "type": "string",
- "description": "A short description for security scheme."
- }, {
- "name": "",
- "type": "Security Scheme Object ApiKey",
- "description": "Fields if *type* value is *apiKey*."
- }, {
- "name": "",
- "type": "Security Scheme Object Oauth",
- "description": "Fields if *type* value is *oauth2*."
- }]
- },
- "Security Scheme Object ApiKey": {
- "description": null,
- "fieldsGroup": true,
- "fields": [{
- "name": "apiKey",
- "type": "string",
- "description": "The name of the header or query parameter to be used.",
- "required": true
- }, {
- "name": "in",
- "type": "string",
- "description": "The location of the API key.",
- "required": true,
- "values": [{
- "value": "query"
- }, {
- "value": "header"
- }]
- }]
- },
- "Security Scheme Object Oauth": {
- "description": null,
- "fieldsGroup": true,
- "fields": [{
- "name": "flow",
- "type": "string",
- "description": "The flow used by the OAuth2 security scheme.",
- "values": [{
- "value": "implicit"
- }, {
- "value": "password"
- }, {
- "value": "application"
- }, {
- "value": "accessCode"
- }],
- "required": true
- }, {
- "name": "authorizationUrl",
- "type": "string",
- "description": "The authorization URL to be used for this flow (implicit or access code). This SHOULD be in the form of a URL.",
- "required": true
- }, {
- "name": "tokenUrl",
- "type": "string",
- "description": "The token URL to be used for this flow (password, application or access code). This SHOULD be in the form of a URL.",
- "required": true
- }, {
- "name": "scopes",
- "type": "Scopes Object",
- "description": "The available scopes for the OAuth2 security scheme."
- }]
- },
- "Specification Extensions": {
- "name": "^x-",
- "type": "Any",
- "patterned": true,
- "openapiType": true,
- "description": "While the OpenAPI Specification tries to accommodate most use cases, additional data can be added to extend the specification at certain points. \nThe field name MUST begin with *x-*, for example, *x-internal-id.* \nThe value can be null, a primitive, an array or an object. \nWhen the value is an object or an array of object, the object's fields names do not need to start with *x-*. \nThe extensions may or may not be supported by the available tooling, but those may be extended as well to add requested support (if tools are internal or open-sourced).\n"
- },
- "Swagger Object": {
- "name": "OpenAPI definition",
- "description": "This is the *root* document object for the API specification. \nIt combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier) together into one document.\n",
- "allowExtension": true,
- "fields": [{
- "name": "swagger",
- "type": "string",
- "required": true,
- "description": "Specifies the OpenAPI Specification version being used. \nIt can be used by the Swagger UI and other clients to interpret the API listing.\n",
- "values": [{
- "value": "2.0",
- "description": "The value MUST be 2.0"
- }]
- }, {
- "name": "info",
- "type": "Info Object",
- "required": true,
- "description": "Provides metadata about the API. \nThe metadata can be used by the clients if needed.\n"
- }, {
- "name": "host",
- "type": "string",
- "description": "The host (name or ip) serving the API. \nThis MUST be the host only and does not include the scheme nor sub-paths. \nIt MAY include a port. \nIf the host is not included, the host serving the documentation is to be used (including the port). \nThe host does not support path templating.\n"
- }, {
- "name": "basePath",
- "type": "string",
- "required": false,
- "description": "The base path on which the API is served, which is relative to the host. \nIf it is not included, the API is served directly under the host. \nThe value MUST start with a leading slash (/). \nThe basePath does not support path templating.\n"
- }, {
- "name": "schemes",
- "type": ["string"],
- "description": "The transfer protocol of the API. \nIf the schemes is not included, the default scheme to be used is the one used to access the OpenAPI definition itself.\n",
- "values": [{
- "value": "http"
- }, {
- "value": "https"
- }, {
- "value": "ws",
- "description": "[Web socket](https://en.wikipedia.org/wiki/WebSocket) scheme"
- }, {
- "value": "wss",
- "description": "Secured [web socket](https://en.wikipedia.org/wiki/WebSocket) scheme"
- }]
- }, {
- "name": "consumes",
- "type": ["string"],
- "description": "A list of MIME types the APIs can consume. \nThis is global to all APIs but can be overridden on specific API calls. \nValue MUST be as described under Mime Types.\n"
- }, {
- "name": "produces",
- "type": ["string"],
- "description": "A list of MIME types the APIs can produce. \nThis is global to all APIs but can be overridden on specific API calls. \nValue MUST be as described under Mime Types.\n"
- }, {
- "name": "paths",
- "type": "Paths Object",
- "required": true,
- "description": "The available paths and operations for the API."
- }, {
- "name": "definitions",
- "type": "Definitions Object",
- "description": "An object to hold data types produced and consumed by operations."
- }, {
- "name": "parameters",
- "type": "Parameters Definitions Object",
- "description": "An object to hold parameters that can be used across operations. \nThis property does not define global parameters for all operations.\n"
- }, {
- "name": "responses",
- "type": "Responses Definitions Object",
- "description": "An object to hold responses that can be used across operations. \nThis property does not define global responses for all operations.\n"
- }, {
- "name": "securityDefinitions",
- "type": "Security Definitions Object",
- "description": "Security scheme definitions that can be used across the specification."
- }, {
- "name": "security",
- "type": "[Security Requirement Object]",
- "description": "A declaration of which security schemes are applied for the API as a whole. \nThe list of values describes alternative security schemes that can be used (that is, there is a logical OR between the security requirements). \nIndividual operations can override this definition.\n"
- }, {
- "name": "tags",
- "type": "[Tag Object]",
- "description": "A list of tags used by the specification with additional metadata. \nThe order of the tags can be used to reflect on their order by the parsing tools. \nNot all tags that are used by the *Operation Object* must be declared. \nThe tags that are not declared may be organized randomly or based on the tools' logic. \nEach tag name in the list MUST be unique.\n"
- }, {
- "name": "externalDocs",
- "type": "External Documentation Object",
- "description": "Additional external documentation."
- }]
- },
- "Tag Object": {
- "description": "Allows adding meta data to a single tag that is used by the *Operation Object*. \nIt is not mandatory to have a Tag Object per tag used there.\n",
- "allowExtension": true,
- "fields": [{
- "name": "name",
- "type": "string",
- "description": "The name of the tag.",
- "required": true
- }, {
- "name": "description",
- "type": "string",
- "description": "A short description for the tag.",
- "gfm": true
- }, {
- "name": "externalDocs",
- "type": "ExternalDocumentation",
- "description": "Additional external documentation for this tag."
- }]
- }
-}
diff --git a/dist/robots.txt b/dist/robots.txt
deleted file mode 100644
index 3969cb1..0000000
--- a/dist/robots.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# robotstxt.org/
-
-User-agent: *
-Disallow:
diff --git a/dist/scripts/main.js b/dist/scripts/main.js
deleted file mode 100644
index 2dcc667..0000000
--- a/dist/scripts/main.js
+++ /dev/null
@@ -1 +0,0 @@
-function buildNodeFromDefinition(e,n){var t=e[n],l={};if(l.name=t.name,void 0!==t.description&&null!==t.description&&(l.description=marked(t.description)),l.type=n,void 0!==t.allowExtension?l.allowExtension=t.allowExtension:l.allowExtension=!1,void 0!==t.fieldsGroup?l.fieldsGroup=t.fieldsGroup:l.fieldsGroup=!1,l.fieldsGroup||void 0===l.type)l.openapiType=!1;else{l.openapiType=!0;var a=l.type.replace(/ /g,"").replace("[","").replace("]","");a=a.charAt(0).toLowerCase()+a.slice(1),l.openapiTypeURL="https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#"+a}l.required=t.required,l.closedChildren=[];for(var i in t.fields)l.closedChildren.push(buildNodeFromField(e,t.fields[i]));return l.allowExtension&&l.closedChildren.push(buildNodeFromField(e,e["Specification Extensions"])),l}function buildNodeFromField(e,n){var t={},l=!1;if(void 0!==n.type){t.openapiType=!1;var a;n.type.indexOf("[")>=0?(a=n.type.substring(1,n.type.length-1),l=!0):(a=n.type,l=!1),void 0!==e[a]&&(t=buildNodeFromDefinition(e,a))}if(t.name=n.name,t.type=n.type,t.array=l,void 0!==n.description&&(t.description=marked(n.description)),void 0!==n.values)for(var i=0;ir;r++)l(a[r],n,t)}}function a(){A.attr("transform","translate("+d3.event.translate+")scale("+d3.event.scale+")")}function i(e){var n=w.scale(),t=-e.y0,l=-e.x0;t=t*n+v/2,l=l*n+y/2,d3.select("g").transition().duration(m).attr("transform","translate("+t+","+l+")scale("+n+")"),w.scale(n),w.translate([t,l])}function r(e){return e.children?(e.closedChildren=e.children,e.children=null):e.closedChildren&&(e.children=e.closedChildren,e.closedChildren=null),e}function o(e){d3.event.defaultPrevented||(e=r(e),s(e),i(e))}function s(e){var l=[1],a=function(e,n){n.children&&n.children.length>0&&(l.length<=e+1&&l.push(0),l[e+1]+=n.children.length,n.children.forEach(function(n){a(e+1,n)}))};a(0,c);var i=25*d3.max(l);g=g.size([i,v]);var r=g.nodes(c).reverse(),s=g.links(r);r.forEach(function(e){e.y=e.depth*(10*p)});var u=A.selectAll("g.node").data(r,function(e){return e.id||(e.id=++h)}),d=u.enter().append("g").attr("class","node").attr("transform",function(n){return"translate("+e.y0+","+e.x0+")"}).on("click",o).on("mouseover",function(e){n(e)}).on("mouseout",function(e){t(e)});d.append("circle").attr("class","nodeCircle").attr("r",0).style("fill",function(e){return e.closedChildren?"lightsteelblue":"#fff"});d.append("text").attr("x",function(e){return e.children||e.closedChildren?-10:10}).attr("dy",".35em").attr("class","nodeText").attr("text-anchor",function(e){return e.children||e.closedChildren?"end":"start"}).text(function(e){return e.name}).style("fill-opacity",0);d.append("circle").attr("class","ghostCircle").attr("r",30).style("fill","red").attr("pointer-events","mouseover").on("mouseover",function(e){E(e)}).on("mouseout",function(e){T(e)}),u.select("text").attr("x",function(e){return e.children||e.closedChildren?-10:10}).attr("text-anchor",function(e){return e.children||e.closedChildren?"end":"start"}).text(function(e){return e.name}),u.select("circle.nodeCircle").attr("r",4.5).style("fill",function(e){return e.closedChildren?"lightsteelblue":"#fff"});var f=u.transition().duration(m).attr("transform",function(e){return"translate("+e.y+","+e.x+")"});f.select("text").style("fill-opacity",1);var y=u.exit().transition().duration(m).attr("transform",function(n){return"translate("+e.y+","+e.x+")"}).remove();y.select("circle").attr("r",0),y.select("text").style("fill-opacity",0);var x=A.selectAll("path.link").data(s,function(e){return e.target.id});x.enter().insert("path","g").attr("class","link").attr("d",function(n){var t={x:e.x0,y:e.y0};return b({source:t,target:t})}),x.transition().duration(m).attr("d",b),x.exit().transition().duration(m).attr("d",function(n){var t={x:e.x,y:e.y};return b({source:t,target:t})}).remove(),r.forEach(function(e){e.x0=e.x,e.y0=e.y})}var c,u=0,p=0,d=null,f=null,h=0,m=750,v=$("#tree-container").width(),y=$(document).height()-$("#tree-container").position().top-50,g=($("#tree-container").position().top,$("#tree-container").position().left,d3.layout.tree().size([y,v])),x=d3.select("#tooltip-container").attr("id","node-tooltip"),b=d3.svg.diagonal().projection(function(e){return[e.y,e.x]});l(e,function(e){u++,p=Math.max(e.name.length,p)},function(e){return e.children&&e.children.length>0?e.children:null});var w=d3.behavior.zoom().scaleExtent([.1,3]).on("zoom",a),C=d3.select("#tree-container").append("svg").attr("width",v).attr("height",y).attr("class","overlay").call(w),E=function(e){d=e,k()},T=function(e){d=null,k()},k=function(){var e=[];null!==f&&null!==d&&(e=[{source:{x:d.y0,y:d.x0},target:{x:f.y0,y:f.x0}}]);var n=A.selectAll(".templink").data(e);n.enter().append("path").attr("class","templink").attr("d",d3.svg.diagonal()).attr("pointer-events","none"),n.attr("d",d3.svg.diagonal()),n.exit().remove()},A=C.append("g");c=e,c.x0=y/2,c.y0=0,s(c),i(c)}this.OpenAPISpecificationVisualDocumentation=this.OpenAPISpecificationVisualDocumentation||{},this.OpenAPISpecificationVisualDocumentation.tooltip=Handlebars.template({1:function(e,n,t,l,a){var i,r;return'