draft2020

package
v0.0.0-...-b3e4aef Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2024 License: MIT Imports: 16 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApplicatorMixin

type ApplicatorMixin[S jsonschema.Keyword] struct {
	AllOf []S `json:"allOf,omitempty"`
	AnyOf []S `json:"anyOf,omitempty"`
	OneOf []S `json:"oneOf,omitempty"`
	If    S   `json:"if,omitempty"`
	Then  S   `json:"then,omitempty"`
	Else  S   `json:"else,omitempty"`
	Not   S   `json:"not,omitempty"`
}

func (*ApplicatorMixin[S]) AppliesTo

func (m *ApplicatorMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*ApplicatorMixin[S]) Kind

func (m *ApplicatorMixin[S]) Kind() jsonschema.Kind

func (*ApplicatorMixin[S]) Validate

func (m *ApplicatorMixin[S]) Validate(v interface{}) error

type ArrayMixin

type ArrayMixin[S jsonschema.Keyword] struct {
	MaxItems    int              `json:"maxItems,omitempty" validate:"omitempty,gte=0"`
	MinItems    int              `json:"minItems,omitempty" validate:"omitempty,gte=0"`
	UniqueItems bool             `json:"uniqueItems,omitempty"`
	PrefixItems []S              `json:"prefixItems,omitempty"`
	Items       *ser.Or[bool, S] `json:"items,omitempty"`
	Contains    S                `json:"contains,omitempty"`
	MaxContains int              `json:"maxContains,omitempty" validate:"omitempty,gte=0"`
	MinContains *int             `json:"minContains,omitempty" validate:"omitempty,gte=0"`
}

func (*ArrayMixin[S]) AppliesTo

func (m *ArrayMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*ArrayMixin[S]) Kind

func (m *ArrayMixin[S]) Kind() jsonschema.Kind

func (*ArrayMixin[S]) Validate

func (m *ArrayMixin[S]) Validate(v interface{}) error

type ContentMixin

type ContentMixin[S jsonschema.Keyword] struct {
	ContentEncoding  Encoding       `json:"contentEncoding,omitempty"`
	ContentMediaType iana.MediaType `json:"contentMediaType,omitempty"`
	ContentSchema    S              `json:"contentSchema,omitempty"`
}

func (*ContentMixin[S]) AppliesTo

func (m *ContentMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*ContentMixin[S]) Kind

func (m *ContentMixin[S]) Kind() jsonschema.Kind

func (*ContentMixin[S]) Validate

func (m *ContentMixin[S]) Validate(v interface{}) error

type Encoding

type Encoding string

type MetaDataMixin

type MetaDataMixin struct {
	Title       string        `json:"title,omitempty"`
	Description string        `json:"description,omitempty"`
	Default     interface{}   `json:"default,omitempty"`
	Examples    []interface{} `json:"examples,omitempty"`
	Deprecated  bool          `json:"deprecated,omitempty"`
	ReadOnly    bool          `json:"readOnly,omitempty"`
	WriteOnly   bool          `json:"writeOnly,omitempty"`
}

func (*MetaDataMixin) AppliesTo

func (m *MetaDataMixin) AppliesTo(t jsonschema.Type) bool

func (*MetaDataMixin) Kind

func (m *MetaDataMixin) Kind() jsonschema.Kind

func (*MetaDataMixin) Validate

func (m *MetaDataMixin) Validate(v interface{}) error

type MetaSchemaMixin

type MetaSchemaMixin[S jsonschema.Keyword] struct {
	Schema        string          `json:"$schema,omitempty" validate:"omitempty,uri"`
	Id            string          `json:"$id,omitempty" validate:"omitempty,uri-reference"`
	Comments      string          `json:"$comments,omitempty"`
	Defs          map[string]S    `json:"$defs,omitempty" validate:"dive"`
	Anchor        string          `json:"$anchor,omitempty"`
	DynamicAnchor string          `json:"$dynamicAnchor,omitempty"`
	Vocabulary    map[string]bool `json:"$vocabulary,omitempty" validate:"dive,keys,uri-reference,endkeys"`
}

func (*MetaSchemaMixin[S]) AppliesTo

func (m *MetaSchemaMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*MetaSchemaMixin[S]) Kind

func (m *MetaSchemaMixin[S]) Kind() jsonschema.Kind

func (*MetaSchemaMixin[S]) Validate

func (m *MetaSchemaMixin[S]) Validate(v interface{}) error

type NumericMixin

type NumericMixin struct {
	MultipleOf       int  `json:"multipleOf,omitempty" validate:"omitempty,gt=0"`
	Maximum          int  `json:"maximum,omitempty"`
	ExclusiveMaximum bool `json:"exclusiveMaximum,omitempty"`
	Minimum          int  `json:"minimum,omitempty"`
	ExclusiveMinimum bool `json:"exclusiveMinimum,omitempty"`
}

func (*NumericMixin) AppliesTo

func (m *NumericMixin) AppliesTo(t jsonschema.Type) bool

func (*NumericMixin) Kind

func (m *NumericMixin) Kind() jsonschema.Kind

func (*NumericMixin) Validate

func (m *NumericMixin) Validate(v interface{}) error

type ObjectMixin

type ObjectMixin[S jsonschema.Keyword] struct {
	MaxProperties        int              `json:"maxProperties,omitempty" validate:"omitempty,gte=0"`
	MinProperties        int              `json:"minProperties,omitempty" validate:"omitempty,gte=0"`
	PropertyNames        S                `json:"propertyNames,omitempty" validate:"omitempty,dive"`
	Required             []string         `json:"required,omitempty" validate:"omitempty,min=1,unique"`
	Properties           map[string]S     `json:"properties,omitempty" validate:"dive"`
	PatternProperties    map[string]S     `json:"patternProperties,omitempty" validate:"dive,keys,regex,endkeys"`
	AdditionalProperties *ser.Or[bool, S] `json:"additionalProperties,omitempty"`
}

func (*ObjectMixin[S]) AppliesTo

func (m *ObjectMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*ObjectMixin[S]) Kind

func (m *ObjectMixin[S]) Kind() jsonschema.Kind

func (*ObjectMixin[S]) Validate

func (m *ObjectMixin[S]) Validate(v interface{}) error

type ReferenceMixin

type ReferenceMixin[S any] struct {
	Ref        string `json:"$ref,omitempty" validate:"uri-reference"`
	DynamicRef string `json:"$dynamicRef,omitempty" validate:"uri-reference"`
	// contains filtered or unexported fields
}

func (*ReferenceMixin[S]) AppliesTo

func (m *ReferenceMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*ReferenceMixin[S]) Kind

func (m *ReferenceMixin[S]) Kind() jsonschema.Kind

func (*ReferenceMixin[S]) Resolve

func (m *ReferenceMixin[S]) Resolve() S

func (*ReferenceMixin[S]) Validate

func (m *ReferenceMixin[S]) Validate(v interface{}) error

func (*ReferenceMixin[S]) WithContext

func (m *ReferenceMixin[S]) WithContext(ctx context.Context) *ReferenceMixin[S]

type Schema

func (*Schema) AppliesTo

func (m *Schema) AppliesTo(t jsonschema.Type) bool

func (*Schema) Keywords

func (m *Schema) Keywords() iter.Seq[jsonschema.Keyword]

func (*Schema) Kind

func (m *Schema) Kind() jsonschema.Kind

func (*Schema) Validate

func (m *Schema) Validate(v interface{}) error

type StringMixin

type StringMixin struct {
	MaxLength int    `json:"maxLength,omitempty" validate:"omitempty,gte=0"`
	MinLength int    `json:"minLength,omitempty" validate:"omitempty,gte=0"`
	Pattern   string `json:"pattern,omitempty"  validate:"regex"`
}

func (*StringMixin) AppliesTo

func (m *StringMixin) AppliesTo(t jsonschema.Type) bool

func (*StringMixin) Kind

func (m *StringMixin) Kind() jsonschema.Kind

func (*StringMixin) Validate

func (m *StringMixin) Validate(v interface{}) error

type UnevaluatedMixin

type UnevaluatedMixin[S jsonschema.Keyword] struct {
	UnevaluatedItems      *ser.Or[bool, S] `json:"unevaluatedItems,omitempty"`
	UnevaluatedProperties *ser.Or[bool, S] `json:"unevaluatedProperties,omitempty"`
}

func (*UnevaluatedMixin[S]) AppliesTo

func (m *UnevaluatedMixin[S]) AppliesTo(t jsonschema.Type) bool

func (*UnevaluatedMixin[S]) Kind

func (m *UnevaluatedMixin[S]) Kind() jsonschema.Kind

func (*UnevaluatedMixin[S]) Validate

func (m *UnevaluatedMixin[S]) Validate(v interface{}) error

type ValidationMixin

type ValidationMixin struct {
	Type   jsonschema.Type   `json:"type,omitempty"`
	Format jsonschema.Format `json:"format,omitempty"`
	Enum   []interface{}     `json:"enum,omitempty"`
	Const  interface{}       `json:"const,omitempty"`
}

func (*ValidationMixin) AppliesTo

func (m *ValidationMixin) AppliesTo(t jsonschema.Type) bool

func (*ValidationMixin) Kind

func (m *ValidationMixin) Kind() jsonschema.Kind

func (*ValidationMixin) Validate

func (m *ValidationMixin) Validate(v interface{}) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL