Blame vendor/github.com/getkin/kin-openapi/openapi3/media_type.go

Packit Service 3a6627
package openapi3
Packit Service 3a6627
Packit Service 3a6627
import (
Packit Service 3a6627
	"context"
Packit Service 3a6627
Packit Service 3a6627
	"github.com/getkin/kin-openapi/jsoninfo"
Packit Service 3a6627
)
Packit Service 3a6627
Packit Service 3a6627
// MediaType is specified by OpenAPI/Swagger 3.0 standard.
Packit Service 3a6627
type MediaType struct {
Packit Service 3a6627
	ExtensionProps
Packit Service 3a6627
Packit Service 3a6627
	Schema   *SchemaRef             `json:"schema,omitempty" yaml:"schema,omitempty"`
Packit Service 3a6627
	Example  interface{}            `json:"example,omitempty" yaml:"example,omitempty"`
Packit Service 3a6627
	Examples map[string]*ExampleRef `json:"examples,omitempty" yaml:"examples,omitempty"`
Packit Service 3a6627
	Encoding map[string]*Encoding   `json:"encoding,omitempty" yaml:"encoding,omitempty"`
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func NewMediaType() *MediaType {
Packit Service 3a6627
	return &MediaType{}
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) WithSchema(schema *Schema) *MediaType {
Packit Service 3a6627
	if schema == nil {
Packit Service 3a6627
		mediaType.Schema = nil
Packit Service 3a6627
	} else {
Packit Service 3a6627
		mediaType.Schema = &SchemaRef{
Packit Service 3a6627
			Value: schema,
Packit Service 3a6627
		}
Packit Service 3a6627
	}
Packit Service 3a6627
	return mediaType
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) WithSchemaRef(schema *SchemaRef) *MediaType {
Packit Service 3a6627
	mediaType.Schema = schema
Packit Service 3a6627
	return mediaType
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) WithExample(name string, value interface{}) *MediaType {
Packit Service 3a6627
	example := mediaType.Examples
Packit Service 3a6627
	if example == nil {
Packit Service 3a6627
		example = make(map[string]*ExampleRef)
Packit Service 3a6627
		mediaType.Examples = example
Packit Service 3a6627
	}
Packit Service 3a6627
	example[name] = &ExampleRef{
Packit Service 3a6627
		Value: NewExample(value),
Packit Service 3a6627
	}
Packit Service 3a6627
	return mediaType
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) WithEncoding(name string, enc *Encoding) *MediaType {
Packit Service 3a6627
	encoding := mediaType.Encoding
Packit Service 3a6627
	if encoding == nil {
Packit Service 3a6627
		encoding = make(map[string]*Encoding)
Packit Service 3a6627
		mediaType.Encoding = encoding
Packit Service 3a6627
	}
Packit Service 3a6627
	encoding[name] = enc
Packit Service 3a6627
	return mediaType
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) MarshalJSON() ([]byte, error) {
Packit Service 3a6627
	return jsoninfo.MarshalStrictStruct(mediaType)
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) UnmarshalJSON(data []byte) error {
Packit Service 3a6627
	return jsoninfo.UnmarshalStrictStruct(data, mediaType)
Packit Service 3a6627
}
Packit Service 3a6627
Packit Service 3a6627
func (mediaType *MediaType) Validate(c context.Context) error {
Packit Service 3a6627
	if mediaType == nil {
Packit Service 3a6627
		return nil
Packit Service 3a6627
	}
Packit Service 3a6627
	if schema := mediaType.Schema; schema != nil {
Packit Service 3a6627
		if err := schema.Validate(c); err != nil {
Packit Service 3a6627
			return err
Packit Service 3a6627
		}
Packit Service 3a6627
	}
Packit Service 3a6627
	return nil
Packit Service 3a6627
}