spec package - github.com/go-openapi/spec - Go Packages (original) (raw)
- Constants
- Variables
- func ExpandParameter(parameter *Parameter, basePath string) error
- func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error
- func ExpandResponse(response *Response, basePath string) error
- func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error
- func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error
- func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error
- func ExpandSpec(spec *Swagger, options *ExpandOptions) error
- type CommonValidations
- func (v *CommonValidations) ClearArrayValidations(cbs ...func(string, interface{}))
- func (v *CommonValidations) ClearNumberValidations(cbs ...func(string, interface{}))
- func (v *CommonValidations) ClearStringValidations(cbs ...func(string, interface{}))
- func (v CommonValidations) HasArrayValidations() bool
- func (v CommonValidations) HasEnum() bool
- func (v CommonValidations) HasNumberValidations() bool
- func (v CommonValidations) HasStringValidations() bool
- func (v *CommonValidations) SetValidations(val SchemaValidations)
- func (v CommonValidations) Validations() SchemaValidations
- type ContactInfo
- type ContactInfoProps
- type Definitions
- type Dependencies
- type ExpandOptions
- type Extensions
- type ExternalDocumentation
- type Header
- func (h *Header) AllowDuplicates() *Header
- func (h *Header) CollectionOf(items *Items, format string) *Header
- func (h Header) JSONLookup(token string) (interface{}, error)
- func (h Header) MarshalJSON() ([]byte, error)
- func (h *Header) Typed(tpe, format string) *Header
- func (h *Header) UniqueValues() *Header
- func (h *Header) UnmarshalJSON(data []byte) error
- func (h *Header) WithDefault(defaultValue interface{}) *Header
- func (h *Header) WithDescription(description string) *Header
- func (h *Header) WithEnum(values ...interface{}) *Header
- func (h *Header) WithMaxItems(size int64) *Header
- func (h *Header) WithMaxLength(max int64) *Header
- func (h *Header) WithMaximum(max float64, exclusive bool) *Header
- func (h *Header) WithMinItems(size int64) *Header
- func (h *Header) WithMinLength(min int64) *Header
- func (h *Header) WithMinimum(min float64, exclusive bool) *Header
- func (h *Header) WithMultipleOf(number float64) *Header
- func (h *Header) WithPattern(pattern string) *Header
- func (h *Header) WithValidations(val CommonValidations) *Header
- type HeaderProps
- type Info
- type InfoProps
- type Items
- func (i *Items) AllowDuplicates() *Items
- func (i *Items) AsNullable() *Items
- func (i *Items) CollectionOf(items *Items, format string) *Items
- func (i Items) JSONLookup(token string) (interface{}, error)
- func (i Items) MarshalJSON() ([]byte, error)
- func (i *Items) Typed(tpe, format string) *Items
- func (i *Items) UniqueValues() *Items
- func (i *Items) UnmarshalJSON(data []byte) error
- func (i *Items) WithDefault(defaultValue interface{}) *Items
- func (i *Items) WithEnum(values ...interface{}) *Items
- func (i *Items) WithMaxItems(size int64) *Items
- func (i *Items) WithMaxLength(max int64) *Items
- func (i *Items) WithMaximum(max float64, exclusive bool) *Items
- func (i *Items) WithMinItems(size int64) *Items
- func (i *Items) WithMinLength(min int64) *Items
- func (i *Items) WithMinimum(min float64, exclusive bool) *Items
- func (i *Items) WithMultipleOf(number float64) *Items
- func (i *Items) WithPattern(pattern string) *Items
- func (i *Items) WithValidations(val CommonValidations) *Items
- type License
- type LicenseProps
- type Operation
- func (o *Operation) AddParam(param *Parameter) *Operation
- func (o *Operation) Deprecate() *Operation
- func (o *Operation) GobDecode(b []byte) error
- func (o Operation) GobEncode() ([]byte, error)
- func (o Operation) JSONLookup(token string) (interface{}, error)
- func (o Operation) MarshalJSON() ([]byte, error)
- func (o *Operation) RemoveParam(name, in string) *Operation
- func (o *Operation) RespondsWith(code int, response *Response) *Operation
- func (o *Operation) SecuredWith(name string, scopes ...string) *Operation
- func (o *Operation) SuccessResponse() (*Response, int, bool)
- func (o *Operation) Undeprecate() *Operation
- func (o *Operation) UnmarshalJSON(data []byte) error
- func (o *Operation) WithConsumes(mediaTypes ...string) *Operation
- func (o *Operation) WithDefaultResponse(response *Response) *Operation
- func (o *Operation) WithDescription(description string) *Operation
- func (o *Operation) WithExternalDocs(description, url string) *Operation
- func (o *Operation) WithID(id string) *Operation
- func (o *Operation) WithProduces(mediaTypes ...string) *Operation
- func (o *Operation) WithSummary(summary string) *Operation
- func (o *Operation) WithTags(tags ...string) *Operation
- type OperationProps
- type OrderSchemaItem
- type OrderSchemaItems
- type ParamProps
- type Parameter
- func BodyParam(name string, schema *Schema) *Parameter
- func FileParam(name string) *Parameter
- func FormDataParam(name string) *Parameter
- func HeaderParam(name string) *Parameter
- func ParamRef(uri string) *Parameter
- func PathParam(name string) *Parameter
- func QueryParam(name string) *Parameter
- func ResolveParameter(root interface{}, ref Ref) (*Parameter, error)
- func ResolveParameterWithBase(root interface{}, ref Ref, options *ExpandOptions) (*Parameter, error)
- func SimpleArrayParam(name, tpe, fmt string) *Parameter
- func (p *Parameter) AllowDuplicates() *Parameter
- func (p *Parameter) AllowsEmptyValues() *Parameter
- func (p *Parameter) AsOptional() *Parameter
- func (p *Parameter) AsRequired() *Parameter
- func (p *Parameter) CollectionOf(items *Items, format string) *Parameter
- func (p Parameter) JSONLookup(token string) (interface{}, error)
- func (p Parameter) MarshalJSON() ([]byte, error)
- func (p *Parameter) Named(name string) *Parameter
- func (p *Parameter) NoEmptyValues() *Parameter
- func (p *Parameter) Typed(tpe, format string) *Parameter
- func (p *Parameter) UniqueValues() *Parameter
- func (p *Parameter) UnmarshalJSON(data []byte) error
- func (p *Parameter) WithDefault(defaultValue interface{}) *Parameter
- func (p *Parameter) WithDescription(description string) *Parameter
- func (p *Parameter) WithEnum(values ...interface{}) *Parameter
- func (p *Parameter) WithLocation(in string) *Parameter
- func (p *Parameter) WithMaxItems(size int64) *Parameter
- func (p *Parameter) WithMaxLength(max int64) *Parameter
- func (p *Parameter) WithMaximum(max float64, exclusive bool) *Parameter
- func (p *Parameter) WithMinItems(size int64) *Parameter
- func (p *Parameter) WithMinLength(min int64) *Parameter
- func (p *Parameter) WithMinimum(min float64, exclusive bool) *Parameter
- func (p *Parameter) WithMultipleOf(number float64) *Parameter
- func (p *Parameter) WithPattern(pattern string) *Parameter
- func (p *Parameter) WithValidations(val CommonValidations) *Parameter
- type PathItem
- type PathItemProps
- type Paths
- type Ref
- type Refable
- type ResolutionCache
- type Response
- func (r *Response) AddExample(mediaType string, example interface{}) *Response
- func (r *Response) AddHeader(name string, header *Header) *Response
- func (r Response) JSONLookup(token string) (interface{}, error)
- func (r Response) MarshalJSON() ([]byte, error)
- func (r *Response) RemoveHeader(name string) *Response
- func (r *Response) UnmarshalJSON(data []byte) error
- func (r *Response) WithDescription(description string) *Response
- func (r *Response) WithSchema(schema *Schema) *Response
- type ResponseProps
- type Responses
- type ResponsesProps
- type Schema
- func ArrayProperty(items *Schema) *Schema
- func BoolProperty() *Schema
- func BooleanProperty() *Schema
- func CharProperty() *Schema
- func ComposedSchema(schemas ...Schema) *Schema
- func DateProperty() *Schema
- func DateTimeProperty() *Schema
- func Float32Property() *Schema
- func Float64Property() *Schema
- func Int16Property() *Schema
- func Int32Property() *Schema
- func Int64Property() *Schema
- func Int8Property() *Schema
- func JSONSchemaDraft04() (*Schema, error)
- func MapProperty(property *Schema) *Schema
- func MustLoadJSONSchemaDraft04() *Schema
- func MustLoadSwagger20Schema() *Schema
- func RefProperty(name string) *Schema
- func RefSchema(name string) *Schema
- func ResolveRef(root interface{}, ref *Ref) (*Schema, error)
- func ResolveRefWithBase(root interface{}, ref *Ref, options *ExpandOptions) (*Schema, error)
- func StrFmtProperty(format string) *Schema
- func StringProperty() *Schema
- func Swagger20Schema() (*Schema, error)
- func (s *Schema) AddRequired(items ...string) *Schema
- func (s *Schema) AddToAllOf(schemas ...Schema) *Schema
- func (s *Schema) AddType(tpe, format string) *Schema
- func (s *Schema) AllowDuplicates() *Schema
- func (s *Schema) AsNullable() *Schema
- func (s *Schema) AsReadOnly() *Schema
- func (s *Schema) AsUnwrappedXML() *Schema
- func (s *Schema) AsWrappedXML() *Schema
- func (s *Schema) AsWritable() *Schema
- func (s *Schema) AsXMLAttribute() *Schema
- func (s *Schema) AsXMLElement() *Schema
- func (s *Schema) CollectionOf(items Schema) *Schema
- func (s Schema) JSONLookup(token string) (interface{}, error)
- func (s Schema) MarshalJSON() ([]byte, error)
- func (s *Schema) SetProperty(name string, schema Schema) *Schema
- func (s *Schema) SetValidations(val SchemaValidations)
- func (s *Schema) Typed(tpe, format string) *Schema
- func (s *Schema) UniqueValues() *Schema
- func (s *Schema) UnmarshalJSON(data []byte) error
- func (s Schema) Validations() SchemaValidations
- func (s *Schema) WithAllOf(schemas ...Schema) *Schema
- func (s *Schema) WithDefault(defaultValue interface{}) *Schema
- func (s *Schema) WithDescription(description string) *Schema
- func (s *Schema) WithDiscriminator(discriminator string) *Schema
- func (s *Schema) WithEnum(values ...interface{}) *Schema
- func (s *Schema) WithExample(example interface{}) *Schema
- func (s *Schema) WithExternalDocs(description, url string) *Schema
- func (s *Schema) WithID(id string) *Schema
- func (s *Schema) WithMaxItems(size int64) *Schema
- func (s *Schema) WithMaxLength(max int64) *Schema
- func (s *Schema) WithMaxProperties(max int64) *Schema
- func (s *Schema) WithMaximum(max float64, exclusive bool) *Schema
- func (s *Schema) WithMinItems(size int64) *Schema
- func (s *Schema) WithMinLength(min int64) *Schema
- func (s *Schema) WithMinProperties(min int64) *Schema
- func (s *Schema) WithMinimum(min float64, exclusive bool) *Schema
- func (s *Schema) WithMultipleOf(number float64) *Schema
- func (s *Schema) WithPattern(pattern string) *Schema
- func (s *Schema) WithProperties(schemas map[string]Schema) *Schema
- func (s *Schema) WithRequired(items ...string) *Schema
- func (s *Schema) WithTitle(title string) *Schema
- func (s *Schema) WithValidations(val SchemaValidations) *Schema
- func (s *Schema) WithXMLName(name string) *Schema
- func (s *Schema) WithXMLNamespace(namespace string) *Schema
- func (s *Schema) WithXMLPrefix(prefix string) *Schema
- type SchemaOrArray
- type SchemaOrBool
- type SchemaOrStringArray
- type SchemaProperties
- type SchemaProps
- type SchemaURL
- type SchemaValidations
- type SecurityDefinitions
- type SecurityScheme
- func APIKeyAuth(fieldName, valueSource string) *SecurityScheme
- func BasicAuth() *SecurityScheme
- func OAuth2AccessToken(authorizationURL, tokenURL string) *SecurityScheme
- func OAuth2Application(tokenURL string) *SecurityScheme
- func OAuth2Implicit(authorizationURL string) *SecurityScheme
- func OAuth2Password(tokenURL string) *SecurityScheme
- type SecuritySchemeProps
- type SimpleSchema
- type StringOrArray
- type Swagger
- type SwaggerProps
- type SwaggerSchemaProps
- type Tag
- type TagProps
- type VendorExtensible
- type XMLObject
- func (x *XMLObject) AsAttribute() *XMLObject
- func (x *XMLObject) AsElement() *XMLObject
- func (x *XMLObject) AsUnwrapped() *XMLObject
- func (x *XMLObject) AsWrapped() *XMLObject
- func (x *XMLObject) WithName(name string) *XMLObject
- func (x *XMLObject) WithNamespace(namespace string) *XMLObject
- func (x *XMLObject) WithPrefix(prefix string) *XMLObject
const (
SwaggerSchemaURL = "http://swagger.io/v2/schema.json#"
JSONSchemaURL = "http://json-schema.org/draft-04/schema#"
)
var (
ErrUnknownTypeForReference = [errors](/errors).[New](/errors#New)("unknown type for the resolved reference")
ErrResolveRefNeedsAPointer = [errors](/errors).[New](/errors#New)("resolve ref: target needs to be a pointer")
ErrDerefUnsupportedType = [errors](/errors).[New](/errors#New)("deref: unsupported type")
ErrExpandUnsupportedType = [errors](/errors).[New](/errors#New)("expand: unsupported type. Input should be of type *Parameter or *Response")
)
Error codes
Debug is true when the SWAGGER_DEBUG env var is not empty.
It enables a more verbose logging of this package.
PathLoader is a function to use when loading remote refs.
This is a package level default. It may be overridden or bypassed by specifying the loader in ExpandOptions.
NOTE: if you are using the go-openapi/loads package, it will override this value with its own default (a loader to retrieve YAML documents as well as JSON ones).
func ExpandParameter ¶
ExpandParameter expands a parameter based on a basepath. This is the exported version of expandParameter all refs inside parameter will be resolved relative to basePath
func ExpandParameterWithRoot ¶
func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error
ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document.
Notice that it is impossible to reference a json schema in a different document other than root (use ExpandParameter to resolve external references).
func ExpandResponse ¶
ExpandResponse expands a response based on a basepath
All refs inside response will be resolved relative to basePath
func ExpandResponseWithRoot ¶
func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error
ExpandResponseWithRoot expands a response based on a root document, not a fetchable document
Notice that it is impossible to reference a json schema in a different document other than root (use ExpandResponse to resolve external references).
Setting the cache is optional and this parameter may safely be left to nil.
func ExpandSchema ¶
func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error
ExpandSchema expands the refs in the schema object with reference to the root object.
go-openapi/validate uses this function.
Notice that it is impossible to reference a json schema in a different document other than root (use ExpandSchemaWithBasePath to resolve external references).
Setting the cache is optional and this parameter may safely be left to nil.
func ExpandSchemaWithBasePath ¶
func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error
ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options.
Setting the cache is optional and this parameter may safely be left to nil.
func ExpandSpec ¶
func ExpandSpec(spec *Swagger, options *ExpandOptions) error
ExpandSpec expands the references in a swagger spec
type CommonValidations struct {
Maximum *float64 json:"maximum,omitempty"
ExclusiveMaximum bool json:"exclusiveMaximum,omitempty"
Minimum *float64 json:"minimum,omitempty"
ExclusiveMinimum bool json:"exclusiveMinimum,omitempty"
MaxLength *int64 json:"maxLength,omitempty"
MinLength *int64 json:"minLength,omitempty"
Pattern string json:"pattern,omitempty"
MaxItems *int64 json:"maxItems,omitempty"
MinItems *int64 json:"minItems,omitempty"
UniqueItems bool json:"uniqueItems,omitempty"
MultipleOf *float64 json:"multipleOf,omitempty"
Enum []interface{} json:"enum,omitempty"
}
CommonValidations describe common JSON-schema validations
func (v *CommonValidations) ClearArrayValidations(cbs ...func(string, interface{}))
ClearArrayValidations clears all array validations.
Some callbacks may be set by the caller to capture changed values.
func (v *CommonValidations) ClearNumberValidations(cbs ...func(string, interface{}))
ClearNumberValidations clears all number validations.
Some callbacks may be set by the caller to capture changed values.
func (v *CommonValidations) ClearStringValidations(cbs ...func(string, interface{}))
ClearStringValidations clears all string validations.
Some callbacks may be set by the caller to capture changed values.
func (v CommonValidations) HasArrayValidations() bool
HasArrayValidations indicates if the validations are for arrays
HasEnum indicates if the validation includes some enum constraint
func (v CommonValidations) HasNumberValidations() bool
HasNumberValidations indicates if the validations are for numbers or integers
func (v CommonValidations) HasStringValidations() bool
HasStringValidations indicates if the validations are for strings
func (v *CommonValidations) SetValidations(val SchemaValidations)
SetValidations defines all validations for a simple schema.
NOTE: the input is the larger set of validations available for schemas. For simple schemas, MinProperties and MaxProperties are ignored.
func (v CommonValidations) Validations() SchemaValidations
Validations returns a clone of the validations for a simple schema.
NOTE: in the context of simple schema objects, MinProperties, MaxProperties and PatternProperties remain unset.
type ContactInfo struct { ContactInfoProps VendorExtensible }
ContactInfo contact information for the exposed API.
For more information: http://goo.gl/8us55a#contactObject
MarshalJSON produces ContactInfo as json
UnmarshalJSON hydrates ContactInfo from json
type ContactInfoProps struct {
Name string json:"name,omitempty"
URL string json:"url,omitempty"
Email string json:"email,omitempty"
}
ContactInfoProps hold the properties of a ContactInfo object
Definitions contains the models explicitly defined in this spec An object to hold data types that can be consumed and produced by operations. These data types can be primitives, arrays or models.
For more information: http://goo.gl/8us55a#definitionsObject
Dependencies represent a dependencies property
type ExpandOptions ¶
ExpandOptions provides options for the spec expander.
RelativeBase is the path to the root document. This can be a remote URL or a path to a local file.
If left empty, the root document is assumed to be located in the current working directory: all relative $ref's will be resolved from there.
PathLoader injects a document loading method. By default, this resolves to the function provided by the SpecLoader package variable.
type Extensions map[string]interface{}
Extensions vendor specific extensions
func (e Extensions) Add(key string, value interface{})
Add adds a value to these extensions
GetBool gets a string value from the extensions
GetInt gets a int value from the extensions
GetString gets a string value from the extensions
GetStringSlice gets a string value from the extensions
Header describes a header for a response of the API
For more information: http://goo.gl/8us55a#headerObject
func ResponseHeader() *Header
ResponseHeader creates a new header instance for use in a response
func (h *Header) AllowDuplicates() *Header
AllowDuplicates this array can have duplicates
func (h *Header) CollectionOf(items *Items, format string) *Header
CollectionOf a fluent builder method for an array item
JSONLookup look up a value by the json property name
MarshalJSON marshal this to JSON
func (h *Header) Typed(tpe, format string) *Header
Typed a fluent builder method for the type of parameter
func (h *Header) UniqueValues() *Header
UniqueValues dictates that this array can only have unique items
UnmarshalJSON unmarshals this header from JSON
func (h *Header) WithDefault(defaultValue interface{}) *Header
WithDefault sets the default value on this item
func (h *Header) WithDescription(description string) *Header
WithDescription sets the description on this response, allows for chaining
func (h *Header) WithEnum(values ...interface{}) *Header
WithEnum sets a the enum values (replace)
func (h *Header) WithMaxItems(size int64) *Header
WithMaxItems sets the max items
func (h *Header) WithMaxLength(max int64) *Header
WithMaxLength sets a max length value
WithMaximum sets a maximum number value
func (h *Header) WithMinItems(size int64) *Header
WithMinItems sets the min items
func (h *Header) WithMinLength(min int64) *Header
WithMinLength sets a min length value
WithMinimum sets a minimum number value
func (h *Header) WithMultipleOf(number float64) *Header
WithMultipleOf sets a multiple of value
func (h *Header) WithPattern(pattern string) *Header
WithPattern sets a pattern value
func (h *Header) WithValidations(val CommonValidations) *Header
WithValidations is a fluent method to set header validations
type HeaderProps struct { }
HeaderProps describes a response header
type Info struct { VendorExtensible InfoProps }
Info object provides metadata about the API. The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.
For more information: http://goo.gl/8us55a#infoObject
JSONLookup look up a value by the json property name
MarshalJSON marshal this to JSON
UnmarshalJSON marshal this from JSON
type InfoProps struct {
Description string json:"description,omitempty"
Title string json:"title,omitempty"
TermsOfService string json:"termsOfService,omitempty"
Contact *ContactInfo json:"contact,omitempty"
License *License json:"license,omitempty"
Version string json:"version,omitempty"
}
InfoProps the properties for an info definition
Items a limited subset of JSON-Schema's items object. It is used by parameter definitions that are not located in "body".
For more information: http://goo.gl/8us55a#items-object
NewItems creates a new instance of items
func ResolveItems(root interface{}, ref Ref, options ExpandOptions) (Items, error)
ResolveItems resolves parameter items reference against a context root and base path.
Deprecated: use ResolveItemsWithBase instead
func ResolveItemsWithBase(root interface{}, ref Ref, options ExpandOptions) (Items, error)
ResolveItemsWithBase resolves parameter items reference against a context root and base path.
NOTE: stricly speaking, this construct is not supported by Swagger 2.0. Similarly, $ref are forbidden in response headers.
func (i *Items) AllowDuplicates() *Items
AllowDuplicates this array can have duplicates
func (i *Items) AsNullable() *Items
AsNullable flags this schema as nullable.
func (i *Items) CollectionOf(items *Items, format string) *Items
CollectionOf a fluent builder method for an array item
JSONLookup look up a value by the json property name
MarshalJSON converts this items object to JSON
func (i *Items) Typed(tpe, format string) *Items
Typed a fluent builder method for the type of item
func (i *Items) UniqueValues() *Items
UniqueValues dictates that this array can only have unique items
UnmarshalJSON hydrates this items instance with the data from JSON
func (i *Items) WithDefault(defaultValue interface{}) *Items
WithDefault sets the default value on this item
func (i *Items) WithEnum(values ...interface{}) *Items
WithEnum sets a the enum values (replace)
func (i *Items) WithMaxItems(size int64) *Items
WithMaxItems sets the max items
func (i *Items) WithMaxLength(max int64) *Items
WithMaxLength sets a max length value
WithMaximum sets a maximum number value
func (i *Items) WithMinItems(size int64) *Items
WithMinItems sets the min items
func (i *Items) WithMinLength(min int64) *Items
WithMinLength sets a min length value
WithMinimum sets a minimum number value
func (i *Items) WithMultipleOf(number float64) *Items
WithMultipleOf sets a multiple of value
func (i *Items) WithPattern(pattern string) *Items
WithPattern sets a pattern value
func (i *Items) WithValidations(val CommonValidations) *Items
WithValidations is a fluent method to set Items validations
type License struct { LicenseProps VendorExtensible }
License information for the exposed API.
For more information: http://goo.gl/8us55a#licenseObject
MarshalJSON produces License as json
UnmarshalJSON hydrates License from json
type LicenseProps struct {
Name string json:"name,omitempty"
URL string json:"url,omitempty"
}
LicenseProps holds the properties of a License object
type Operation struct { VendorExtensible OperationProps }
Operation describes a single API operation on a path.
For more information: http://goo.gl/8us55a#operationObject
NewOperation creates a new operation instance. It expects an ID as parameter but not passing an ID is also valid.
func (o *Operation) AddParam(param *Parameter) *Operation
AddParam adds a parameter to this operation, when a parameter for that location and with that name already exists it will be replaced
func (o *Operation) Deprecate() *Operation
Deprecate marks the operation as deprecated
GobDecode provides a safe gob decoder for Operation, including empty security requirements
GobEncode provides a safe gob encoder for Operation, including empty security requirements
JSONLookup look up a value by the json property name
MarshalJSON converts this items object to JSON
func (o *Operation) RemoveParam(name, in string) *Operation
RemoveParam removes a parameter from the operation
func (o *Operation) RespondsWith(code int, response *Response) *Operation
RespondsWith adds a status code response to the operation. When the code is 0 the value of the response will be used as default response value. When the value of the response is nil it will be removed from the operation
SecuredWith adds a security scope to this operation.
SuccessResponse gets a success response model
func (o *Operation) Undeprecate() *Operation
Undeprecate marks the operation as not deprected
UnmarshalJSON hydrates this items instance with the data from JSON
func (o *Operation) WithConsumes(mediaTypes ...string) *Operation
WithConsumes adds media types for incoming body values
func (o *Operation) WithDefaultResponse(response *Response) *Operation
WithDefaultResponse adds a default response to the operation. Passing a nil value will remove the response
func (o *Operation) WithDescription(description string) *Operation
WithDescription sets the description on this operation, allows for chaining
func (o *Operation) WithExternalDocs(description, url string) *Operation
WithExternalDocs sets/removes the external docs for/from this operation. When you pass empty strings as params the external documents will be removed. When you pass non-empty string as one value then those values will be used on the external docs object. So when you pass a non-empty description, you should also pass the url and vice versa.
WithID sets the ID property on this operation, allows for chaining.
func (o *Operation) WithProduces(mediaTypes ...string) *Operation
WithProduces adds media types for outgoing body values
func (o *Operation) WithSummary(summary string) *Operation
WithSummary sets the summary on this operation, allows for chaining
WithTags adds tags for this operation
type OperationProps struct {
Description string json:"description,omitempty"
Consumes []string json:"consumes,omitempty"
Produces []string json:"produces,omitempty"
Schemes []string json:"schemes,omitempty"
Tags []string json:"tags,omitempty"
Summary string json:"summary,omitempty"
ExternalDocs *ExternalDocumentation json:"externalDocs,omitempty"
ID string json:"operationId,omitempty"
Deprecated bool json:"deprecated,omitempty"
Security []map[string][]string json:"security,omitempty"
Parameters []Parameter json:"parameters,omitempty"
Responses *Responses json:"responses,omitempty"
}
OperationProps describes an operation
NOTES: - schemes, when present must be from [http, https, ws, wss]: see validate - Security is handled as a special case: see MarshalJSON function
GobDecode provides a safe gob decoder for Operation, including empty security requirements
GobEncode provides a safe gob encoder for Operation, including empty security requirements
MarshalJSON takes care of serializing operation properties to JSON
We use a custom marhaller here to handle a special cases related to the Security field. We need to preserve zero length slice while omitting the field when the value is nil/unset.
type OrderSchemaItem struct { Name string Schema }
OrderSchemaItem holds a named schema (e.g. from a property of an object)
type OrderSchemaItems []OrderSchemaItem
OrderSchemaItems is a sortable slice of named schemas. The ordering is defined by the x-order schema extension.
func (items OrderSchemaItems) Len() int
MarshalJSON produces a json object with keys defined by the name schemas of the OrderSchemaItems slice, keeping the original order of the slice.
func (items OrderSchemaItems) Swap(i, j int)
type ParamProps struct {
Description string json:"description,omitempty"
Name string json:"name,omitempty"
In string json:"in,omitempty"
Required bool json:"required,omitempty"
Schema *Schema json:"schema,omitempty"
AllowEmptyValue bool json:"allowEmptyValue,omitempty"
}
ParamProps describes the specific attributes of an operation parameter
NOTE: - Schema is defined when "in" == "body": see validate - AllowEmptyValue is allowed where "in" == "query" || "formData"
Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).
There are five possible parameter types.
- Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`, the path parameter is `itemId`.
- Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.
- Header - Custom headers that are expected as part of the request.
- Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be _one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for documentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist together for the same operation.
- Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or `multipart/form-data` are used as the content type of the request (in Swagger's definition, the [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used to send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be declared together with a body parameter for the same operation. Form parameters have a different format based on the content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).
- `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload. For example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple parameters that are being transferred.
- `multipart/form-data` - each parameter takes a section in the payload with an internal header. For example, for the header `Content-Disposition: form-data; name="submit-name"` the name of the parameter is `submit-name`. This type of form parameters is more commonly used for file transfers.
For more information: http://goo.gl/8us55a#parameterObject
func BodyParam ¶
func BodyParam(name string, schema *Schema) *Parameter
BodyParam creates a body parameter
FileParam creates a body parameter
FormDataParam creates a body parameter
HeaderParam creates a header parameter, this is always required by default
ParamRef creates a parameter that's a json reference
PathParam creates a path parameter, this is always required
QueryParam creates a query parameter
func ResolveParameter(root interface{}, ref Ref) (*Parameter, error)
ResolveParameter resolves a parameter reference against a context root
func ResolveParameterWithBase(root interface{}, ref Ref, options ExpandOptions) (Parameter, error)
ResolveParameterWithBase resolves a parameter reference against a context root and base path
func SimpleArrayParam(name, tpe, fmt string) *Parameter
SimpleArrayParam creates a param for a simple array (string, int, date etc)
func (p *Parameter) AllowDuplicates() *Parameter
AllowDuplicates this array can have duplicates
func (p *Parameter) AllowsEmptyValues() *Parameter
AllowsEmptyValues flags this parameter as being ok with empty values
func (p *Parameter) AsOptional() *Parameter
AsOptional flags this parameter as optional
func (p *Parameter) AsRequired() *Parameter
AsRequired flags this parameter as required
func (p *Parameter) CollectionOf(items *Items, format string) *Parameter
CollectionOf a fluent builder method for an array parameter
JSONLookup look up a value by the json property name
MarshalJSON converts this items object to JSON
Named a fluent builder method to override the name of the parameter
func (p *Parameter) NoEmptyValues() *Parameter
NoEmptyValues flags this parameter as not liking empty values
Typed a fluent builder method for the type of the parameter value
func (p *Parameter) UniqueValues() *Parameter
UniqueValues dictates that this array can only have unique items
UnmarshalJSON hydrates this items instance with the data from JSON
func (p *Parameter) WithDefault(defaultValue interface{}) *Parameter
WithDefault sets the default value on this parameter
func (p *Parameter) WithDescription(description string) *Parameter
WithDescription a fluent builder method for the description of the parameter
func (p *Parameter) WithEnum(values ...interface{}) *Parameter
WithEnum sets a the enum values (replace)
WithLocation a fluent builder method to override the location of the parameter
func (p *Parameter) WithMaxItems(size int64) *Parameter
WithMaxItems sets the max items
func (p *Parameter) WithMaxLength(max int64) *Parameter
WithMaxLength sets a max length value
WithMaximum sets a maximum number value
func (p *Parameter) WithMinItems(size int64) *Parameter
WithMinItems sets the min items
func (p *Parameter) WithMinLength(min int64) *Parameter
WithMinLength sets a min length value
WithMinimum sets a minimum number value
WithMultipleOf sets a multiple of value
func (p *Parameter) WithPattern(pattern string) *Parameter
WithPattern sets a pattern value
func (p *Parameter) WithValidations(val CommonValidations) *Parameter
WithValidations is a fluent method to set parameter validations
type PathItem struct { Refable VendorExtensible PathItemProps }
PathItem describes the operations available on a single path. A Path Item may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering). The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.
For more information: http://goo.gl/8us55a#pathItemObject
func ResolvePathItem(root interface{}, ref Ref, options ExpandOptions) (PathItem, error)
ResolvePathItem resolves response a path item against a context root and base path
Deprecated: use ResolvePathItemWithBase instead
func ResolvePathItemWithBase(root interface{}, ref Ref, options ExpandOptions) (PathItem, error)
ResolvePathItemWithBase resolves response a path item against a context root and base path
JSONLookup look up a value by the json property name
MarshalJSON converts this items object to JSON
UnmarshalJSON hydrates this items instance with the data from JSON
type PathItemProps struct {
Get *Operation json:"get,omitempty"
Put *Operation json:"put,omitempty"
Post *Operation json:"post,omitempty"
Delete *Operation json:"delete,omitempty"
Options *Operation json:"options,omitempty"
Head *Operation json:"head,omitempty"
Patch *Operation json:"patch,omitempty"
Parameters []Parameter json:"parameters,omitempty"
}
PathItemProps the path item specific properties
Ref represents a json reference that is potentially resolved
func MustCreateRef(refURI string) Ref
MustCreateRef creates a ref object but panics when refURI is invalid. Use the NewRef method for a version that returns an error.
NewRef creates a new instance of a ref object returns an error when the reference uri is an invalid uri
GobDecode provides a safe gob decoder for Ref
GobEncode provides a safe gob encoder for Ref
func (r Ref) Inherits(child Ref) (Ref, error)
Inherits creates a new reference from a parent and a child If the child cannot inherit from the parent, an error is returned
IsValidURI returns true when the url the ref points to can be found
MarshalJSON marshals this ref into a JSON object
RemoteURI gets the remote uri part of the ref
UnmarshalJSON unmarshals this ref from a JSON object
type Refable struct { Ref Ref }
Refable is a struct for things that accept a $ref property
MarshalJSON marshals the ref to json
UnmarshalJSON unmarshalss the ref from json
type ResolutionCache interface { Get(string) (interface{}, bool) Set(string, interface{}) }
ResolutionCache a cache for resolving urls
type Response struct { Refable ResponseProps VendorExtensible }
Response describes a single response from an API Operation.
For more information: http://goo.gl/8us55a#responseObject
func NewResponse() *Response
NewResponse creates a new response instance
func ResolveResponse(root interface{}, ref Ref) (*Response, error)
ResolveResponse resolves response a reference against a context root
func ResolveResponseWithBase(root interface{}, ref Ref, options ExpandOptions) (Response, error)
ResolveResponseWithBase resolves response a reference against a context root and base path
ResponseRef creates a response as a json reference
func (r *Response) AddExample(mediaType string, example interface{}) *Response
AddExample adds an example to this response
func (r *Response) AddHeader(name string, header *Header) *Response
AddHeader adds a header to this response
JSONLookup look up a value by the json property name
MarshalJSON converts this items object to JSON
func (r *Response) RemoveHeader(name string) *Response
RemoveHeader removes a header from this response
UnmarshalJSON hydrates this items instance with the data from JSON
func (r *Response) WithDescription(description string) *Response
WithDescription sets the description on this response, allows for chaining
func (r *Response) WithSchema(schema *Schema) *Response
WithSchema sets the schema on this response, allows for chaining. Passing a nil argument removes the schema from this response
type ResponseProps struct {
Description string json:"description"
Schema *Schema json:"schema,omitempty"
Examples map[string]interface{} json:"examples,omitempty"
}
ResponseProps properties specific to a response
type Responses struct { VendorExtensible ResponsesProps }
Responses is a container for the expected responses of an operation. The container maps a HTTP response code to the expected response. It is not expected from the documentation to necessarily cover all possible HTTP response codes, since they may not be known in advance. However, it is expected from the documentation to cover a successful operation response and any known errors.
The `default` can be used a default response object for all HTTP codes that are not covered individually by the specification.
The `Responses Object` MUST contain at least one response code, and it SHOULD be the response for a successful operation call.
For more information: http://goo.gl/8us55a#responsesObject
JSONLookup implements an interface to customize json pointer lookup
MarshalJSON converts this items object to JSON
UnmarshalJSON hydrates this items instance with the data from JSON
type ResponsesProps struct { Default *Response StatusCodeResponses map[int]Response }
ResponsesProps describes all responses for an operation. It tells what is the default response and maps all responses with a HTTP status code.
MarshalJSON marshals responses as JSON
UnmarshalJSON unmarshals responses from JSON
type Schema struct { VendorExtensible SchemaProps SwaggerSchemaProps }
Schema the schema object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is based on the [JSON Schema Specification Draft 4](http://json-schema.org/) and uses a predefined subset of it. On top of this subset, there are extensions provided by this specification to allow for more complete documentation.
For more information: http://goo.gl/8us55a#schemaObject
func ArrayProperty(items *Schema) *Schema
ArrayProperty creates an array property
func BoolProperty() *Schema
BoolProperty creates a boolean property
func BooleanProperty() *Schema
BooleanProperty creates a boolean property
func CharProperty() *Schema
CharProperty creates a string property
func ComposedSchema(schemas ...Schema) *Schema
ComposedSchema creates a schema with allOf
func DateProperty() *Schema
DateProperty creates a date property
func DateTimeProperty() *Schema
DateTimeProperty creates a date time property
func Float32Property() *Schema
Float32Property creates a float32/float property
func Float64Property() *Schema
Float64Property creates a float64/double property
func Int16Property() *Schema
Int16Property creates an int16 property
func Int32Property() *Schema
Int32Property creates an int32 property
func Int64Property() *Schema
Int64Property creates an int64 property
func Int8Property() *Schema
Int8Property creates an int8 property
func JSONSchemaDraft04() (*Schema, error)
JSONSchemaDraft04 loads the json schema document for json shema draft04
func MapProperty(property *Schema) *Schema
MapProperty creates a map property
func MustLoadJSONSchemaDraft04() *Schema
MustLoadJSONSchemaDraft04 panics when Swagger20Schema returns an error
func MustLoadSwagger20Schema() *Schema
MustLoadSwagger20Schema panics when Swagger20Schema returns an error
RefProperty creates a ref property
RefSchema creates a ref property
func ResolveRef(root interface{}, ref Ref) (Schema, error)
ResolveRef resolves a reference for a schema against a context root ref is guaranteed to be in root (no need to go to external files)
ResolveRef is ONLY called from the code generation module
func ResolveRefWithBase(root interface{}, ref *Ref, options ExpandOptions) (Schema, error)
ResolveRefWithBase resolves a reference against a context root with preservation of base path
func StrFmtProperty(format string) *Schema
StrFmtProperty creates a property for the named string format
func StringProperty() *Schema
StringProperty creates a string property
func Swagger20Schema() (*Schema, error)
Swagger20Schema loads the swagger 2.0 schema from the embedded assets
func (s *Schema) AddRequired(items ...string) *Schema
AddRequired adds field names to the required properties array
func (s *Schema) AddToAllOf(schemas ...Schema) *Schema
AddToAllOf adds a schema to the allOf property
func (s *Schema) AddType(tpe, format string) *Schema
AddType adds a type with potential format to the types for this schema
func (s *Schema) AllowDuplicates() *Schema
AllowDuplicates this array can have duplicates
func (s *Schema) AsNullable() *Schema
AsNullable flags this schema as nullable.
func (s *Schema) AsReadOnly() *Schema
AsReadOnly flags this schema as readonly
func (s *Schema) AsUnwrappedXML() *Schema
AsUnwrappedXML flags this object as an xml node
func (s *Schema) AsWrappedXML() *Schema
AsWrappedXML flags this object as wrapped, this is mostly useful for array types
func (s *Schema) AsWritable() *Schema
AsWritable flags this schema as writeable (not read-only)
func (s *Schema) AsXMLAttribute() *Schema
AsXMLAttribute flags this object as xml attribute
func (s *Schema) AsXMLElement() *Schema
AsXMLElement flags this object as an xml node
func (s *Schema) CollectionOf(items Schema) *Schema
CollectionOf a fluent builder method for an array parameter
JSONLookup implements an interface to customize json pointer lookup
MarshalJSON marshal this to JSON
func (s *Schema) SetProperty(name string, schema Schema) *Schema
SetProperty sets a property on this schema
func (s *Schema) SetValidations(val SchemaValidations)
SetValidations defines all schema validations.
NOTE: Required, ReadOnly, AllOf, AnyOf, OneOf and Not are not considered.
func (s *Schema) Typed(tpe, format string) *Schema
Typed sets the type of this schema for a single value item
func (s *Schema) UniqueValues() *Schema
UniqueValues dictates that this array can only have unique items
UnmarshalJSON marshal this from JSON
func (s Schema) Validations() SchemaValidations
Validations returns a clone of the validations for this schema
func (s *Schema) WithAllOf(schemas ...Schema) *Schema
WithAllOf sets the all of property
func (s *Schema) WithDefault(defaultValue interface{}) *Schema
WithDefault sets the default value on this parameter
func (s *Schema) WithDescription(description string) *Schema
WithDescription sets the description for this schema, allows for chaining
func (s *Schema) WithDiscriminator(discriminator string) *Schema
WithDiscriminator sets the name of the discriminator field
func (s *Schema) WithEnum(values ...interface{}) *Schema
WithEnum sets a the enum values (replace)
func (s *Schema) WithExample(example interface{}) *Schema
WithExample sets the example for this schema
func (s *Schema) WithExternalDocs(description, url string) *Schema
WithExternalDocs sets/removes the external docs for/from this schema. When you pass empty strings as params the external documents will be removed. When you pass non-empty string as one value then those values will be used on the external docs object. So when you pass a non-empty description, you should also pass the url and vice versa.
WithID sets the id for this schema, allows for chaining
func (s *Schema) WithMaxItems(size int64) *Schema
WithMaxItems sets the max items
func (s *Schema) WithMaxLength(max int64) *Schema
WithMaxLength sets a max length value
func (s *Schema) WithMaxProperties(max int64) *Schema
WithMaxProperties sets the max number of properties an object can have
WithMaximum sets a maximum number value
func (s *Schema) WithMinItems(size int64) *Schema
WithMinItems sets the min items
func (s *Schema) WithMinLength(min int64) *Schema
WithMinLength sets a min length value
func (s *Schema) WithMinProperties(min int64) *Schema
WithMinProperties sets the min number of properties an object must have
WithMinimum sets a minimum number value
func (s *Schema) WithMultipleOf(number float64) *Schema
WithMultipleOf sets a multiple of value
func (s *Schema) WithPattern(pattern string) *Schema
WithPattern sets a pattern value
func (s *Schema) WithProperties(schemas map[string]Schema) *Schema
WithProperties sets the properties for this schema
func (s *Schema) WithRequired(items ...string) *Schema
WithRequired flags this parameter as required
func (s *Schema) WithTitle(title string) *Schema
WithTitle sets the title for this schema, allows for chaining
func (s *Schema) WithValidations(val SchemaValidations) *Schema
WithValidations is a fluent method to set schema validations
func (s *Schema) WithXMLName(name string) *Schema
WithXMLName sets the xml name for the object
func (s *Schema) WithXMLNamespace(namespace string) *Schema
WithXMLNamespace sets the xml namespace for the object
func (s *Schema) WithXMLPrefix(prefix string) *Schema
WithXMLPrefix sets the xml prefix for the object
type SchemaOrArray struct { Schema *Schema Schemas []Schema }
SchemaOrArray represents a value that can either be a Schema or an array of Schema. Mainly here for serialization purposes
ContainsType returns true when one of the schemas is of the specified type
JSONLookup implements an interface to customize json pointer lookup
Len returns the number of schemas in this property
MarshalJSON converts this schema object or array into JSON structure
UnmarshalJSON converts this schema object or array from a JSON structure
type SchemaOrBool struct { Allows bool Schema *Schema }
SchemaOrBool represents a schema or boolean value, is biased towards true for the boolean property
JSONLookup implements an interface to customize json pointer lookup
MarshalJSON convert this object to JSON
UnmarshalJSON converts this bool or schema object from a JSON structure
type SchemaOrStringArray struct { Schema *Schema Property []string }
SchemaOrStringArray represents a schema or a string array
JSONLookup implements an interface to customize json pointer lookup
MarshalJSON converts this schema object or array into JSON structure
UnmarshalJSON converts this schema object or array from a JSON structure
type SchemaProperties map[string]Schema
SchemaProperties is a map representing the properties of a Schema object. It knows how to transform its keys into an ordered slice.
MarshalJSON produces properties as json, keeping their order.
func (properties SchemaProperties) ToOrderedSchemaItems() OrderSchemaItems
ToOrderedSchemaItems transforms the map of properties into a sortable slice
type SchemaProps struct {
ID string json:"id,omitempty"
Ref Ref json:"-"
Schema SchemaURL json:"-"
Description string json:"description,omitempty"
Type StringOrArray json:"type,omitempty"
Nullable bool json:"nullable,omitempty"
Format string json:"format,omitempty"
Title string json:"title,omitempty"
Default interface{} json:"default,omitempty"
Maximum *float64 json:"maximum,omitempty"
ExclusiveMaximum bool json:"exclusiveMaximum,omitempty"
Minimum *float64 json:"minimum,omitempty"
ExclusiveMinimum bool json:"exclusiveMinimum,omitempty"
MaxLength *int64 json:"maxLength,omitempty"
MinLength *int64 json:"minLength,omitempty"
Pattern string json:"pattern,omitempty"
MaxItems *int64 json:"maxItems,omitempty"
MinItems *int64 json:"minItems,omitempty"
UniqueItems bool json:"uniqueItems,omitempty"
MultipleOf *float64 json:"multipleOf,omitempty"
Enum []interface{} json:"enum,omitempty"
MaxProperties *int64 json:"maxProperties,omitempty"
MinProperties *int64 json:"minProperties,omitempty"
Required []string json:"required,omitempty"
Items *SchemaOrArray json:"items,omitempty"
AllOf []Schema json:"allOf,omitempty"
OneOf []Schema json:"oneOf,omitempty"
AnyOf []Schema json:"anyOf,omitempty"
Not *Schema json:"not,omitempty"
Properties SchemaProperties json:"properties,omitempty"
AdditionalProperties *SchemaOrBool json:"additionalProperties,omitempty"
PatternProperties SchemaProperties json:"patternProperties,omitempty"
Dependencies Dependencies json:"dependencies,omitempty"
AdditionalItems *SchemaOrBool json:"additionalItems,omitempty"
Definitions Definitions json:"definitions,omitempty"
}
SchemaProps describes a JSON schema (draft 4)
SchemaURL represents a schema url
MarshalJSON marshal this to JSON
UnmarshalJSON unmarshal this from JSON
type SchemaValidations struct { CommonValidations
PatternProperties [SchemaProperties](#SchemaProperties) `json:"patternProperties,omitempty"`
MaxProperties *[int64](/builtin#int64) `json:"maxProperties,omitempty"`
MinProperties *[int64](/builtin#int64) `json:"minProperties,omitempty"`
}
SchemaValidations describes the validation properties of a schema
NOTE: at this moment, this is not embedded in SchemaProps because this would induce a breaking change in the exported members: all initializers using litterals would fail.
func (v *SchemaValidations) ClearObjectValidations(cbs ...func(string, interface{}))
ClearObjectValidations returns a clone of the validations with all object validations cleared.
Some callbacks may be set by the caller to capture changed values.
func (v SchemaValidations) HasObjectValidations() bool
HasObjectValidations indicates if the validations are for objects
func (v *SchemaValidations) SetValidations(val SchemaValidations)
SetValidations for schema validations
func (v SchemaValidations) Validations() SchemaValidations
Validations for a schema
type SecurityDefinitions map[string]*SecurityScheme
SecurityDefinitions a declaration of the security schemes available to be used in the specification. This does not enforce the security schemes on the operations and only serves to provide the relevant details for each scheme.
For more information: http://goo.gl/8us55a#securityDefinitionsObject
type SecurityScheme struct { VendorExtensible SecuritySchemeProps }
SecurityScheme allows the definition of a security scheme that can be used by the operations. Supported schemes are basic authentication, an API key (either as a header or as a query parameter) and OAuth2's common flows (implicit, password, application and access code).
For more information: http://goo.gl/8us55a#securitySchemeObject
func APIKeyAuth(fieldName, valueSource string) *SecurityScheme
APIKeyAuth creates an api key auth security scheme
func BasicAuth() *SecurityScheme
BasicAuth creates a basic auth security scheme
func OAuth2AccessToken(authorizationURL, tokenURL string) *SecurityScheme
OAuth2AccessToken creates an access token flow oauth2 security scheme
func OAuth2Application(tokenURL string) *SecurityScheme
OAuth2Application creates an application flow oauth2 security scheme
func OAuth2Implicit(authorizationURL string) *SecurityScheme
OAuth2Implicit creates an implicit flow oauth2 security scheme
func OAuth2Password(tokenURL string) *SecurityScheme
OAuth2Password creates a password flow oauth2 security scheme
JSONLookup implements an interface to customize json pointer lookup
MarshalJSON marshal this to JSON
UnmarshalJSON marshal this from JSON
type SecuritySchemeProps struct {
Description string json:"description,omitempty"
Type string json:"type"
Name string json:"name,omitempty"
In string json:"in,omitempty"
Flow string json:"flow,omitempty"
TokenURL string json:"tokenUrl,omitempty"
Scopes map[string]string json:"scopes,omitempty"
}
SecuritySchemeProps describes a swagger security scheme in the securityDefinitions section
func (s *SecuritySchemeProps) AddScope(scope, description string)
AddScope adds a scope to this security scheme
type SimpleSchema struct {
Type string json:"type,omitempty"
Nullable bool json:"nullable,omitempty"
Format string json:"format,omitempty"
Items *Items json:"items,omitempty"
CollectionFormat string json:"collectionFormat,omitempty"
Default interface{} json:"default,omitempty"
Example interface{} json:"example,omitempty"
}
SimpleSchema describe swagger simple schemas for parameters and headers
ItemsTypeName yields the type of items in a simple schema array
TypeName return the type (or format) of a simple schema
StringOrArray represents a value that can either be a string or an array of strings. Mainly here for serialization purposes
Contains returns true when the value is contained in the slice
MarshalJSON converts this string or array to a JSON array or JSON string
UnmarshalJSON unmarshals this string or array object from a JSON array or JSON string
type Swagger struct { VendorExtensible SwaggerProps }
Swagger this is the root document object for the API specification. It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier) together into one document.
For more information: http://goo.gl/8us55a#swagger-object-
GobDecode provides a safe gob decoder for Swagger, including extensions
GobEncode provides a safe gob encoder for Swagger, including extensions
JSONLookup look up a value by the json property name
MarshalJSON marshals this swagger structure to json
UnmarshalJSON unmarshals a swagger spec from json
type SwaggerProps struct {
ID string json:"id,omitempty"
Consumes []string json:"consumes,omitempty"
Produces []string json:"produces,omitempty"
Schemes []string json:"schemes,omitempty"
Swagger string json:"swagger,omitempty"
Info *Info json:"info,omitempty"
Host string json:"host,omitempty"
BasePath string json:"basePath,omitempty"
Paths *Paths json:"paths"
Definitions Definitions json:"definitions,omitempty"
Parameters map[string]Parameter json:"parameters,omitempty"
Responses map[string]Response json:"responses,omitempty"
SecurityDefinitions SecurityDefinitions json:"securityDefinitions,omitempty"
Security []map[string][]string json:"security,omitempty"
Tags []Tag json:"tags,omitempty"
ExternalDocs *ExternalDocumentation json:"externalDocs,omitempty"
}
SwaggerProps captures the top-level properties of an Api specification
NOTE: validation rules - the scheme, when present must be from [http, https, ws, wss] - BasePath must start with a leading "/" - Paths is required
GobDecode provides a safe gob decoder for SwaggerProps, including empty security requirements
GobEncode provides a safe gob encoder for SwaggerProps, including empty security requirements
type SwaggerSchemaProps struct {
Discriminator string json:"discriminator,omitempty"
ReadOnly bool json:"readOnly,omitempty"
XML *XMLObject json:"xml,omitempty"
ExternalDocs *ExternalDocumentation json:"externalDocs,omitempty"
Example interface{} json:"example,omitempty"
}
SwaggerSchemaProps are additional properties supported by swagger schemas, but not JSON-schema (draft 4)
type Tag struct { VendorExtensible TagProps }
Tag allows adding meta data to a single tag that is used by the [Operation Object](http://goo.gl/8us55a#operationObject). It is not mandatory to have a Tag Object per tag used there.
For more information: http://goo.gl/8us55a#tagObject
func NewTag(name, description string, externalDocs *ExternalDocumentation) Tag
NewTag creates a new tag
JSONLookup implements an interface to customize json pointer lookup
MarshalJSON marshal this to JSON
UnmarshalJSON marshal this from JSON
type TagProps struct {
Description string json:"description,omitempty"
Name string json:"name,omitempty"
ExternalDocs *ExternalDocumentation json:"externalDocs,omitempty"
}
TagProps describe a tag entry in the top level tags section of a swagger spec
type VendorExtensible struct { Extensions Extensions }
VendorExtensible composition block.
func (v *VendorExtensible) AddExtension(key string, value interface{})
AddExtension adds an extension to this extensible object
MarshalJSON marshals the extensions to json
UnmarshalJSON for this extensible object
type XMLObject struct {
Name string json:"name,omitempty"
Namespace string json:"namespace,omitempty"
Prefix string json:"prefix,omitempty"
Attribute bool json:"attribute,omitempty"
Wrapped bool json:"wrapped,omitempty"
}
XMLObject a metadata object that allows for more fine-tuned XML model definitions.
For more information: http://goo.gl/8us55a#xmlObject
func (x *XMLObject) AsAttribute() *XMLObject
AsAttribute flags this object as xml attribute
func (x *XMLObject) AsElement() *XMLObject
AsElement flags this object as an xml node
func (x *XMLObject) AsUnwrapped() *XMLObject
AsUnwrapped flags this object as an xml node
func (x *XMLObject) AsWrapped() *XMLObject
AsWrapped flags this object as wrapped, this is mostly useful for array types
WithName sets the xml name for the object
func (x *XMLObject) WithNamespace(namespace string) *XMLObject
WithNamespace sets the xml namespace for the object
WithPrefix sets the xml prefix for the object