Moonwalk

Version 4.0.0-draft

Unofficial Draft

More details about this document
Latest published version:
https://oai.github.io/sig-moonwalk/moonwalk.html
Latest editor's draft:
https://github.com/OAI/sig-moonwalk/blob/main/specification/moonwalk-source.md
Editor:
TBD
Participate
GitHub Moonwalk
File a bug
Commit history
Pull requests

Current Status of Document

This contents of this document have been gathered from a combination of the 3.1 specification and proposed changes for Moonwalk. None of the content in this document should be considered as product of consensus. This is a working document for the purposes of getting the mechanics of publishing a document in place and beginning to discuss the overall structure of the document.

Abstract

The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for HTTP APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic. When properly defined via OpenAPI, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interface descriptions have done for lower-level programming, the OpenAPI Specification removes guesswork in calling a service.

Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

This document is licensed under The Apache License, Version 2.0.

1. Introduction

2. Definitions

2.1 OpenAPI Document

2.2 Media Types

2.3 HTTP Status Codes

3. Conventions

3.1 Versions

3.2 Format

3.3 Data Types

3.3.1 Working With Binary Data

3.3.1.1 Migrating binary descriptions from OAS 3.0

3.4 Rich Text Formatting

3.5 Relative References in URIs

3.6 Relative References in URLs

3.7 Referencing Imports

3.7.1 Using Imported Names

3.7.2 Referencing a Complete Document

3.7.3 Locating and Loading Imported Resources

3.7.4 Security Considerations for URL Retrieval

3.8 Specification Extensions

4. Document Processing

4.1 Parsing Documents

4.2 Structural Interoperability

4.3 Resolving Implicit Connections

4.4 Undefined and Implementation-Defined Behavior

5. OpenAPI Document Structure

5.1 General Fixed Fields

5.2 Info Object

5.2.1 Fixed Fields

5.2.2 Info Object Example

5.3 Contact Object

5.3.1 Fixed Fields

5.3.2 Contact Object Example

5.4 License Object

5.4.1 Fixed Fields

5.4.2 License Object Example

5.5 Components Object

5.6 Import Object

5.6.1 Fixed Fields

5.7 API Shape

5.7.1 Shape Fixed Fields

5.7.2 Operation Object

5.7.2.1 Fixed Fields
5.7.2.2 Operation Object Example

5.8 API Deployment

5.8.1 Deployment Fixed Fields

5.8.2 Deployment Example

5.8.3 Deployment Object

5.8.3.1 Deployment Fixed Fields

5.8.4 Security Scheme Object

5.8.4.1 Fixed Fields

5.8.5 Credential Object

5.8.5.1 Field Fields

5.8.6 Security Config Object

5.8.6.1 ApiKey Config Object
5.8.6.2 OAuth2 Config Object
5.8.6.3 OIDC Config Object
5.8.6.4 HTTP Config Object

6. Appendix

A. Revision History

Version Date Notes
3.1.0 2021-02-15 Release of the OpenAPI Specification 3.1.0
3.1.0-rc1 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
3.0.1 2017-12-06 Patch release of the OpenAPI Specification 3.0.1
3.0.0 2017-07-26 Release of the OpenAPI Specification 3.0.0
3.0.0-rc2 2017-06-16 rc2 of the 3.0 specification
3.0.0-rc1 2017-04-27 rc1 of the 3.0 specification
3.0.0-rc0 2017-02-28 Implementer's Draft of the 3.0 specification
2.0 2015-12-31 Donation of Swagger 2.0 to the OpenAPI Initiative
2.0 2014-09-08 Release of Swagger 2.0
1.2 2014-03-14 Initial release of the formal document.
1.1 2012-08-22 Release of Swagger 1.1
1.0 2011-08-10 First release of the Swagger Specification