Documentation

Overview

    Package openapi3 parses and writes OpenAPI 3 specification documents.

    See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md

    Index

    Examples

    Constants

    View Source
    const (
    	ParameterInPath   = "path"
    	ParameterInQuery  = "query"
    	ParameterInHeader = "header"
    	ParameterInCookie = "cookie"
    )
    View Source
    const (
    	SerializationSimple         = "simple"
    	SerializationLabel          = "label"
    	SerializationMatrix         = "matrix"
    	SerializationForm           = "form"
    	SerializationSpaceDelimited = "spaceDelimited"
    	SerializationPipeDelimited  = "pipeDelimited"
    	SerializationDeepObject     = "deepObject"
    )
    View Source
    const (
    	// FormatOfStringForUUIDOfRFC4122 is an optional predefined format for UUID v1-v5 as specified by RFC4122
    	FormatOfStringForUUIDOfRFC4122 = `^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$`
    )

    Variables

    View Source
    var (
    	// SchemaErrorDetailsDisabled disables printing of details about schema errors.
    	SchemaErrorDetailsDisabled = false
    
    	//SchemaFormatValidationDisabled disables validation of schema type formats.
    	SchemaFormatValidationDisabled = false
    
    	// ErrOneOfConflict is the SchemaError Origin when data matches more than one oneOf schema
    	ErrOneOfConflict = errors.New("input matches more than one oneOf schemas")
    
    	// ErrSchemaInputNaN may be returned when validating a number
    	ErrSchemaInputNaN = errors.New("floating point NaN is not allowed")
    	// ErrSchemaInputInf may be returned when validating a number
    	ErrSchemaInputInf = errors.New("floating point Inf is not allowed")
    )
    View Source
    var IdentifierRegExp = regexp.MustCompile(identifierPattern)

      IdentifierRegExp verifies whether Component object key matches 'identifierPattern' pattern, according to OapiAPI v3.x.0. Hovever, to be able supporting legacy OpenAPI v2.x, there is a need to customize above pattern in orde not to fail converted v2-v3 validation

      View Source
      var SchemaStringFormats = make(map[string]Format, 8)

        SchemaStringFormats allows for validating strings format

        Functions

        func BoolPtr

        func BoolPtr(value bool) *bool

          BoolPtr is a helper for defining OpenAPI schemas.

          func DefineIPv4Format

          func DefineIPv4Format()

            DefineIPv4Format opts in ipv4 format validation on top of OAS 3 spec

            func DefineIPv6Format

            func DefineIPv6Format()

              DefineIPv6Format opts in ipv6 format validation on top of OAS 3 spec

              func DefineStringFormat

              func DefineStringFormat(name string, pattern string)

                DefineStringFormat Defines a new regexp pattern for a given format

                func DefineStringFormatCallback

                func DefineStringFormatCallback(name string, callback FormatCallback)

                  DefineStringFormatCallback adds a validation function for a specific schema format entry

                  func Float64Ptr

                  func Float64Ptr(value float64) *float64

                    Float64Ptr is a helper for defining OpenAPI schemas.

                    func Int64Ptr

                    func Int64Ptr(value int64) *int64

                      Int64Ptr is a helper for defining OpenAPI schemas.

                      func RegisterArrayUniqueItemsChecker

                      func RegisterArrayUniqueItemsChecker(fn SliceUniqueItemsChecker)

                        RegisterArrayUniqueItemsChecker is used to register a customized function used to check if JSON array have unique items.

                        func Uint64Ptr

                        func Uint64Ptr(value uint64) *uint64

                          Uint64Ptr is a helper for defining OpenAPI schemas.

                          func ValidateIdentifier

                          func ValidateIdentifier(value string) error

                          Types

                          type Callback

                          type Callback map[string]*PathItem

                            Callback is specified by OpenAPI/Swagger standard version 3.0.

                            func (Callback) Validate

                            func (value Callback) Validate(ctx context.Context) error

                            type CallbackRef

                            type CallbackRef struct {
                            	Ref   string
                            	Value *Callback
                            }

                            func (CallbackRef) JSONLookup

                            func (value CallbackRef) JSONLookup(token string) (interface{}, error)

                            func (*CallbackRef) MarshalJSON

                            func (value *CallbackRef) MarshalJSON() ([]byte, error)

                            func (*CallbackRef) UnmarshalJSON

                            func (value *CallbackRef) UnmarshalJSON(data []byte) error

                            func (*CallbackRef) Validate

                            func (value *CallbackRef) Validate(ctx context.Context) error

                            type Callbacks

                            type Callbacks map[string]*CallbackRef

                            func (Callbacks) JSONLookup

                            func (c Callbacks) JSONLookup(token string) (interface{}, error)

                            type Components

                            type Components struct {
                            	ExtensionProps
                            	Schemas         Schemas         `json:"schemas,omitempty" yaml:"schemas,omitempty"`
                            	Parameters      ParametersMap   `json:"parameters,omitempty" yaml:"parameters,omitempty"`
                            	Headers         Headers         `json:"headers,omitempty" yaml:"headers,omitempty"`
                            	RequestBodies   RequestBodies   `json:"requestBodies,omitempty" yaml:"requestBodies,omitempty"`
                            	Responses       Responses       `json:"responses,omitempty" yaml:"responses,omitempty"`
                            	SecuritySchemes SecuritySchemes `json:"securitySchemes,omitempty" yaml:"securitySchemes,omitempty"`
                            	Examples        Examples        `json:"examples,omitempty" yaml:"examples,omitempty"`
                            	Links           Links           `json:"links,omitempty" yaml:"links,omitempty"`
                            	Callbacks       Callbacks       `json:"callbacks,omitempty" yaml:"callbacks,omitempty"`
                            }

                              Components is specified by OpenAPI/Swagger standard version 3.0.

                              func NewComponents

                              func NewComponents() Components

                              func (*Components) MarshalJSON

                              func (components *Components) MarshalJSON() ([]byte, error)

                              func (*Components) UnmarshalJSON

                              func (components *Components) UnmarshalJSON(data []byte) error

                              func (*Components) Validate

                              func (components *Components) Validate(ctx context.Context) (err error)

                              type Contact

                              type Contact struct {
                              	ExtensionProps
                              	Name  string `json:"name,omitempty" yaml:"name,omitempty"`
                              	URL   string `json:"url,omitempty" yaml:"url,omitempty"`
                              	Email string `json:"email,omitempty" yaml:"email,omitempty"`
                              }

                                Contact is specified by OpenAPI/Swagger standard version 3.0.

                                func (*Contact) MarshalJSON

                                func (value *Contact) MarshalJSON() ([]byte, error)

                                func (*Contact) UnmarshalJSON

                                func (value *Contact) UnmarshalJSON(data []byte) error

                                func (*Contact) Validate

                                func (value *Contact) Validate(ctx context.Context) error

                                type Content

                                type Content map[string]*MediaType

                                  Content is specified by OpenAPI/Swagger 3.0 standard.

                                  func NewContent

                                  func NewContent() Content

                                  func NewContentWithFormDataSchema

                                  func NewContentWithFormDataSchema(schema *Schema) Content

                                  func NewContentWithFormDataSchemaRef

                                  func NewContentWithFormDataSchemaRef(schema *SchemaRef) Content

                                  func NewContentWithJSONSchema

                                  func NewContentWithJSONSchema(schema *Schema) Content

                                  func NewContentWithJSONSchemaRef

                                  func NewContentWithJSONSchemaRef(schema *SchemaRef) Content

                                  func NewContentWithSchema

                                  func NewContentWithSchema(schema *Schema, consumes []string) Content

                                  func NewContentWithSchemaRef

                                  func NewContentWithSchemaRef(schema *SchemaRef, consumes []string) Content

                                  func (Content) Get

                                  func (content Content) Get(mime string) *MediaType

                                  func (Content) Validate

                                  func (value Content) Validate(ctx context.Context) error

                                  type Discriminator

                                  type Discriminator struct {
                                  	ExtensionProps
                                  	PropertyName string            `json:"propertyName" yaml:"propertyName"`
                                  	Mapping      map[string]string `json:"mapping,omitempty" yaml:"mapping,omitempty"`
                                  }

                                    Discriminator is specified by OpenAPI/Swagger standard version 3.0.

                                    func (*Discriminator) MarshalJSON

                                    func (value *Discriminator) MarshalJSON() ([]byte, error)

                                    func (*Discriminator) UnmarshalJSON

                                    func (value *Discriminator) UnmarshalJSON(data []byte) error

                                    func (*Discriminator) Validate

                                    func (value *Discriminator) Validate(ctx context.Context) error

                                    type Encoding

                                    type Encoding struct {
                                    	ExtensionProps
                                    
                                    	ContentType   string  `json:"contentType,omitempty" yaml:"contentType,omitempty"`
                                    	Headers       Headers `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"`
                                    }

                                      Encoding is specified by OpenAPI/Swagger 3.0 standard.

                                      func NewEncoding

                                      func NewEncoding() *Encoding

                                      func (*Encoding) MarshalJSON

                                      func (encoding *Encoding) MarshalJSON() ([]byte, error)

                                      func (*Encoding) SerializationMethod

                                      func (encoding *Encoding) SerializationMethod() *SerializationMethod

                                        SerializationMethod returns a serialization method of request body. When serialization method is not defined the method returns the default serialization method.

                                        func (*Encoding) UnmarshalJSON

                                        func (encoding *Encoding) UnmarshalJSON(data []byte) error

                                        func (*Encoding) Validate

                                        func (value *Encoding) Validate(ctx context.Context) error

                                        func (*Encoding) WithHeader

                                        func (encoding *Encoding) WithHeader(name string, header *Header) *Encoding

                                        func (*Encoding) WithHeaderRef

                                        func (encoding *Encoding) WithHeaderRef(name string, ref *HeaderRef) *Encoding

                                        type Example

                                        type Example struct {
                                        	ExtensionProps
                                        
                                        	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"`
                                        }

                                          Example is specified by OpenAPI/Swagger 3.0 standard.

                                          func NewExample

                                          func NewExample(value interface{}) *Example

                                          func (*Example) MarshalJSON

                                          func (example *Example) MarshalJSON() ([]byte, error)

                                          func (*Example) UnmarshalJSON

                                          func (example *Example) UnmarshalJSON(data []byte) error

                                          func (*Example) Validate

                                          func (value *Example) Validate(ctx context.Context) error

                                          type ExampleRef

                                          type ExampleRef struct {
                                          	Ref   string
                                          	Value *Example
                                          }

                                          func (ExampleRef) JSONLookup

                                          func (value ExampleRef) JSONLookup(token string) (interface{}, error)

                                          func (*ExampleRef) MarshalJSON

                                          func (value *ExampleRef) MarshalJSON() ([]byte, error)

                                          func (*ExampleRef) UnmarshalJSON

                                          func (value *ExampleRef) UnmarshalJSON(data []byte) error

                                          func (*ExampleRef) Validate

                                          func (value *ExampleRef) Validate(ctx context.Context) error

                                          type Examples

                                          type Examples map[string]*ExampleRef

                                          func (Examples) JSONLookup

                                          func (e Examples) JSONLookup(token string) (interface{}, error)

                                          type ExtensionProps

                                          type ExtensionProps struct {
                                          	Extensions map[string]interface{} `json:"-" yaml:"-"`
                                          }

                                            ExtensionProps provides support for OpenAPI extensions. It reads/writes all properties that begin with "x-".

                                            func (*ExtensionProps) DecodeWith

                                            func (props *ExtensionProps) DecodeWith(decoder *jsoninfo.ObjectDecoder, value interface{}) error

                                              DecodeWith will be invoked by package "jsoninfo"

                                              Example
                                              Output:
                                              
                                              42
                                              

                                              func (*ExtensionProps) EncodeWith

                                              func (props *ExtensionProps) EncodeWith(encoder *jsoninfo.ObjectEncoder, value interface{}) error

                                                EncodeWith will be invoked by package "jsoninfo"

                                                type ExternalDocs

                                                type ExternalDocs struct {
                                                	ExtensionProps
                                                
                                                	Description string `json:"description,omitempty"`
                                                	URL         string `json:"url,omitempty"`
                                                }

                                                  ExternalDocs is specified by OpenAPI/Swagger standard version 3.0.

                                                  func (*ExternalDocs) MarshalJSON

                                                  func (e *ExternalDocs) MarshalJSON() ([]byte, error)

                                                  func (*ExternalDocs) UnmarshalJSON

                                                  func (e *ExternalDocs) UnmarshalJSON(data []byte) error

                                                  type Format

                                                  type Format struct {
                                                  	// contains filtered or unexported fields
                                                  }

                                                  type FormatCallback

                                                  type FormatCallback func(Val string) error

                                                    FormatCallback custom check on exotic formats

                                                    type Header struct {
                                                    	ExtensionProps
                                                    
                                                    	// Optional description. Should use CommonMark syntax.
                                                    	Description string      `json:"description,omitempty" yaml:"description,omitempty"`
                                                    	Deprecated  bool        `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`
                                                    	Required    bool        `json:"required,omitempty" yaml:"required,omitempty"`
                                                    	Schema      *SchemaRef  `json:"schema,omitempty" yaml:"schema,omitempty"`
                                                    	Example     interface{} `json:"example,omitempty" yaml:"example,omitempty"`
                                                    	Examples    Examples    `json:"examples,omitempty" yaml:"examples,omitempty"`
                                                    	Content     Content     `json:"content,omitempty" yaml:"content,omitempty"`
                                                    }

                                                    func (Header) JSONLookup

                                                    func (value Header) JSONLookup(token string) (interface{}, error)

                                                    func (*Header) UnmarshalJSON

                                                    func (value *Header) UnmarshalJSON(data []byte) error

                                                    func (*Header) Validate

                                                    func (value *Header) Validate(ctx context.Context) error

                                                    type HeaderRef

                                                    type HeaderRef struct {
                                                    	Ref   string
                                                    	Value *Header
                                                    }

                                                    func (HeaderRef) JSONLookup

                                                    func (value HeaderRef) JSONLookup(token string) (interface{}, error)

                                                    func (*HeaderRef) MarshalJSON

                                                    func (value *HeaderRef) MarshalJSON() ([]byte, error)

                                                    func (*HeaderRef) UnmarshalJSON

                                                    func (value *HeaderRef) UnmarshalJSON(data []byte) error

                                                    func (*HeaderRef) Validate

                                                    func (value *HeaderRef) Validate(ctx context.Context) error

                                                    type Headers

                                                    type Headers map[string]*HeaderRef

                                                    func (Headers) JSONLookup

                                                    func (h Headers) JSONLookup(token string) (interface{}, error)

                                                    type Info

                                                    type Info struct {
                                                    	ExtensionProps
                                                    	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
                                                    }

                                                      Info is specified by OpenAPI/Swagger standard version 3.0.

                                                      func (*Info) MarshalJSON

                                                      func (value *Info) MarshalJSON() ([]byte, error)

                                                      func (*Info) UnmarshalJSON

                                                      func (value *Info) UnmarshalJSON(data []byte) error

                                                      func (*Info) Validate

                                                      func (value *Info) Validate(ctx context.Context) error

                                                      type License

                                                      type License struct {
                                                      	ExtensionProps
                                                      	Name string `json:"name" yaml:"name"` // Required
                                                      	URL  string `json:"url,omitempty" yaml:"url,omitempty"`
                                                      }

                                                        License is specified by OpenAPI/Swagger standard version 3.0.

                                                        func (*License) MarshalJSON

                                                        func (value *License) MarshalJSON() ([]byte, error)

                                                        func (*License) UnmarshalJSON

                                                        func (value *License) UnmarshalJSON(data []byte) error

                                                        func (*License) Validate

                                                        func (value *License) Validate(ctx context.Context) error
                                                        type Link struct {
                                                        	ExtensionProps
                                                        	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"`
                                                        }

                                                          Link is specified by OpenAPI/Swagger standard version 3.0.

                                                          func (*Link) MarshalJSON

                                                          func (value *Link) MarshalJSON() ([]byte, error)

                                                          func (*Link) UnmarshalJSON

                                                          func (value *Link) UnmarshalJSON(data []byte) error

                                                          func (*Link) Validate

                                                          func (value *Link) Validate(ctx context.Context) error

                                                          type LinkRef

                                                          type LinkRef struct {
                                                          	Ref   string
                                                          	Value *Link
                                                          }

                                                          func (*LinkRef) MarshalJSON

                                                          func (value *LinkRef) MarshalJSON() ([]byte, error)

                                                          func (*LinkRef) UnmarshalJSON

                                                          func (value *LinkRef) UnmarshalJSON(data []byte) error

                                                          func (*LinkRef) Validate

                                                          func (value *LinkRef) Validate(ctx context.Context) error
                                                          type Links map[string]*LinkRef

                                                          func (Links) JSONLookup

                                                          func (l Links) JSONLookup(token string) (interface{}, error)

                                                          type Loader

                                                          type Loader struct {
                                                          	// IsExternalRefsAllowed enables visiting other files
                                                          	IsExternalRefsAllowed bool
                                                          
                                                          	// ReadFromURIFunc allows overriding the any file/URL reading func
                                                          	ReadFromURIFunc func(loader *Loader, url *url.URL) ([]byte, error)
                                                          
                                                          	Context context.Context
                                                          	// contains filtered or unexported fields
                                                          }

                                                            Loader helps deserialize an OpenAPIv3 document

                                                            Example
                                                            Output:
                                                            
                                                            An API
                                                            

                                                            func NewLoader

                                                            func NewLoader() *Loader

                                                              NewLoader returns an empty Loader

                                                              func (*Loader) LoadFromData

                                                              func (loader *Loader) LoadFromData(data []byte) (*T, error)

                                                                LoadFromData loads a spec from a byte array

                                                                func (*Loader) LoadFromDataWithPath

                                                                func (loader *Loader) LoadFromDataWithPath(data []byte, location *url.URL) (*T, error)

                                                                  LoadFromDataWithPath takes the OpenAPI document data in bytes and a path where the resolver can find referred elements and returns a *T with all resolved data or an error if unable to load data or resolve refs.

                                                                  func (*Loader) LoadFromFile

                                                                  func (loader *Loader) LoadFromFile(location string) (*T, error)

                                                                    LoadFromFile loads a spec from a local file path

                                                                    func (*Loader) LoadFromURI

                                                                    func (loader *Loader) LoadFromURI(location *url.URL) (*T, error)

                                                                      LoadFromURI loads a spec from a remote URL

                                                                      func (*Loader) ResolveRefsIn

                                                                      func (loader *Loader) ResolveRefsIn(doc *T, location *url.URL) (err error)

                                                                        ResolveRefsIn expands references if for instance spec was just unmarshalled

                                                                        type MediaType

                                                                        type MediaType struct {
                                                                        	ExtensionProps
                                                                        
                                                                        	Schema   *SchemaRef           `json:"schema,omitempty" yaml:"schema,omitempty"`
                                                                        	Example  interface{}          `json:"example,omitempty" yaml:"example,omitempty"`
                                                                        	Examples Examples             `json:"examples,omitempty" yaml:"examples,omitempty"`
                                                                        	Encoding map[string]*Encoding `json:"encoding,omitempty" yaml:"encoding,omitempty"`
                                                                        }

                                                                          MediaType is specified by OpenAPI/Swagger 3.0 standard.

                                                                          func NewMediaType

                                                                          func NewMediaType() *MediaType

                                                                          func (MediaType) JSONLookup

                                                                          func (mediaType MediaType) JSONLookup(token string) (interface{}, error)

                                                                          func (*MediaType) MarshalJSON

                                                                          func (mediaType *MediaType) MarshalJSON() ([]byte, error)

                                                                          func (*MediaType) UnmarshalJSON

                                                                          func (mediaType *MediaType) UnmarshalJSON(data []byte) error

                                                                          func (*MediaType) Validate

                                                                          func (value *MediaType) Validate(ctx context.Context) error

                                                                          func (*MediaType) WithEncoding

                                                                          func (mediaType *MediaType) WithEncoding(name string, enc *Encoding) *MediaType

                                                                          func (*MediaType) WithExample

                                                                          func (mediaType *MediaType) WithExample(name string, value interface{}) *MediaType

                                                                          func (*MediaType) WithSchema

                                                                          func (mediaType *MediaType) WithSchema(schema *Schema) *MediaType

                                                                          func (*MediaType) WithSchemaRef

                                                                          func (mediaType *MediaType) WithSchemaRef(schema *SchemaRef) *MediaType

                                                                          type MultiError

                                                                          type MultiError []error

                                                                            MultiError is a collection of errors, intended for when multiple issues need to be reported upstream

                                                                            func (MultiError) As

                                                                            func (me MultiError) As(target interface{}) bool

                                                                              As allows you to use `errors.As()` to set target to the first error within the multi error that matches the target type

                                                                              func (MultiError) Error

                                                                              func (me MultiError) Error() string

                                                                              func (MultiError) Is

                                                                              func (me MultiError) Is(target error) bool

                                                                                Is allows you to determine if a generic error is in fact a MultiError using `errors.Is()` It will also return true if any of the contained errors match target

                                                                                type OAuthFlow

                                                                                type OAuthFlow struct {
                                                                                	ExtensionProps
                                                                                	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"`
                                                                                }

                                                                                func (*OAuthFlow) MarshalJSON

                                                                                func (flow *OAuthFlow) MarshalJSON() ([]byte, error)

                                                                                func (*OAuthFlow) UnmarshalJSON

                                                                                func (flow *OAuthFlow) UnmarshalJSON(data []byte) error

                                                                                func (*OAuthFlow) Validate

                                                                                func (flow *OAuthFlow) Validate(ctx context.Context, typ oAuthFlowType) error

                                                                                type OAuthFlows

                                                                                type OAuthFlows struct {
                                                                                	ExtensionProps
                                                                                	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"`
                                                                                }

                                                                                func (*OAuthFlows) MarshalJSON

                                                                                func (flows *OAuthFlows) MarshalJSON() ([]byte, error)

                                                                                func (*OAuthFlows) UnmarshalJSON

                                                                                func (flows *OAuthFlows) UnmarshalJSON(data []byte) error

                                                                                func (*OAuthFlows) Validate

                                                                                func (flows *OAuthFlows) Validate(ctx context.Context) error

                                                                                type Operation

                                                                                type Operation struct {
                                                                                	ExtensionProps
                                                                                
                                                                                	// Optional tags for documentation.
                                                                                	Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`
                                                                                
                                                                                	// Optional short summary.
                                                                                	Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
                                                                                
                                                                                	// Optional description. Should use CommonMark syntax.
                                                                                	Description string `json:"description,omitempty" yaml:"description,omitempty"`
                                                                                
                                                                                	// Optional operation ID.
                                                                                	OperationID string `json:"operationId,omitempty" yaml:"operationId,omitempty"`
                                                                                
                                                                                	// Optional parameters.
                                                                                	Parameters Parameters `json:"parameters,omitempty" yaml:"parameters,omitempty"`
                                                                                
                                                                                	// Optional body parameter.
                                                                                	RequestBody *RequestBodyRef `json:"requestBody,omitempty" yaml:"requestBody,omitempty"`
                                                                                
                                                                                	// Responses.
                                                                                	Responses Responses `json:"responses" yaml:"responses"` // Required
                                                                                
                                                                                	// Optional callbacks
                                                                                	Callbacks Callbacks `json:"callbacks,omitempty" yaml:"callbacks,omitempty"`
                                                                                
                                                                                	Deprecated bool `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`
                                                                                
                                                                                	// Optional security requirements that overrides top-level security.
                                                                                	Security *SecurityRequirements `json:"security,omitempty" yaml:"security,omitempty"`
                                                                                
                                                                                	// Optional servers that overrides top-level servers.
                                                                                	Servers *Servers `json:"servers,omitempty" yaml:"servers,omitempty"`
                                                                                
                                                                                	ExternalDocs *ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
                                                                                }

                                                                                  Operation represents "operation" specified by" OpenAPI/Swagger 3.0 standard.

                                                                                  func NewOperation

                                                                                  func NewOperation() *Operation

                                                                                  func (*Operation) AddParameter

                                                                                  func (operation *Operation) AddParameter(p *Parameter)

                                                                                  func (*Operation) AddResponse

                                                                                  func (operation *Operation) AddResponse(status int, response *Response)

                                                                                  func (Operation) JSONLookup

                                                                                  func (operation Operation) JSONLookup(token string) (interface{}, error)

                                                                                  func (*Operation) MarshalJSON

                                                                                  func (operation *Operation) MarshalJSON() ([]byte, error)

                                                                                  func (*Operation) UnmarshalJSON

                                                                                  func (operation *Operation) UnmarshalJSON(data []byte) error

                                                                                  func (*Operation) Validate

                                                                                  func (value *Operation) Validate(ctx context.Context) error

                                                                                  type Parameter

                                                                                  type Parameter struct {
                                                                                  	ExtensionProps
                                                                                  	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          *SchemaRef  `json:"schema,omitempty" yaml:"schema,omitempty"`
                                                                                  	Example         interface{} `json:"example,omitempty" yaml:"example,omitempty"`
                                                                                  	Examples        Examples    `json:"examples,omitempty" yaml:"examples,omitempty"`
                                                                                  	Content         Content     `json:"content,omitempty" yaml:"content,omitempty"`
                                                                                  }

                                                                                    Parameter is specified by OpenAPI/Swagger 3.0 standard.

                                                                                    func NewCookieParameter

                                                                                    func NewCookieParameter(name string) *Parameter

                                                                                    func NewHeaderParameter

                                                                                    func NewHeaderParameter(name string) *Parameter

                                                                                    func NewPathParameter

                                                                                    func NewPathParameter(name string) *Parameter

                                                                                    func NewQueryParameter

                                                                                    func NewQueryParameter(name string) *Parameter

                                                                                    func (Parameter) JSONLookup

                                                                                    func (parameter Parameter) JSONLookup(token string) (interface{}, error)

                                                                                    func (*Parameter) MarshalJSON

                                                                                    func (parameter *Parameter) MarshalJSON() ([]byte, error)

                                                                                    func (*Parameter) SerializationMethod

                                                                                    func (parameter *Parameter) SerializationMethod() (*SerializationMethod, error)

                                                                                      SerializationMethod returns a parameter's serialization method. When a parameter's serialization method is not defined the method returns the default serialization method corresponding to a parameter's location.

                                                                                      func (*Parameter) UnmarshalJSON

                                                                                      func (parameter *Parameter) UnmarshalJSON(data []byte) error

                                                                                      func (*Parameter) Validate

                                                                                      func (value *Parameter) Validate(ctx context.Context) error

                                                                                      func (*Parameter) WithDescription

                                                                                      func (parameter *Parameter) WithDescription(value string) *Parameter

                                                                                      func (*Parameter) WithRequired

                                                                                      func (parameter *Parameter) WithRequired(value bool) *Parameter

                                                                                      func (*Parameter) WithSchema

                                                                                      func (parameter *Parameter) WithSchema(value *Schema) *Parameter

                                                                                      type ParameterRef

                                                                                      type ParameterRef struct {
                                                                                      	Ref   string
                                                                                      	Value *Parameter
                                                                                      }

                                                                                      func (ParameterRef) JSONLookup

                                                                                      func (value ParameterRef) JSONLookup(token string) (interface{}, error)

                                                                                      func (*ParameterRef) MarshalJSON

                                                                                      func (value *ParameterRef) MarshalJSON() ([]byte, error)

                                                                                      func (*ParameterRef) UnmarshalJSON

                                                                                      func (value *ParameterRef) UnmarshalJSON(data []byte) error

                                                                                      func (*ParameterRef) Validate

                                                                                      func (value *ParameterRef) Validate(ctx context.Context) error

                                                                                      type Parameters

                                                                                      type Parameters []*ParameterRef

                                                                                        Parameters is specified by OpenAPI/Swagger 3.0 standard.

                                                                                        func NewParameters

                                                                                        func NewParameters() Parameters

                                                                                        func (Parameters) GetByInAndName

                                                                                        func (parameters Parameters) GetByInAndName(in string, name string) *Parameter

                                                                                        func (Parameters) JSONLookup

                                                                                        func (p Parameters) JSONLookup(token string) (interface{}, error)

                                                                                        func (Parameters) Validate

                                                                                        func (value Parameters) Validate(ctx context.Context) error

                                                                                        type ParametersMap

                                                                                        type ParametersMap map[string]*ParameterRef

                                                                                        func (ParametersMap) JSONLookup

                                                                                        func (p ParametersMap) JSONLookup(token string) (interface{}, error)

                                                                                        type PathItem

                                                                                        type PathItem struct {
                                                                                        	ExtensionProps
                                                                                        	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     Servers    `json:"servers,omitempty" yaml:"servers,omitempty"`
                                                                                        	Parameters  Parameters `json:"parameters,omitempty" yaml:"parameters,omitempty"`
                                                                                        }

                                                                                        func (*PathItem) GetOperation

                                                                                        func (pathItem *PathItem) GetOperation(method string) *Operation

                                                                                        func (*PathItem) MarshalJSON

                                                                                        func (pathItem *PathItem) MarshalJSON() ([]byte, error)

                                                                                        func (*PathItem) Operations

                                                                                        func (pathItem *PathItem) Operations() map[string]*Operation

                                                                                        func (*PathItem) SetOperation

                                                                                        func (pathItem *PathItem) SetOperation(method string, operation *Operation)

                                                                                        func (*PathItem) UnmarshalJSON

                                                                                        func (pathItem *PathItem) UnmarshalJSON(data []byte) error

                                                                                        func (*PathItem) Validate

                                                                                        func (value *PathItem) Validate(ctx context.Context) error

                                                                                        type Paths

                                                                                        type Paths map[string]*PathItem

                                                                                          Paths is specified by OpenAPI/Swagger standard version 3.0.

                                                                                          func (Paths) Find

                                                                                          func (paths Paths) Find(key string) *PathItem

                                                                                            Find returns a path that matches the key.

                                                                                            The method ignores differences in template variable names (except possible "*" suffix).

                                                                                            For example:

                                                                                            paths := openapi3.Paths {
                                                                                              "/person/{personName}": &openapi3.PathItem{},
                                                                                            }
                                                                                            pathItem := path.Find("/person/{name}")
                                                                                            

                                                                                            would return the correct path item.

                                                                                            func (Paths) Validate

                                                                                            func (value Paths) Validate(ctx context.Context) error

                                                                                            type Ref

                                                                                            type Ref struct {
                                                                                            	Ref string `json:"$ref" yaml:"$ref"`
                                                                                            }

                                                                                              Ref is specified by OpenAPI/Swagger 3.0 standard.

                                                                                              type RequestBodies

                                                                                              type RequestBodies map[string]*RequestBodyRef

                                                                                              func (RequestBodies) JSONLookup

                                                                                              func (r RequestBodies) JSONLookup(token string) (interface{}, error)

                                                                                              type RequestBody

                                                                                              type RequestBody struct {
                                                                                              	ExtensionProps
                                                                                              	Description string  `json:"description,omitempty" yaml:"description,omitempty"`
                                                                                              	Required    bool    `json:"required,omitempty" yaml:"required,omitempty"`
                                                                                              	Content     Content `json:"content,omitempty" yaml:"content,omitempty"`
                                                                                              }

                                                                                                RequestBody is specified by OpenAPI/Swagger 3.0 standard.

                                                                                                func NewRequestBody

                                                                                                func NewRequestBody() *RequestBody

                                                                                                func (*RequestBody) GetMediaType

                                                                                                func (requestBody *RequestBody) GetMediaType(mediaType string) *MediaType

                                                                                                func (*RequestBody) MarshalJSON

                                                                                                func (requestBody *RequestBody) MarshalJSON() ([]byte, error)

                                                                                                func (*RequestBody) UnmarshalJSON

                                                                                                func (requestBody *RequestBody) UnmarshalJSON(data []byte) error

                                                                                                func (*RequestBody) Validate

                                                                                                func (value *RequestBody) Validate(ctx context.Context) error

                                                                                                func (*RequestBody) WithContent

                                                                                                func (requestBody *RequestBody) WithContent(content Content) *RequestBody

                                                                                                func (*RequestBody) WithDescription

                                                                                                func (requestBody *RequestBody) WithDescription(value string) *RequestBody

                                                                                                func (*RequestBody) WithFormDataSchema

                                                                                                func (requestBody *RequestBody) WithFormDataSchema(value *Schema) *RequestBody

                                                                                                func (*RequestBody) WithFormDataSchemaRef

                                                                                                func (requestBody *RequestBody) WithFormDataSchemaRef(value *SchemaRef) *RequestBody

                                                                                                func (*RequestBody) WithJSONSchema

                                                                                                func (requestBody *RequestBody) WithJSONSchema(value *Schema) *RequestBody

                                                                                                func (*RequestBody) WithJSONSchemaRef

                                                                                                func (requestBody *RequestBody) WithJSONSchemaRef(value *SchemaRef) *RequestBody

                                                                                                func (*RequestBody) WithRequired

                                                                                                func (requestBody *RequestBody) WithRequired(value bool) *RequestBody

                                                                                                func (*RequestBody) WithSchema

                                                                                                func (requestBody *RequestBody) WithSchema(value *Schema, consumes []string) *RequestBody

                                                                                                func (*RequestBody) WithSchemaRef

                                                                                                func (requestBody *RequestBody) WithSchemaRef(value *SchemaRef, consumes []string) *RequestBody

                                                                                                type RequestBodyRef

                                                                                                type RequestBodyRef struct {
                                                                                                	Ref   string
                                                                                                	Value *RequestBody
                                                                                                }

                                                                                                func (RequestBodyRef) JSONLookup

                                                                                                func (value RequestBodyRef) JSONLookup(token string) (interface{}, error)

                                                                                                func (*RequestBodyRef) MarshalJSON

                                                                                                func (value *RequestBodyRef) MarshalJSON() ([]byte, error)

                                                                                                func (*RequestBodyRef) UnmarshalJSON

                                                                                                func (value *RequestBodyRef) UnmarshalJSON(data []byte) error

                                                                                                func (*RequestBodyRef) Validate

                                                                                                func (value *RequestBodyRef) Validate(ctx context.Context) error

                                                                                                type Response

                                                                                                type Response struct {
                                                                                                	ExtensionProps
                                                                                                	Description *string `json:"description,omitempty" yaml:"description,omitempty"`
                                                                                                	Headers     Headers `json:"headers,omitempty" yaml:"headers,omitempty"`
                                                                                                	Content     Content `json:"content,omitempty" yaml:"content,omitempty"`
                                                                                                	Links       Links   `json:"links,omitempty" yaml:"links,omitempty"`
                                                                                                }

                                                                                                  Response is specified by OpenAPI/Swagger 3.0 standard.

                                                                                                  func NewResponse

                                                                                                  func NewResponse() *Response

                                                                                                  func (*Response) MarshalJSON

                                                                                                  func (response *Response) MarshalJSON() ([]byte, error)

                                                                                                  func (*Response) UnmarshalJSON

                                                                                                  func (response *Response) UnmarshalJSON(data []byte) error

                                                                                                  func (*Response) Validate

                                                                                                  func (value *Response) Validate(ctx context.Context) error

                                                                                                  func (*Response) WithContent

                                                                                                  func (response *Response) WithContent(content Content) *Response

                                                                                                  func (*Response) WithDescription

                                                                                                  func (response *Response) WithDescription(value string) *Response

                                                                                                  func (*Response) WithJSONSchema

                                                                                                  func (response *Response) WithJSONSchema(schema *Schema) *Response

                                                                                                  func (*Response) WithJSONSchemaRef

                                                                                                  func (response *Response) WithJSONSchemaRef(schema *SchemaRef) *Response

                                                                                                  type ResponseRef

                                                                                                  type ResponseRef struct {
                                                                                                  	Ref   string
                                                                                                  	Value *Response
                                                                                                  }

                                                                                                  func (ResponseRef) JSONLookup

                                                                                                  func (value ResponseRef) JSONLookup(token string) (interface{}, error)

                                                                                                  func (*ResponseRef) MarshalJSON

                                                                                                  func (value *ResponseRef) MarshalJSON() ([]byte, error)

                                                                                                  func (*ResponseRef) UnmarshalJSON

                                                                                                  func (value *ResponseRef) UnmarshalJSON(data []byte) error

                                                                                                  func (*ResponseRef) Validate

                                                                                                  func (value *ResponseRef) Validate(ctx context.Context) error

                                                                                                  type Responses

                                                                                                  type Responses map[string]*ResponseRef

                                                                                                    Responses is specified by OpenAPI/Swagger 3.0 standard.

                                                                                                    func NewResponses

                                                                                                    func NewResponses() Responses

                                                                                                    func (Responses) Default

                                                                                                    func (responses Responses) Default() *ResponseRef

                                                                                                    func (Responses) Get

                                                                                                    func (responses Responses) Get(status int) *ResponseRef

                                                                                                    func (Responses) JSONLookup

                                                                                                    func (responses Responses) JSONLookup(token string) (interface{}, error)

                                                                                                    func (Responses) Validate

                                                                                                    func (value Responses) Validate(ctx context.Context) error

                                                                                                    type Schema

                                                                                                    type Schema struct {
                                                                                                    	ExtensionProps
                                                                                                    
                                                                                                    	OneOf        SchemaRefs    `json:"oneOf,omitempty" yaml:"oneOf,omitempty"`
                                                                                                    	AnyOf        SchemaRefs    `json:"anyOf,omitempty" yaml:"anyOf,omitempty"`
                                                                                                    	AllOf        SchemaRefs    `json:"allOf,omitempty" yaml:"allOf,omitempty"`
                                                                                                    	Not          *SchemaRef    `json:"not,omitempty" yaml:"not,omitempty"`
                                                                                                    	Type         string        `json:"type,omitempty" yaml:"type,omitempty"`
                                                                                                    	Title        string        `json:"title,omitempty" yaml:"title,omitempty"`
                                                                                                    	Format       string        `json:"format,omitempty" yaml:"format,omitempty"`
                                                                                                    	Description  string        `json:"description,omitempty" yaml:"description,omitempty"`
                                                                                                    	Enum         []interface{} `json:"enum,omitempty" yaml:"enum,omitempty"`
                                                                                                    	Default      interface{}   `json:"default,omitempty" yaml:"default,omitempty"`
                                                                                                    	Example      interface{}   `json:"example,omitempty" yaml:"example,omitempty"`
                                                                                                    	ExternalDocs *ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
                                                                                                    
                                                                                                    	// Object-related, here for struct compactness
                                                                                                    	AdditionalPropertiesAllowed *bool `json:"-" multijson:"additionalProperties,omitempty" yaml:"-"`
                                                                                                    	// Array-related, here for struct compactness
                                                                                                    	UniqueItems bool `json:"uniqueItems,omitempty" yaml:"uniqueItems,omitempty"`
                                                                                                    	// Number-related, here for struct compactness
                                                                                                    	ExclusiveMin bool `json:"exclusiveMinimum,omitempty" yaml:"exclusiveMinimum,omitempty"`
                                                                                                    	ExclusiveMax bool `json:"exclusiveMaximum,omitempty" yaml:"exclusiveMaximum,omitempty"`
                                                                                                    	// Properties
                                                                                                    	Nullable        bool        `json:"nullable,omitempty" yaml:"nullable,omitempty"`
                                                                                                    	ReadOnly        bool        `json:"readOnly,omitempty" yaml:"readOnly,omitempty"`
                                                                                                    	WriteOnly       bool        `json:"writeOnly,omitempty" yaml:"writeOnly,omitempty"`
                                                                                                    	AllowEmptyValue bool        `json:"allowEmptyValue,omitempty" yaml:"allowEmptyValue,omitempty"`
                                                                                                    	XML             interface{} `json:"xml,omitempty" yaml:"xml,omitempty"`
                                                                                                    	Deprecated      bool        `json:"deprecated,omitempty" yaml:"deprecated,omitempty"`
                                                                                                    
                                                                                                    	// Number
                                                                                                    	Min        *float64 `json:"minimum,omitempty" yaml:"minimum,omitempty"`
                                                                                                    	Max        *float64 `json:"maximum,omitempty" yaml:"maximum,omitempty"`
                                                                                                    	MultipleOf *float64 `json:"multipleOf,omitempty" yaml:"multipleOf,omitempty"`
                                                                                                    
                                                                                                    	// String
                                                                                                    	MinLength uint64  `json:"minLength,omitempty" yaml:"minLength,omitempty"`
                                                                                                    	MaxLength *uint64 `json:"maxLength,omitempty" yaml:"maxLength,omitempty"`
                                                                                                    	Pattern   string  `json:"pattern,omitempty" yaml:"pattern,omitempty"`
                                                                                                    
                                                                                                    	// Array
                                                                                                    	MinItems uint64     `json:"minItems,omitempty" yaml:"minItems,omitempty"`
                                                                                                    	MaxItems *uint64    `json:"maxItems,omitempty" yaml:"maxItems,omitempty"`
                                                                                                    	Items    *SchemaRef `json:"items,omitempty" yaml:"items,omitempty"`
                                                                                                    
                                                                                                    	// Object
                                                                                                    	Required             []string       `json:"required,omitempty" yaml:"required,omitempty"`
                                                                                                    	Properties           Schemas        `json:"properties,omitempty" yaml:"properties,omitempty"`
                                                                                                    	MinProps             uint64         `json:"minProperties,omitempty" yaml:"minProperties,omitempty"`
                                                                                                    	MaxProps             *uint64        `json:"maxProperties,omitempty" yaml:"maxProperties,omitempty"`
                                                                                                    	AdditionalProperties *SchemaRef     `json:"-" multijson:"additionalProperties,omitempty" yaml:"-"`
                                                                                                    	Discriminator        *Discriminator `json:"discriminator,omitempty" yaml:"discriminator,omitempty"`
                                                                                                    	// contains filtered or unexported fields
                                                                                                    }

                                                                                                      Schema is specified by OpenAPI/Swagger 3.0 standard.

                                                                                                      func NewAllOfSchema

                                                                                                      func NewAllOfSchema(schemas ...*Schema) *Schema

                                                                                                      func NewAnyOfSchema

                                                                                                      func NewAnyOfSchema(schemas ...*Schema) *Schema

                                                                                                      func NewArraySchema

                                                                                                      func NewArraySchema() *Schema

                                                                                                      func NewBoolSchema

                                                                                                      func NewBoolSchema() *Schema

                                                                                                      func NewBytesSchema

                                                                                                      func NewBytesSchema() *Schema

                                                                                                      func NewDateTimeSchema

                                                                                                      func NewDateTimeSchema() *Schema

                                                                                                      func NewFloat64Schema

                                                                                                      func NewFloat64Schema() *Schema

                                                                                                      func NewInt32Schema

                                                                                                      func NewInt32Schema() *Schema

                                                                                                      func NewInt64Schema

                                                                                                      func NewInt64Schema() *Schema

                                                                                                      func NewIntegerSchema

                                                                                                      func NewIntegerSchema() *Schema

                                                                                                      func NewObjectSchema

                                                                                                      func NewObjectSchema() *Schema

                                                                                                      func NewOneOfSchema

                                                                                                      func NewOneOfSchema(schemas ...*Schema) *Schema

                                                                                                      func NewSchema

                                                                                                      func NewSchema() *Schema

                                                                                                      func NewStringSchema

                                                                                                      func NewStringSchema() *Schema

                                                                                                      func NewUUIDSchema

                                                                                                      func NewUUIDSchema() *Schema

                                                                                                      func (*Schema) IsEmpty

                                                                                                      func (schema *Schema) IsEmpty() bool

                                                                                                      func (*Schema) IsMatching

                                                                                                      func (schema *Schema) IsMatching(value interface{}) bool

                                                                                                      func (*Schema) IsMatchingJSONArray

                                                                                                      func (schema *Schema) IsMatchingJSONArray(value []interface{}) bool

                                                                                                      func (*Schema) IsMatchingJSONBoolean

                                                                                                      func (schema *Schema) IsMatchingJSONBoolean(value bool) bool

                                                                                                      func (*Schema) IsMatchingJSONNumber

                                                                                                      func (schema *Schema) IsMatchingJSONNumber(value float64) bool

                                                                                                      func (*Schema) IsMatchingJSONObject

                                                                                                      func (schema *Schema) IsMatchingJSONObject(value map[string]interface{}) bool

                                                                                                      func (*Schema) IsMatchingJSONString

                                                                                                      func (schema *Schema) IsMatchingJSONString(value string) bool

                                                                                                      func (Schema) JSONLookup

                                                                                                      func (schema Schema) JSONLookup(token string) (interface{}, error)

                                                                                                      func (*Schema) MarshalJSON

                                                                                                      func (schema *Schema) MarshalJSON() ([]byte, error)

                                                                                                      func (*Schema) NewRef

                                                                                                      func (schema *Schema) NewRef() *SchemaRef

                                                                                                      func (*Schema) UnmarshalJSON

                                                                                                      func (schema *Schema) UnmarshalJSON(data []byte) error

                                                                                                      func (*Schema) Validate

                                                                                                      func (value *Schema) Validate(ctx context.Context) error

                                                                                                      func (*Schema) VisitJSON

                                                                                                      func (schema *Schema) VisitJSON(value interface{}, opts ...SchemaValidationOption) error

                                                                                                      func (*Schema) VisitJSONArray

                                                                                                      func (schema *Schema) VisitJSONArray(value []interface{}) error

                                                                                                      func (*Schema) VisitJSONBoolean

                                                                                                      func (schema *Schema) VisitJSONBoolean(value bool) error

                                                                                                      func (*Schema) VisitJSONNumber

                                                                                                      func (schema *Schema) VisitJSONNumber(value float64) error

                                                                                                      func (*Schema) VisitJSONObject

                                                                                                      func (schema *Schema) VisitJSONObject(value map[string]interface{}) error

                                                                                                      func (*Schema) VisitJSONString

                                                                                                      func (schema *Schema) VisitJSONString(value string) error

                                                                                                      func (*Schema) WithAdditionalProperties

                                                                                                      func (schema *Schema) WithAdditionalProperties(v *Schema) *Schema

                                                                                                      func (*Schema) WithAnyAdditionalProperties

                                                                                                      func (schema *Schema) WithAnyAdditionalProperties() *Schema

                                                                                                      func (*Schema) WithDefault

                                                                                                      func (schema *Schema) WithDefault(defaultValue interface{}) *Schema

                                                                                                      func (*Schema) WithEnum

                                                                                                      func (schema *Schema) WithEnum(values ...interface{}) *Schema

                                                                                                      func (*Schema) WithExclusiveMax

                                                                                                      func (schema *Schema) WithExclusiveMax(value bool) *Schema

                                                                                                      func (*Schema) WithExclusiveMin

                                                                                                      func (schema *Schema) WithExclusiveMin(value bool) *Schema

                                                                                                      func (*Schema) WithFormat

                                                                                                      func (schema *Schema) WithFormat(value string) *Schema

                                                                                                      func (*Schema) WithItems

                                                                                                      func (schema *Schema) WithItems(value *Schema) *Schema

                                                                                                      func (*Schema) WithLength

                                                                                                      func (schema *Schema) WithLength(i int64) *Schema

                                                                                                      func (*Schema) WithLengthDecodedBase64

                                                                                                      func (schema *Schema) WithLengthDecodedBase64(i int64) *Schema

                                                                                                      func (*Schema) WithMax

                                                                                                      func (schema *Schema) WithMax(value float64) *Schema

                                                                                                      func (*Schema) WithMaxItems

                                                                                                      func (schema *Schema) WithMaxItems(i int64) *Schema

                                                                                                      func (*Schema) WithMaxLength

                                                                                                      func (schema *Schema) WithMaxLength(i int64) *Schema

                                                                                                      func (*Schema) WithMaxLengthDecodedBase64

                                                                                                      func (schema *Schema) WithMaxLengthDecodedBase64(i int64) *Schema

                                                                                                      func (*Schema) WithMaxProperties

                                                                                                      func (schema *Schema) WithMaxProperties(i int64) *Schema

                                                                                                      func (*Schema) WithMin

                                                                                                      func (schema *Schema) WithMin(value float64) *Schema

                                                                                                      func (*Schema) WithMinItems

                                                                                                      func (schema *Schema) WithMinItems(i int64) *Schema

                                                                                                      func (*Schema) WithMinLength

                                                                                                      func (schema *Schema) WithMinLength(i int64) *Schema

                                                                                                      func (*Schema) WithMinLengthDecodedBase64

                                                                                                      func (schema *Schema) WithMinLengthDecodedBase64(i int64) *Schema

                                                                                                      func (*Schema) WithMinProperties

                                                                                                      func (schema *Schema) WithMinProperties(i int64) *Schema

                                                                                                      func (*Schema) WithNullable

                                                                                                      func (schema *Schema) WithNullable() *Schema

                                                                                                      func (*Schema) WithPattern

                                                                                                      func (schema *Schema) WithPattern(pattern string) *Schema

                                                                                                      func (*Schema) WithProperties

                                                                                                      func (schema *Schema) WithProperties(properties map[string]*Schema) *Schema

                                                                                                      func (*Schema) WithProperty

                                                                                                      func (schema *Schema) WithProperty(name string, propertySchema *Schema) *Schema

                                                                                                      func (*Schema) WithPropertyRef

                                                                                                      func (schema *Schema) WithPropertyRef(name string, ref *SchemaRef) *Schema

                                                                                                      func (*Schema) WithUniqueItems

                                                                                                      func (schema *Schema) WithUniqueItems(unique bool) *Schema

                                                                                                      type SchemaError

                                                                                                      type SchemaError struct {
                                                                                                      	Value interface{}
                                                                                                      
                                                                                                      	Schema      *Schema
                                                                                                      	SchemaField string
                                                                                                      	Reason      string
                                                                                                      	Origin      error
                                                                                                      	// contains filtered or unexported fields
                                                                                                      }

                                                                                                      func (*SchemaError) Error

                                                                                                      func (err *SchemaError) Error() string

                                                                                                      func (*SchemaError) JSONPointer

                                                                                                      func (err *SchemaError) JSONPointer() []string

                                                                                                      type SchemaRef

                                                                                                      type SchemaRef struct {
                                                                                                      	Ref   string
                                                                                                      	Value *Schema
                                                                                                      }

                                                                                                      func NewSchemaRef

                                                                                                      func NewSchemaRef(ref string, value *Schema) *SchemaRef

                                                                                                      func (SchemaRef) JSONLookup

                                                                                                      func (value SchemaRef) JSONLookup(token string) (interface{}, error)

                                                                                                      func (*SchemaRef) MarshalJSON

                                                                                                      func (value *SchemaRef) MarshalJSON() ([]byte, error)

                                                                                                      func (*SchemaRef) UnmarshalJSON

                                                                                                      func (value *SchemaRef) UnmarshalJSON(data []byte) error

                                                                                                      func (*SchemaRef) Validate

                                                                                                      func (value *SchemaRef) Validate(ctx context.Context) error

                                                                                                      type SchemaRefs

                                                                                                      type SchemaRefs []*SchemaRef

                                                                                                      func (SchemaRefs) JSONLookup

                                                                                                      func (s SchemaRefs) JSONLookup(token string) (interface{}, error)

                                                                                                      type SchemaValidationOption

                                                                                                      type SchemaValidationOption func(*schemaValidationSettings)

                                                                                                        SchemaValidationOption describes options a user has when validating request / response bodies.

                                                                                                        func FailFast

                                                                                                        func FailFast() SchemaValidationOption

                                                                                                          FailFast returns schema validation errors quicker.

                                                                                                          func MultiErrors

                                                                                                          func MultiErrors() SchemaValidationOption

                                                                                                          func VisitAsRequest

                                                                                                          func VisitAsRequest() SchemaValidationOption

                                                                                                          func VisitAsResponse

                                                                                                          func VisitAsResponse() SchemaValidationOption

                                                                                                          type Schemas

                                                                                                          type Schemas map[string]*SchemaRef

                                                                                                          func (Schemas) JSONLookup

                                                                                                          func (s Schemas) JSONLookup(token string) (interface{}, error)

                                                                                                          type SecurityRequirement

                                                                                                          type SecurityRequirement map[string][]string

                                                                                                          func NewSecurityRequirement

                                                                                                          func NewSecurityRequirement() SecurityRequirement

                                                                                                          func (SecurityRequirement) Authenticate

                                                                                                          func (security SecurityRequirement) Authenticate(provider string, scopes ...string) SecurityRequirement

                                                                                                          func (SecurityRequirement) Validate

                                                                                                          func (value SecurityRequirement) Validate(ctx context.Context) error

                                                                                                          type SecurityRequirements

                                                                                                          type SecurityRequirements []SecurityRequirement

                                                                                                          func NewSecurityRequirements

                                                                                                          func NewSecurityRequirements() *SecurityRequirements

                                                                                                          func (SecurityRequirements) Validate

                                                                                                          func (value SecurityRequirements) Validate(ctx context.Context) error

                                                                                                          func (*SecurityRequirements) With

                                                                                                          func (srs *SecurityRequirements) With(securityRequirement SecurityRequirement) *SecurityRequirements

                                                                                                          type SecurityScheme

                                                                                                          type SecurityScheme struct {
                                                                                                          	ExtensionProps
                                                                                                          
                                                                                                          	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"`
                                                                                                          	OpenIdConnectUrl string      `json:"openIdConnectUrl,omitempty" yaml:"openIdConnectUrl,omitempty"`
                                                                                                          }

                                                                                                          func NewCSRFSecurityScheme

                                                                                                          func NewCSRFSecurityScheme() *SecurityScheme

                                                                                                          func NewJWTSecurityScheme

                                                                                                          func NewJWTSecurityScheme() *SecurityScheme

                                                                                                          func NewOIDCSecurityScheme

                                                                                                          func NewOIDCSecurityScheme(oidcUrl string) *SecurityScheme

                                                                                                          func NewSecurityScheme

                                                                                                          func NewSecurityScheme() *SecurityScheme

                                                                                                          func (*SecurityScheme) MarshalJSON

                                                                                                          func (ss *SecurityScheme) MarshalJSON() ([]byte, error)

                                                                                                          func (*SecurityScheme) UnmarshalJSON

                                                                                                          func (ss *SecurityScheme) UnmarshalJSON(data []byte) error

                                                                                                          func (*SecurityScheme) Validate

                                                                                                          func (value *SecurityScheme) Validate(ctx context.Context) error

                                                                                                          func (*SecurityScheme) WithBearerFormat

                                                                                                          func (ss *SecurityScheme) WithBearerFormat(value string) *SecurityScheme

                                                                                                          func (*SecurityScheme) WithDescription

                                                                                                          func (ss *SecurityScheme) WithDescription(value string) *SecurityScheme

                                                                                                          func (*SecurityScheme) WithIn

                                                                                                          func (ss *SecurityScheme) WithIn(value string) *SecurityScheme

                                                                                                          func (*SecurityScheme) WithName

                                                                                                          func (ss *SecurityScheme) WithName(value string) *SecurityScheme

                                                                                                          func (*SecurityScheme) WithScheme

                                                                                                          func (ss *SecurityScheme) WithScheme(value string) *SecurityScheme

                                                                                                          func (*SecurityScheme) WithType

                                                                                                          func (ss *SecurityScheme) WithType(value string) *SecurityScheme

                                                                                                          type SecuritySchemeRef

                                                                                                          type SecuritySchemeRef struct {
                                                                                                          	Ref   string
                                                                                                          	Value *SecurityScheme
                                                                                                          }

                                                                                                          func (SecuritySchemeRef) JSONLookup

                                                                                                          func (value SecuritySchemeRef) JSONLookup(token string) (interface{}, error)

                                                                                                          func (*SecuritySchemeRef) MarshalJSON

                                                                                                          func (value *SecuritySchemeRef) MarshalJSON() ([]byte, error)

                                                                                                          func (*SecuritySchemeRef) UnmarshalJSON

                                                                                                          func (value *SecuritySchemeRef) UnmarshalJSON(data []byte) error

                                                                                                          func (*SecuritySchemeRef) Validate

                                                                                                          func (value *SecuritySchemeRef) Validate(ctx context.Context) error

                                                                                                          type SecuritySchemes

                                                                                                          type SecuritySchemes map[string]*SecuritySchemeRef

                                                                                                          func (SecuritySchemes) JSONLookup

                                                                                                          func (s SecuritySchemes) JSONLookup(token string) (interface{}, error)

                                                                                                          type SerializationMethod

                                                                                                          type SerializationMethod struct {
                                                                                                          	Style   string
                                                                                                          	Explode bool
                                                                                                          }

                                                                                                            SerializationMethod describes a serialization method of HTTP request's parameters and body.

                                                                                                            type Server

                                                                                                            type Server struct {
                                                                                                            	ExtensionProps
                                                                                                            	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 is specified by OpenAPI/Swagger standard version 3.0.

                                                                                                              func (*Server) MarshalJSON

                                                                                                              func (server *Server) MarshalJSON() ([]byte, error)

                                                                                                              func (Server) MatchRawURL

                                                                                                              func (server Server) MatchRawURL(input string) ([]string, string, bool)

                                                                                                              func (Server) ParameterNames

                                                                                                              func (server Server) ParameterNames() ([]string, error)

                                                                                                              func (*Server) UnmarshalJSON

                                                                                                              func (server *Server) UnmarshalJSON(data []byte) error

                                                                                                              func (*Server) Validate

                                                                                                              func (value *Server) Validate(ctx context.Context) (err error)

                                                                                                              type ServerVariable

                                                                                                              type ServerVariable struct {
                                                                                                              	ExtensionProps
                                                                                                              	Enum        []string `json:"enum,omitempty" yaml:"enum,omitempty"`
                                                                                                              	Default     string   `json:"default,omitempty" yaml:"default,omitempty"`
                                                                                                              	Description string   `json:"description,omitempty" yaml:"description,omitempty"`
                                                                                                              }

                                                                                                                ServerVariable is specified by OpenAPI/Swagger standard version 3.0.

                                                                                                                func (*ServerVariable) MarshalJSON

                                                                                                                func (serverVariable *ServerVariable) MarshalJSON() ([]byte, error)

                                                                                                                func (*ServerVariable) UnmarshalJSON

                                                                                                                func (serverVariable *ServerVariable) UnmarshalJSON(data []byte) error

                                                                                                                func (*ServerVariable) Validate

                                                                                                                func (value *ServerVariable) Validate(ctx context.Context) error

                                                                                                                type Servers

                                                                                                                type Servers []*Server

                                                                                                                  Servers is specified by OpenAPI/Swagger standard version 3.0.

                                                                                                                  func (Servers) MatchURL

                                                                                                                  func (servers Servers) MatchURL(parsedURL *url.URL) (*Server, []string, string)

                                                                                                                  func (Servers) Validate

                                                                                                                  func (value Servers) Validate(ctx context.Context) error

                                                                                                                    Validate ensures servers are per the OpenAPIv3 specification.

                                                                                                                    type SliceUniqueItemsChecker

                                                                                                                    type SliceUniqueItemsChecker func(items []interface{}) bool

                                                                                                                      SliceUniqueItemsChecker is an function used to check if an given slice have unique items.

                                                                                                                      type T

                                                                                                                      type T struct {
                                                                                                                      	ExtensionProps
                                                                                                                      	OpenAPI      string               `json:"openapi" yaml:"openapi"` // Required
                                                                                                                      	Components   Components           `json:"components,omitempty" yaml:"components,omitempty"`
                                                                                                                      	Info         *Info                `json:"info" yaml:"info"`   // Required
                                                                                                                      	Paths        Paths                `json:"paths" yaml:"paths"` // Required
                                                                                                                      	Security     SecurityRequirements `json:"security,omitempty" yaml:"security,omitempty"`
                                                                                                                      	Servers      Servers              `json:"servers,omitempty" yaml:"servers,omitempty"`
                                                                                                                      	Tags         Tags                 `json:"tags,omitempty" yaml:"tags,omitempty"`
                                                                                                                      	ExternalDocs *ExternalDocs        `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
                                                                                                                      }

                                                                                                                        T is the root of an OpenAPI v3 document

                                                                                                                        func (*T) AddOperation

                                                                                                                        func (doc *T) AddOperation(path string, method string, operation *Operation)

                                                                                                                        func (*T) AddServer

                                                                                                                        func (doc *T) AddServer(server *Server)

                                                                                                                        func (*T) MarshalJSON

                                                                                                                        func (doc *T) MarshalJSON() ([]byte, error)

                                                                                                                        func (*T) UnmarshalJSON

                                                                                                                        func (doc *T) UnmarshalJSON(data []byte) error

                                                                                                                        func (*T) Validate

                                                                                                                        func (value *T) Validate(ctx context.Context) error

                                                                                                                        type Tag

                                                                                                                        type Tag struct {
                                                                                                                        	ExtensionProps
                                                                                                                        	Name         string        `json:"name,omitempty" yaml:"name,omitempty"`
                                                                                                                        	Description  string        `json:"description,omitempty" yaml:"description,omitempty"`
                                                                                                                        	ExternalDocs *ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
                                                                                                                        }

                                                                                                                          Tag is specified by OpenAPI/Swagger 3.0 standard.

                                                                                                                          func (*Tag) MarshalJSON

                                                                                                                          func (t *Tag) MarshalJSON() ([]byte, error)

                                                                                                                          func (*Tag) UnmarshalJSON

                                                                                                                          func (t *Tag) UnmarshalJSON(data []byte) error

                                                                                                                          type Tags

                                                                                                                          type Tags []*Tag

                                                                                                                            Tags is specified by OpenAPI/Swagger 3.0 standard.

                                                                                                                            func (Tags) Get

                                                                                                                            func (tags Tags) Get(name string) *Tag