-
Notifications
You must be signed in to change notification settings - Fork 0
/
openapi.go
37 lines (28 loc) · 1.87 KB
/
openapi.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package oasm
// This is the root document object of the OpenAPI document.
type OpenAPIDoc struct {
// REQUIRED. This string MUST be the semantic version number of the OpenAPI Specification version 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 string.
OpenApi string `json:"openapi"`
// REQUIRED. Provides metadata about the API. The metadata MAY be used by tooling as required.
Info *Info `json:"info"`
// 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 /.
Servers []Server `json:"servers,omitempty"`
// REQUIRED. The available paths and operations for the API.
Paths PathsMap `json:"paths"`
// An element to hold various schemas for the specification.
Components Components `json:"components,omitempty"`
// 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.
Security []SecurityRequirement `json:"security,omitempty"`
// 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.
Tags []Tag `json:"tags,omitempty"`
// Additional external documentation.
ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
}