Documentation

Overview

    Package openapi3 parses and writes OpenAPI 3 specifications.

    The OpenAPI 3.0 specification can be found at:

    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(c 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(c 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(c 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(c 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 (content Content) Validate(c 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(c 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 (encoding *Encoding) Validate(c 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

                                          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(c 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(c 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(c 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(c 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(c 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(c 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(c context.Context) error
                                                          type Links map[string]*LinkRef

                                                          func (Links) JSONLookup

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

                                                          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 (mediaType *MediaType) Validate(c 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(c 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(c 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 (operation *Operation) Validate(c 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 (parameter *Parameter) Validate(c 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(c 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 (parameters Parameters) Validate(c 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 (pathItem *PathItem) Validate(c 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 (paths Paths) Validate(c 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 (requestBody *RequestBody) Validate(c 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(c 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 (response *Response) Validate(c 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(c 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 (responses Responses) Validate(c 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 (schema *Schema) Validate(c 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(c 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 (security SecurityRequirement) Validate(c context.Context) error

                                                                                            type SecurityRequirements

                                                                                            type SecurityRequirements []SecurityRequirement

                                                                                            func NewSecurityRequirements

                                                                                            func NewSecurityRequirements() *SecurityRequirements

                                                                                            func (SecurityRequirements) Validate

                                                                                            func (srs SecurityRequirements) Validate(c 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 (ss *SecurityScheme) Validate(c 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(c 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 (server *Server) Validate(c 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 (serverVariable *ServerVariable) Validate(c 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 (servers Servers) Validate(c 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 Swagger

                                                                                                        type Swagger 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"`
                                                                                                        }

                                                                                                        func (*Swagger) AddOperation

                                                                                                        func (swagger *Swagger) AddOperation(path string, method string, operation *Operation)

                                                                                                        func (*Swagger) AddServer

                                                                                                        func (swagger *Swagger) AddServer(server *Server)

                                                                                                        func (*Swagger) MarshalJSON

                                                                                                        func (swagger *Swagger) MarshalJSON() ([]byte, error)

                                                                                                        func (*Swagger) UnmarshalJSON

                                                                                                        func (swagger *Swagger) UnmarshalJSON(data []byte) error

                                                                                                        func (*Swagger) Validate

                                                                                                        func (swagger *Swagger) Validate(c context.Context) error

                                                                                                        type SwaggerLoader

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

                                                                                                          SwaggerLoader helps deserialize a Swagger object

                                                                                                          Example
                                                                                                          Output:
                                                                                                          
                                                                                                          An API
                                                                                                          

                                                                                                          func NewSwaggerLoader

                                                                                                          func NewSwaggerLoader() *SwaggerLoader

                                                                                                            NewSwaggerLoader returns an empty SwaggerLoader

                                                                                                            func (*SwaggerLoader) LoadSwaggerFromData

                                                                                                            func (swaggerLoader *SwaggerLoader) LoadSwaggerFromData(data []byte) (*Swagger, error)

                                                                                                              LoadSwaggerFromData loads a spec from a byte array

                                                                                                              func (*SwaggerLoader) LoadSwaggerFromDataWithPath

                                                                                                              func (swaggerLoader *SwaggerLoader) LoadSwaggerFromDataWithPath(data []byte, path *url.URL) (*Swagger, error)

                                                                                                                LoadSwaggerFromDataWithPath takes the OpenApi spec data in bytes and a path where the resolver can find referred elements and returns a *Swagger with all resolved data or an error if unable to load data or resolve refs.

                                                                                                                func (*SwaggerLoader) LoadSwaggerFromFile

                                                                                                                func (swaggerLoader *SwaggerLoader) LoadSwaggerFromFile(path string) (*Swagger, error)

                                                                                                                  LoadSwaggerFromFile loads a spec from a local file path

                                                                                                                  func (*SwaggerLoader) LoadSwaggerFromURI

                                                                                                                  func (swaggerLoader *SwaggerLoader) LoadSwaggerFromURI(location *url.URL) (*Swagger, error)

                                                                                                                    LoadSwaggerFromURI loads a spec from a remote URL

                                                                                                                    func (*SwaggerLoader) ResolveRefsIn

                                                                                                                    func (swaggerLoader *SwaggerLoader) ResolveRefsIn(swagger *Swagger, path *url.URL) (err error)

                                                                                                                      ResolveRefsIn expands references if for instance spec was just unmarshalled

                                                                                                                      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