Documentation ¶
Overview ¶
Package openapiv3 contains the algorithms and data structures used to generate OpenAPI v3 specifications from Goa designs.
Index ¶
- Constants
- func Files(root *expr.RootExpr) ([]*codegen.File, error)
- type CallbackRef
- type Components
- type Contact
- type Encoding
- type EndpointBodies
- type Example
- type ExampleRef
- type Header
- type HeaderRef
- type Info
- type License
- type Link
- type LinkRef
- type MediaType
- type OAuthFlow
- type OAuthFlows
- type OpenAPI
- type Operation
- type Parameter
- type ParameterRef
- type PathItem
- type RequestBody
- type RequestBodyRef
- type Response
- type ResponseRef
- type SecurityScheme
- type SecuritySchemeRef
- type Server
- type ServerVariable
Constants ¶
const OpenAPIVersion = "3.0.3"
OpenAPIVersion is the OpenAPI specification version targeted by this package.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CallbackRef ¶
CallbackRef represents an OpenAPI reference to a Callback object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*CallbackRef) MarshalJSON ¶
func (r *CallbackRef) MarshalJSON() ([]byte, error)
func (*CallbackRef) MarshalYAML ¶
func (r *CallbackRef) MarshalYAML() (interface{}, error)
func (*CallbackRef) UnmarshalJSON ¶
func (r *CallbackRef) UnmarshalJSON(d []byte) error
func (*CallbackRef) UnmarshalYAML ¶
func (r *CallbackRef) UnmarshalYAML(u func(interface{}) error) error
type Components ¶
type Components struct { Schemas map[string]*openapi.Schema `json:"schemas,omitempty" yaml:"schemas,omitempty"` Parameters map[string]*ParameterRef `json:"parameters,omitempty" yaml:"parameters,omitempty"` Headers map[string]*HeaderRef `json:"headers,omitempty" yaml:"headers,omitempty"` RequestBodies map[string]*RequestBodyRef `json:"requestBodies,omitempty" yaml:"requestBodies,omitempty"` Responses map[string]*ResponseRef `json:"responses,omitempty" yaml:"responses,omitempty"` SecuritySchemes map[string]*SecuritySchemeRef `json:"securitySchemes,omitempty" yaml:"securitySchemes,omitempty"` Examples map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"` Links map[string]*LinkRef `json:"links,omitempty" yaml:"links,omitempty"` Callbacks map[string]*CallbackRef `json:"callbacks,omitempty" yaml:"callbacks,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Components represents an OpenAPI Components object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#componentsObject
type Contact ¶
type Contact struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` URL string `json:"url,omitempty" yaml:"url,omitempty"` Email string `json:"email,omitempty" yaml:"email,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Contact represents an OpenAPI Contact object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#contactObject
type Encoding ¶
type Encoding struct { ContentType string `json:"contentType,omitempty" yaml:"contentType,omitempty"` Headers map[string]*HeaderRef `json:"headers,omitempty" yaml:"headers,omitempty"` Style string `json:"style,omitempty" yaml:"style,omitempty"` Explode *bool `json:"explode,omitempty" yaml:"explode,omitempty"` AllowReserved bool `json:"allowReserved,omitempty" yaml:"allowReserved,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Encoding represents an OpenAPI Encoding object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#encodingObject
type EndpointBodies ¶
EndpointBodies describes the request and response HTTP bodies of an endpoint using JSON schema. Each body may be described via a reference to a schema described in the "Components" section of the OpenAPI document or an actual JSON schema data structure. There may also be additional notes attached to each body definition to account for cases that are not directly supported in OpenAPI such as streaming. The possible response bodies are indexed by HTTP status, there may be more than one when the result type defined multiple views.
type Example ¶
type Example struct { Summary string `json:"summary,omitempty" yaml:"summary,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Value interface{} `json:"value,omitempty" yaml:"value,omitempty"` ExternalValue string `json:"externalValue,omitempty" yaml:"externalValue,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Example represents an OpenAPI Example object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#exampleObject
type ExampleRef ¶
ExampleRef represents an OpenAPI reference to a Example object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*ExampleRef) MarshalJSON ¶
func (r *ExampleRef) MarshalJSON() ([]byte, error)
func (*ExampleRef) MarshalYAML ¶
func (r *ExampleRef) MarshalYAML() (interface{}, error)
func (*ExampleRef) UnmarshalJSON ¶
func (r *ExampleRef) UnmarshalJSON(d []byte) error
func (*ExampleRef) UnmarshalYAML ¶
func (r *ExampleRef) UnmarshalYAML(u func(interface{}) error) error
type Header ¶
type Header struct { Description string `json:"description,omitempty" yaml:"description,omitempty"` Style string `json:"style,omitempty" yaml:"style,omitempty"` Explode *bool `json:"explode,omitempty" yaml:"explode,omitempty"` AllowEmptyValue bool `json:"allowEmptyValue,omitempty" yaml:"allowEmptyValue,omitempty"` AllowReserved bool `json:"allowReserved,omitempty" yaml:"allowReserved,omitempty"` Deprecated bool `json:"deprecated,omitempty" yaml:"deprecated,omitempty"` Required bool `json:"required,omitempty" yaml:"required,omitempty"` Schema *openapi.Schema `json:"schema,omitempty" yaml:"schema,omitempty"` Example interface{} `json:"example,omitempty" yaml:"example,omitempty"` Examples map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"` Content map[string]*MediaType `json:"content,omitempty" yaml:"content,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Header represents an OpenAPI Header object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#headerObject
type HeaderRef ¶
HeaderRef represents an OpenAPI reference to a Header object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*HeaderRef) MarshalJSON ¶
func (*HeaderRef) MarshalYAML ¶
func (*HeaderRef) UnmarshalJSON ¶
func (*HeaderRef) UnmarshalYAML ¶
type Info ¶
type Info struct { Title string `json:"title" yaml:"title"` // Required Description string `json:"description,omitempty" yaml:"description,omitempty"` TermsOfService string `json:"termsOfService,omitempty" yaml:"termsOfService,omitempty"` Contact *Contact `json:"contact,omitempty" yaml:"contact,omitempty"` License *License `json:"license,omitempty" yaml:"license,omitempty"` Version string `json:"version" yaml:"version"` // Required Extensions map[string]interface{} `json:"-" yaml:"-"` }
Info represents an OpenAPI Info object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#infoObject
func (Info) MarshalJSON ¶ added in v3.5.0
MarshalJSON returns the JSON encoding of i.
func (Info) MarshalYAML ¶ added in v3.5.0
MarshalYAML returns value which marshaled in place of the original value
type License ¶
type License struct { Name string `json:"name" yaml:"name"` // Required URL string `json:"url,omitempty" yaml:"url,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
License represents an OpenAPI License object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#licenseObject
type Link ¶
type Link struct { OperationID string `json:"operationId,omitempty" yaml:"operationId,omitempty"` OperationRef string `json:"operationRef,omitempty" yaml:"operationRef,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Parameters map[string]interface{} `json:"parameters,omitempty" yaml:"parameters,omitempty"` Server *Server `json:"server,omitempty" yaml:"server,omitempty"` RequestBody interface{} `json:"requestBody,omitempty" yaml:"requestBody,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Link represents an OpenAPI Link object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#linkObject
type LinkRef ¶
LinkRef represents an OpenAPI reference to a Link object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*LinkRef) MarshalJSON ¶
func (*LinkRef) MarshalYAML ¶
func (*LinkRef) UnmarshalJSON ¶
func (*LinkRef) UnmarshalYAML ¶
type MediaType ¶
type MediaType struct { Schema *openapi.Schema `json:"schema,omitempty" yaml:"schema,omitempty"` Example interface{} `json:"example,omitempty" yaml:"example,omitempty"` Examples map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"` Encoding map[string]*Encoding `json:"encoding,omitempty" yaml:"encoding,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
MediaType represents an OpenAPI Media Type object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#mediaTypeObject
type OAuthFlow ¶
type OAuthFlow struct { AuthorizationURL string `json:"authorizationUrl,omitempty" yaml:"authorizationUrl,omitempty"` TokenURL string `json:"tokenUrl,omitempty" yaml:"tokenUrl,omitempty"` RefreshURL string `json:"refreshUrl,omitempty" yaml:"refreshUrl,omitempty"` Scopes map[string]string `json:"scopes" yaml:"scopes"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
OAuthFlow represents an OpenAPI OAuthFlow object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#oauthFlowObject
type OAuthFlows ¶
type OAuthFlows struct { Implicit *OAuthFlow `json:"implicit,omitempty" yaml:"implicit,omitempty"` Password *OAuthFlow `json:"password,omitempty" yaml:"password,omitempty"` ClientCredentials *OAuthFlow `json:"clientCredentials,omitempty" yaml:"clientCredentials,omitempty"` AuthorizationCode *OAuthFlow `json:"authorizationCode,omitempty" yaml:"authorizationCode,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
OAuthFlows represents an OpenAPI OAuthFlows object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#oauthFlowsObject
type OpenAPI ¶
type OpenAPI struct { OpenAPI string `json:"openapi" yaml:"openapi"` // Required Info *Info `json:"info" yaml:"info"` // Required Servers []*Server `json:"servers,omitempty" yaml:"servers,omitempty"` Paths map[string]*PathItem `json:"paths" yaml:"paths"` // Required Components *Components `json:"components,omitempty" yaml:"components,omitempty"` Tags []*openapi.Tag `json:"tags,omitempty" yaml:"tags,omitempty"` Security []map[string][]string `json:"security,omitempty" yaml:"security,omitempty"` ExternalDocs *openapi.ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
OpenAPI is a data structure that encodes the information needed to generate an OpenAPI specification as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md
type Operation ¶
type Operation struct { Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"` Summary string `json:"summary,omitempty" yaml:"summary,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` OperationID string `json:"operationId,omitempty" yaml:"operationId,omitempty"` Parameters []*ParameterRef `json:"parameters,omitempty" yaml:"parameters,omitempty"` RequestBody *RequestBodyRef `json:"requestBody,omitempty" yaml:"requestBody,omitempty"` Responses map[string]*ResponseRef `json:"responses" yaml:"responses"` // Required Callbacks map[string]*CallbackRef `json:"callbacks,omitempty" yaml:"callbacks,omitempty"` Deprecated bool `json:"deprecated,omitempty" yaml:"deprecated,omitempty"` Security []map[string][]string `json:"security,omitempty" yaml:"security,omitempty"` Servers []*Server `json:"servers,omitempty" yaml:"servers,omitempty"` ExternalDocs *openapi.ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Operation represents an OpenAPI Operation object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#operationObject
func (Operation) MarshalJSON ¶ added in v3.5.0
MarshalJSON returns the JSON encoding of o.
func (Operation) MarshalYAML ¶ added in v3.5.0
MarshalYAML returns value which marshaled in place of the original value
type Parameter ¶
type Parameter struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` In string `json:"in,omitempty" yaml:"in,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Style string `json:"style,omitempty" yaml:"style,omitempty"` Explode *bool `json:"explode,omitempty" yaml:"explode,omitempty"` AllowEmptyValue bool `json:"allowEmptyValue,omitempty" yaml:"allowEmptyValue,omitempty"` AllowReserved bool `json:"allowReserved,omitempty" yaml:"allowReserved,omitempty"` Deprecated bool `json:"deprecated,omitempty" yaml:"deprecated,omitempty"` Required bool `json:"required,omitempty" yaml:"required,omitempty"` Schema *openapi.Schema `json:"schema,omitempty" yaml:"schema,omitempty"` Example interface{} `json:"example,omitempty" yaml:"example,omitempty"` Examples map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"` Content map[string]*MediaType `json:"content,omitempty" yaml:"content,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Parameter represents an OpenAPI Parameter object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#parameterObject
func (Parameter) MarshalJSON ¶ added in v3.5.0
MarshalJSON returns the JSON encoding of p.
func (Parameter) MarshalYAML ¶ added in v3.5.0
MarshalYAML returns value which marshaled in place of the original value
type ParameterRef ¶
ParameterRef represents an OpenAPI reference to a Parameter object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*ParameterRef) MarshalJSON ¶
func (r *ParameterRef) MarshalJSON() ([]byte, error)
func (*ParameterRef) MarshalYAML ¶
func (r *ParameterRef) MarshalYAML() (interface{}, error)
func (*ParameterRef) UnmarshalJSON ¶
func (r *ParameterRef) UnmarshalJSON(d []byte) error
func (*ParameterRef) UnmarshalYAML ¶
func (r *ParameterRef) UnmarshalYAML(u func(interface{}) error) error
type PathItem ¶
type PathItem struct { Ref string `json:"$ref,omitempty" yaml:"$ref,omitempty"` Summary string `json:"summary,omitempty" yaml:"summary,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Connect *Operation `json:"connect,omitempty" yaml:"connect,omitempty"` Delete *Operation `json:"delete,omitempty" yaml:"delete,omitempty"` Get *Operation `json:"get,omitempty" yaml:"get,omitempty"` Head *Operation `json:"head,omitempty" yaml:"head,omitempty"` Options *Operation `json:"options,omitempty" yaml:"options,omitempty"` Patch *Operation `json:"patch,omitempty" yaml:"patch,omitempty"` Post *Operation `json:"post,omitempty" yaml:"post,omitempty"` Put *Operation `json:"put,omitempty" yaml:"put,omitempty"` Trace *Operation `json:"trace,omitempty" yaml:"trace,omitempty"` Servers []*Server `json:"servers,omitempty" yaml:"servers,omitempty"` Parameters []*ParameterRef `json:"parameters,omitempty" yaml:"parameters,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
PathItem represents an OpenAPI Path Item object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#pathItemObject
func (PathItem) MarshalJSON ¶ added in v3.5.0
MarshalJSON returns the JSON encoding of p.
func (PathItem) MarshalYAML ¶ added in v3.5.0
MarshalYAML returns value which marshaled in place of the original value
type RequestBody ¶
type RequestBody struct { Description string `json:"description,omitempty" yaml:"description,omitempty"` Required bool `json:"required,omitempty" yaml:"required,omitempty"` Content map[string]*MediaType `json:"content,omitempty" yaml:"content,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
RequestBody represents an OpenAPI RequestBody object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#requestBodyObject
type RequestBodyRef ¶
type RequestBodyRef struct { Ref string Value *RequestBody }
RequestBodyRef represents an OpenAPI reference to a RequestBody object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*RequestBodyRef) MarshalJSON ¶
func (r *RequestBodyRef) MarshalJSON() ([]byte, error)
func (*RequestBodyRef) MarshalYAML ¶
func (r *RequestBodyRef) MarshalYAML() (interface{}, error)
func (*RequestBodyRef) UnmarshalJSON ¶
func (r *RequestBodyRef) UnmarshalJSON(d []byte) error
func (*RequestBodyRef) UnmarshalYAML ¶
func (r *RequestBodyRef) UnmarshalYAML(u func(interface{}) error) error
type Response ¶
type Response struct { Description *string `json:"description,omitempty" yaml:"description,omitempty"` Headers map[string]*HeaderRef `json:"headers,omitempty" yaml:"headers,omitempty"` Content map[string]*MediaType `json:"content,omitempty" yaml:"content,omitempty"` Links map[string]*LinkRef `json:"links,omitempty" yaml:"links,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
Response represents an OpenAPI Response object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#responseObject
func (Response) MarshalJSON ¶ added in v3.5.0
MarshalJSON returns the JSON encoding of r.
func (Response) MarshalYAML ¶ added in v3.5.0
MarshalYAML returns value which marshaled in place of the original value
type ResponseRef ¶
ResponseRef represents an OpenAPI reference to a Response object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*ResponseRef) MarshalJSON ¶
func (r *ResponseRef) MarshalJSON() ([]byte, error)
func (*ResponseRef) MarshalYAML ¶
func (r *ResponseRef) MarshalYAML() (interface{}, error)
func (*ResponseRef) UnmarshalJSON ¶
func (r *ResponseRef) UnmarshalJSON(d []byte) error
func (*ResponseRef) UnmarshalYAML ¶
func (r *ResponseRef) UnmarshalYAML(u func(interface{}) error) error
type SecurityScheme ¶
type SecurityScheme struct { Type string `json:"type,omitempty" yaml:"type,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Name string `json:"name,omitempty" yaml:"name,omitempty"` In string `json:"in,omitempty" yaml:"in,omitempty"` Scheme string `json:"scheme,omitempty" yaml:"scheme,omitempty"` BearerFormat string `json:"bearerFormat,omitempty" yaml:"bearerFormat,omitempty"` Flows *OAuthFlows `json:"flows,omitempty" yaml:"flows,omitempty"` Extensions map[string]interface{} `json:"-" yaml:"-"` }
SecurityScheme represents an OpenAPI SecurityScheme object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#securitySchemeObject
func (SecurityScheme) MarshalJSON ¶ added in v3.5.0
func (s SecurityScheme) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of s.
func (SecurityScheme) MarshalYAML ¶ added in v3.5.0
func (s SecurityScheme) MarshalYAML() (interface{}, error)
MarshalYAML returns value which marshaled in place of the original value
type SecuritySchemeRef ¶
type SecuritySchemeRef struct { Ref string Value *SecurityScheme }
SecuritySchemeRef represents an OpenAPI reference to a SecurityScheme object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#referenceObject
func (*SecuritySchemeRef) MarshalJSON ¶
func (r *SecuritySchemeRef) MarshalJSON() ([]byte, error)
func (*SecuritySchemeRef) MarshalYAML ¶
func (r *SecuritySchemeRef) MarshalYAML() (interface{}, error)
func (*SecuritySchemeRef) UnmarshalJSON ¶
func (r *SecuritySchemeRef) UnmarshalJSON(d []byte) error
func (*SecuritySchemeRef) UnmarshalYAML ¶
func (r *SecuritySchemeRef) UnmarshalYAML(u func(interface{}) error) error
type Server ¶
type Server struct { URL string `json:"url" yaml:"url"` Description string `json:"description,omitempty" yaml:"description,omitempty"` Variables map[string]*ServerVariable `json:"variables,omitempty" yaml:"variables,omitempty"` }
Server represents an OpenAPI Server object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#serverObject
type ServerVariable ¶
type ServerVariable struct { Enum []interface{} `json:"enum,omitempty" yaml:"enum,omitempty"` Default interface{} `json:"default,omitempty" yaml:"default,omitempty"` Description string `json:"description,omitempty" yaml:"description,omitempty"` }
ServerVariable represents an OpenAPI Server Variable object as defined in https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#serverVariableObject