Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.1.0-rc1 Release #2370

Merged
merged 51 commits into from
Oct 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
7a5b183
3.1.0 prep
webron Oct 8, 2018
77f86eb
Update README
webron Oct 8, 2018
e985f13
Allow specification extensions in discriminator object
MikeRalphson Oct 18, 2018
eb92123
Note that specification extensions beginning x-oas- are reserved
MikeRalphson Oct 18, 2018
3083f1a
Merge pull request #1715 from MikeRalphson/specext-oas
webron Oct 18, 2018
334cf53
Merge pull request #1714 from MikeRalphson/discrim-ext
webron Oct 18, 2018
d27bb1c
security; add mutualTLS securityScheme type
MikeRalphson Nov 27, 2018
a76dad5
Merge pull request #1764 from MikeRalphson/v3.1-mutualTLS
webron Feb 7, 2019
5f6a25a
832 add info.summary (#1779)
ioggstream Feb 28, 2019
5044418
fix OIDC url and OAuth2 requirements
AxelNennker Jun 21, 2019
192aafe
Merge pull request #1959 from AxelNennker/fix_OICD_and_OAuth2
MikeRalphson Aug 6, 2019
ac236d1
Update Schema Object to proper JSON Schema
Jun 21, 2019
f8f92ed
update vocab and arbitrary props
Oct 25, 2019
e121405
another go at arbitrary keywords
Oct 28, 2019
5905f45
feedback from @handrews
Oct 29, 2019
0ec2c73
Support style, explode, allowReserved encoding for multipart/form-dat…
Nov 27, 2019
4822592
default should match json schema
Jan 9, 2020
d67f350
removed json schema keyworld list, its just all of em.
Jan 9, 2020
bb9a6f2
redundant $ref reference
Jan 9, 2020
e3c236a
Merge pull request #1977 from philsturgeon/json-schema-update
webron Jan 9, 2020
fd39bcd
Correct Styles Values for spaceDelimited and pipeDelimited, as based …
Arhimenrius Jan 10, 2020
61f9d7e
Add support for webhooks as a top-level element (#2103)
lornajane Jan 16, 2020
3cb92bd
Align the OAS 3.1 nullable language with the 3.0.3 (#2115)
handrews Feb 6, 2020
c37a305
allow, but discourage, requestBody for GET, HEAD, DELETE (#2117)
n2ygk Feb 6, 2020
92a9104
Reference Object and Schema Object use of $ref updates for 2019-09 / …
handrews Feb 6, 2020
c376bef
Fix table cell formatting containing `nullable` description (#2152)
hkosova Feb 21, 2020
70ecce7
Add SPDX identifier field to license object, fixes #1599 (#2105)
MikeRalphson Feb 27, 2020
c6415fe
Add information about objects to the description too
Arhimenrius Mar 11, 2020
a6b99bc
Make paths object optional (#1781)
MikeRalphson Mar 19, 2020
b5a15df
Fwd port v3.0.3 dev to v3.1.0 dev (#2163)
MikeRalphson Mar 19, 2020
b45d0d8
security; widen use of scopes array to other securityScheme types (#1…
MikeRalphson Mar 19, 2020
cafadc9
Allow summary and description as $ref siblings (#2181)
MikeRalphson Mar 26, 2020
6abda3b
Merge pull request #2101 from Arhimenrius/correct-style-values-types
earth2marsh Apr 9, 2020
1a8d44f
HTTP not REST (#1946)
philsturgeon Apr 9, 2020
d5b65bb
Missing updates
webron May 6, 2020
3678d30
Merge pull request #2224 from OAI/Missing-updates
MikeRalphson May 7, 2020
ece5497
Remove boolean compatibility for exclusive* (#2226)
handrews May 14, 2020
69662e4
Update "format" and "content*" for new JSON Schema (#2200)
handrews May 28, 2020
835a18f
[3.1.0-dev] drop OAS semver requirement (#2243)
MikeRalphson May 28, 2020
ee77d2d
Remove "nullable" entirely (#2246)
handrews May 28, 2020
3a96dfe
Update version for release (#2269)
webron Jun 18, 2020
df7f5f9
$schema Guidance (#2266)
philsturgeon Jul 23, 2020
912ef8d
v3.1.0: rephrase data-type section because `format` keyword can be us…
sebastien-rosset Aug 27, 2020
437b407
Added change to address #2287 (#2328)
darrelmiller Sep 3, 2020
280ae0e
Make Server Variable Object's properties more strict (#2335)
webron Sep 3, 2020
99ceb0b
docs(Components): fix typo in schemas field type (#2337)
char0n Sep 4, 2020
4ad45ad
Fix indentation of a YAML comment
hkosova Sep 17, 2020
7fc06e0
Removed required constraint on responses object (#2329)
darrelmiller Oct 1, 2020
0e91fe8
Merge pull request #2352 from hkosova/comment-indent-fix
MikeRalphson Oct 7, 2020
8da2c2a
3.1.0-rc1 Release prep (#2369)
webron Oct 8, 2020
9d59a51
Merge branch 'master' into v3.1.0-dev
webron Oct 8, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ This GitHub project is the starting point for OpenAPI. Here you will find the in

The current version of the OpenAPI specification is [OpenAPI Specification 3.0.3](versions/3.0.3.md).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Original Auto Salez


## Current Release Candidate Version - 3.1.0-RC0
## Current Release Candidate Version - 3.1.0-RC1

We invite the community to review and provide feedback for the current release candidate ([OpenAPI Specification 3.1.0-RC0](versions/3.1.0.md). Changes related to the upcoming 3.1.0 release should be submitted at [the development branch](https://github.com/OAI/OpenAPI-Specification/tree/v3.1.0-dev).
We invite the community to review and provide feedback for the current release candidate ([OpenAPI Specification 3.1.0-RC1](versions/3.1.0.md). Changes related to the upcoming 3.1.0 release should be submitted at [the development branch](https://github.com/OAI/OpenAPI-Specification/tree/v3.1.0-dev).

### Previous Versions

Expand Down
34 changes: 19 additions & 15 deletions versions/3.1.0.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# OpenAPI Specification

#### Version 3.1.0-rc0
#### Version 3.1.0-rc1

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [BCP 14](https://tools.ietf.org/html/bcp14) [RFC2119](https://tools.ietf.org/html/rfc2119) [RFC8174](https://tools.ietf.org/html/rfc8174) when, and only when, they appear in all capitals, as shown here.

Expand Down Expand Up @@ -73,7 +73,7 @@ A self-contained or composite resource which defines or describes an API or elem
##### <a name="pathTemplating"></a>Path Templating
Path templating refers to the usage of template expressions, delimited by curly braces ({}), to mark a section of a URL path as replaceable using path parameters.

Each template expression in the path MUST correspond to a path parameter that is included in the [Path Item](#path-item-object) itself and/or in each of the Path Item's [Operations](#operation-object).
Each template expression in the path MUST correspond to a path parameter that is included in the [Path Item](#path-item-object) itself and/or in each of the Path Item's [Operations](#operation-object). An exception is if the path item is empty, for example due to ACL constraints, matching path parameters are not required.

##### <a name="mediaTypes"></a>Media Types
Media type definitions are spread across several resources.
Expand Down Expand Up @@ -139,17 +139,12 @@ It is RECOMMENDED that the root OpenAPI document be named: `openapi.json` or `op

### <a name="dataTypes"></a>Data Types

Primitive data types in the OAS are based on the types supported by the [JSON Schema Specification Draft 2019-09](http://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.4.2).
Data types in the OAS are based on the types supported by the [JSON Schema Specification Draft 2019-09](http://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.4.2).
Note that `integer` as a type is also supported and is defined as a JSON number without a fraction or exponent part.
Models are defined using the [Schema Object](#schemaObject), which is a superset of JSON Schema Specification Draft 2019-09.

<a name="dataTypeFormat"></a>Primitives have an optional modifier property: `format`, which is defined by JSON Schema.
OAS uses several known additional formats to define in fine detail the data type being used.
However, to support documentation needs, the `format` property is an open `string`-valued property, and can have any value.
Additional formats MAY be used even though undefined by either JSON Schema or this specification.
Types that are not accompanied by a `format` property follow the type definition in the JSON Schema. Tools that do not recognize a specific `format` MAY default back to the `type` alone, as if the `format` is not specified.

Note that by default, JSON Schema validators will not attempt to validate the `format` keyword. https://json-schema.org/draft/2019-09/release-notes.html#format-vocabulary
<a name="dataTypeFormat"></a>As defined by JSON Schema, data types can have an optional modifier property: `format`.
OAS defines additional formats to provide fine detail for primitive data types.

The formats defined by the OAS are:

Expand Down Expand Up @@ -429,8 +424,8 @@ An object representing a Server Variable for server URL template substitution.

Field Name | Type | Description
---|:---:|---
<a name="serverVariableEnum"></a>enum | [`string`] | An enumeration of string values to be used if the substitution options are from a limited set. The array SHOULD NOT be empty.
<a name="serverVariableDefault"></a>default | `string` | **REQUIRED**. The default value to use for substitution, which SHALL be sent if an alternate value is _not_ supplied. Note this behavior is different than the [Schema Object's](#schemaObject) treatment of default values, because in those cases parameter values are optional. If the [`enum`](#serverVariableEnum) is defined, the value SHOULD exist in the enum's values.
<a name="serverVariableEnum"></a>enum | [`string`] | An enumeration of string values to be used if the substitution options are from a limited set. The array MUST NOT be empty.
<a name="serverVariableDefault"></a>default | `string` | **REQUIRED**. The default value to use for substitution, which SHALL be sent if an alternate value is _not_ supplied. Note this behavior is different than the [Schema Object's](#schemaObject) treatment of default values, because in those cases parameter values are optional. If the [`enum`](#serverVariableEnum) is defined, the value MUST exist in the enum's values.
<a name="serverVariableDescription"></a>description | `string` | An optional description for the server variable. [CommonMark syntax](https://spec.commonmark.org/) MAY be used for rich text representation.

This object MAY be extended with [Specification Extensions](#specificationExtensions).
Expand All @@ -445,7 +440,7 @@ All objects defined within the components object will have no effect on the API

Field Name | Type | Description
---|:---|---
<a name="componentsSchemas"></a> schemas | Map[`string`, [Schema Object](#schemaObject) | An object to hold reusable [Schema Objects](#schemaObject).
<a name="componentsSchemas"></a> schemas | Map[`string`, [Schema Object](#schemaObject)] | An object to hold reusable [Schema Objects](#schemaObject).
<a name="componentsResponses"></a> responses | Map[`string`, [Response Object](#responseObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Response Objects](#responseObject).
<a name="componentsParameters"></a> parameters | Map[`string`, [Parameter Object](#parameterObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Parameter Objects](#parameterObject).
<a name="componentsExamples"></a> examples | Map[`string`, [Example Object](#exampleObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Example Objects](#exampleObject).
Expand Down Expand Up @@ -850,7 +845,7 @@ Field Name | Type | Description
<a name="operationId"></a>operationId | `string` | Unique string used to identify the operation. The id MUST be unique among all operations described in the API. The operationId value is **case-sensitive**. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions.
<a name="operationParameters"></a>parameters | [[Parameter Object](#parameterObject) \| [Reference Object](#referenceObject)] | 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).
<a name="operationRequestBody"></a>requestBody | [Request Body Object](#requestBodyObject) \| [Reference Object](#referenceObject) | The request body applicable for this operation. The `requestBody` is fully 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 (such as [GET](https://tools.ietf.org/html/rfc7231#section-4.3.1), [HEAD](https://tools.ietf.org/html/rfc7231#section-4.3.2) and [DELETE](https://tools.ietf.org/html/rfc7231#section-4.3.5)), `requestBody` is permitted but does not have well-defined semantics and SHOULD be avoided if possible.
<a name="operationResponses"></a>responses | [Responses Object](#responsesObject) | **REQUIRED**. The list of possible responses as they are returned from executing this operation.
<a name="operationResponses"></a>responses | [Responses Object](#responsesObject) | The list of possible responses as they are returned from executing this operation.
<a name="operationCallbacks"></a>callbacks | Map[`string`, [Callback Object](#callbackObject) \| [Reference Object](#referenceObject)] | 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.
<a name="operationDeprecated"></a>deprecated | `boolean` | Declares this operation to be deprecated. Consumers SHOULD refrain from usage of the declared operation. Default value is `false`.
<a name="operationSecurity"></a>security | [[Security Requirement Object](#securityRequirementObject)] | 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. To make security optional, an empty security requirement (`{}`) can be included in the array. This definition overrides any declared top-level [`security`](#oasSecurity). To remove a top-level security declaration, an empty array can be used.
Expand Down Expand Up @@ -1485,7 +1480,7 @@ In addition, specific media types MAY be specified:
# multiple, specific media types may be specified:
requestBody:
content:
# a binary file of type png or jpeg
# a binary file of type png or jpeg
image/jpeg: {}
image/png: {}
```
Expand Down Expand Up @@ -2336,6 +2331,14 @@ As such, inline schema definitions, which do not have a given id, *cannot* be us
The [xml](#schemaXml) property allows extra definitions when translating the JSON definition to XML.
The [XML Object](#xmlObject) contains additional information about the available options.

###### Picking Schema Vocabularies

It is important for tooling to be able to detect what meta-schema any given resource wishes to be processed with: JSON Schema Core, JSON Schema Validation, OpenAPI Schema Object, or some custom meta schema.

`$schema` MAY be present in any Schema Object, and if present MUST be used to determine which dialect should be used when processing the schema.

When `$schema` is not present, the default the following dialect MUST be assumed: `$schema: "https://spec.openapis.org/oas/3.1/schema-object"`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is something supposed to exist at this URL "https://spec.openapis.org/oas/3.1/schema-object"? (I get a 404, and I expected a schema object.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I opened this issue: #2371 about this comment.


##### Schema Object Examples

###### Primitive Sample
Expand Down Expand Up @@ -3419,6 +3422,7 @@ Two examples of this:

Version | Date | Notes
--- | --- | ---
3.1.0-rc0 | 2020-10-08 | rc1 of the 3.1 specification
3.1.0-rc0 | 2020-06-18 | rc0 of the 3.1 specification
3.0.3 | 2020-02-20 | Patch release of the OpenAPI Specification 3.0.3
3.0.2 | 2018-10-08 | Patch release of the OpenAPI Specification 3.0.2
Expand Down