Documentation
¶
Index ¶
- type AdditionalProperties
- func (ap *AdditionalProperties) HaveAdditionalProperties() bool
- func (ap *AdditionalProperties) IsFalse() bool
- func (ap *AdditionalProperties) IsSchema() bool
- func (ap *AdditionalProperties) MarshalJSON() ([]byte, error)
- func (ap *AdditionalProperties) NoAdditionalProperties() bool
- func (ap *AdditionalProperties) UnmarshalJSON(b []byte) error
- type Schema
- func (schema *Schema) IsRequired(propName string) bool
- func (schema *Schema) NoAdditionalProps() bool
- func (schema *Schema) SchemaType() Type
- func (schema *Schema) SinglePatternProp() *Schema
- func (schema *Schema) UnmarshalJSON(b []byte) error
- func (schema *Schema) UnwrapNullableSchema() (*Schema, bool)
- type Type
- type TypeSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AdditionalProperties ¶
type AdditionalProperties struct {
*Schema
// contains filtered or unexported fields
}
func AdditionalPropertiesBool ¶
func AdditionalPropertiesBool(b bool) AdditionalProperties
func (*AdditionalProperties) HaveAdditionalProperties ¶
func (ap *AdditionalProperties) HaveAdditionalProperties() bool
func (*AdditionalProperties) IsFalse ¶
func (ap *AdditionalProperties) IsFalse() bool
func (*AdditionalProperties) IsSchema ¶
func (ap *AdditionalProperties) IsSchema() bool
func (*AdditionalProperties) MarshalJSON ¶
func (ap *AdditionalProperties) MarshalJSON() ([]byte, error)
func (*AdditionalProperties) NoAdditionalProperties ¶
func (ap *AdditionalProperties) NoAdditionalProperties() bool
func (*AdditionalProperties) UnmarshalJSON ¶
func (ap *AdditionalProperties) UnmarshalJSON(b []byte) error
type Schema ¶
type Schema struct {
// Core
Schema string `json:"$schema"`
Vocabulary map[string]bool `json:"$vocabulary"`
ID string `json:"$id"`
Ref string `json:"$ref"`
DynamicRef string `json:"$dynamicRef"`
Defs map[string]*Schema `json:"$defs"`
Comment string `json:"$comment"`
// Applying subschemas with logic
AllOf []Schema `json:"allOf"`
AnyOf []Schema `json:"anyOf"`
OneOf []Schema `json:"oneOf"`
Not []Schema `json:"not"`
// Applying subschemas conditionally
If *Schema `json:"if"`
Then *Schema `json:"then"`
Else *Schema `json:"else"`
DependentSchemas map[string]Schema `json:"dependentSchemas"`
// Applying subschemas to arrays
PrefixItems []Schema `json:"prefixItems"`
Items *Schema `json:"items"`
Contains *Schema `json:"contains"`
// Applying subschemas to objects
Properties map[string]*Schema `json:"properties"`
PatternProperties map[string]*Schema `json:"patternProperties"`
AdditionalProperties *AdditionalProperties `json:"additionalProperties"`
PropertyNames *Schema `json:"propertyNames"`
// Validation
Type TypeSet `json:"type"`
Enum []interface{} `json:"enum"`
Const interface{} `json:"const"`
// Validation for numbers
MultipleOf json.Number `json:"multipleOf"`
Maximum json.Number `json:"maximum"`
ExclusiveMaximum json.Number `json:"exclusiveMaximum"`
Minimum json.Number `json:"minimum"`
ExclusiveMinimum json.Number `json:"exclusiveMinimum"`
// Validation for strings
MaxLength int `json:"maxLength"`
MinLength int `json:"minLength"`
Pattern string `json:"pattern"`
// Validation for arrays
MaxItems int `json:"maxItems"`
MinItems int `json:"minItems"`
UniqueItems bool `json:"uniqueItems"`
MaxContains int `json:"maxContains"`
MinContains int `json:"minContains"`
// Validation for objects
MaxProperties int `json:"maxProperties"`
MinProperties int `json:"minProperties"`
Required []string `json:"required"`
DependentRequired map[string][]string `json:"dependentRequired"`
// Basic metadata annotations
Title string `json:"title"`
Description string `json:"description"`
Default interface{} `json:"default"`
Deprecated bool `json:"deprecated"`
ReadOnly bool `json:"readOnly"`
WriteOnly bool `json:"writeOnly"`
Examples []interface{} `json:"examples"`
}
func LoadSchema ¶
LoadSchema loads a schema from a JSON file. if input schema does not have $id, it will be set to the file URI.
func (*Schema) IsRequired ¶
func (*Schema) NoAdditionalProps ¶
func (*Schema) SchemaType ¶
func (*Schema) SinglePatternProp ¶
func (*Schema) UnmarshalJSON ¶
func (*Schema) UnwrapNullableSchema ¶
UnwrapNullableSchema unwraps a schema in the form:
{
"oneOf": {
{ "type": "null" },
<sub-schema>
}
}
or
{
"type": ["null", <sub-type>]
}
Click to show internal directories.
Click to hide internal directories.