Schema class abstract

The Schema Object allows the definition of input and output data types for OpenAPI 3.1.

It describes the data type, format, constraints, and structure of properties, request bodies, and other parts of the OpenAPI specification.

Available extensions
Annotations
  • @Freezed.new(copyWith: true, fromJson: true, toJson: false, equal: true)

Constructors

Schema({@JsonKey.new(name: r'$ref') String? ref, @JsonKey.new(includeFromJson: false, includeToJson: true) dynamic type, String? format, String? title, String? description, @JsonKey.new(name: 'required') List<String>? $required, Map<String, Schema>? properties, Schema? items, dynamic example, List? examples, @JsonKey.new(name: 'enum') List? enumValues, @JsonKey.new(name: 'default') dynamic $default, Xml? xml, dynamic additionalProperties, num? maximum, num? exclusiveMaximum, num? minimum, num? exclusiveMinimum, ExternalDocs? externalDocs, Discriminator? discriminator, List<Schema>? allOf, List<Schema>? oneOf, List<Schema>? anyOf, Schema? not, bool? nullable, bool? readOnly, bool? writeOnly, bool? allowEmptyValue, String? collectionFormat, int? maxLength, int? minLength, int? maxItems, int? minItems, String? pattern, bool? uniqueItems, int? maxProperties, int? minProperties, num? multipleOf, @JsonKey.new(name: 'deprecated') bool? $deprecated, @JsonKey.new(includeIfNull: false, includeFromJson: false, includeToJson: false) Map<String, dynamic>? extensions, String? $id, String? $schema, String? $vocabulary, String? $anchor, String? $dynamicAnchor, String? $dynamicRef, Map<String, Schema>? $defs, String? contentMediaType, String? contentEncoding, @JsonKey.new(name: 'swagger-extension') bool? swaggerExtension, @JsonKey.new(name: 'const') dynamic const$, Map<String, Schema>? patternProperties, bool? unevaluatedProperties})
Creates a Schema object.
const
factory
Schema.allOf(List<Schema> schemas)
Creates a Schema for a union where all schemas must be valid.
factory
Schema.anyOf(List<Schema> schemas)
Creates a Schema for a union where any of the schemas must be valid.
factory
Schema.array({String? title, String? description, Schema? items, List? examples, bool? readOnly, bool? writeOnly, int? maxItems, int? minItems, bool? uniqueItems, String? collectionFormat, bool? allowEmptyValue, List? $default})
Creates a Schema for an array.
factory
Schema.boolean({String? title, String? description, List? examples, bool? readOnly, bool? writeOnly, bool? $default})
Creates a Schema for a boolean.
factory
Schema.constant(dynamic value)
Creates a Schema with a constant value.
factory
Schema.fromJson(Map<String, dynamic> json)
Creates a Schema from a JSON object.
factory
Schema.integer({String? format, String? title, String? description, List? examples, num? maximum, num? minimum, num? multipleOf, num? exclusiveMaximum, num? exclusiveMinimum, bool? readOnly, bool? writeOnly, int? $default})
Creates a Schema for an integer.
factory
Schema.nullableArray({String? title, String? description, Schema? items, List? examples, bool? readOnly, bool? writeOnly, int? maxItems, int? minItems, bool? uniqueItems, String? collectionFormat, bool? allowEmptyValue, List? $default})
Creates a Schema for a nullable array.
factory
Schema.nullableBoolean({String? title, String? description, List? examples, bool? readOnly, bool? writeOnly, bool? $default})
Creates a Schema for a nullable boolean.
factory
Schema.nullableInteger({String? format, String? title, String? description, List? examples, num? maximum, num? minimum, num? multipleOf, num? exclusiveMaximum, num? exclusiveMinimum, bool? readOnly, bool? writeOnly, int? $default})
Creates a Schema for a nullable integer.
factory
Schema.nullableNumber({String? format, String? title, String? description, List? examples, num? maximum, num? minimum, num? multipleOf, num? exclusiveMaximum, num? exclusiveMinimum, bool? readOnly, bool? writeOnly, num? $default})
Creates a Schema for a nullable number (float or double).
factory
Schema.nullableObject({String? title, String? description, List<String>? $required, Map<String, Schema>? properties, dynamic additionalProperties, Map<String, Schema>? patternProperties, bool? unevaluatedProperties, List? examples, bool? readOnly, bool? writeOnly, int? maxProperties, int? minProperties, Map<String, dynamic>? $default})
Creates a Schema for a nullable object.
factory
Schema.nullableString({String? format, String? title, String? description, List? examples, bool? readOnly, bool? writeOnly, String? $default, int? maxLength, int? minLength, String? pattern})
Creates a Schema for a string.
factory
Schema.number({String? format, String? title, String? description, List? examples, num? maximum, num? minimum, num? multipleOf, num? exclusiveMaximum, num? exclusiveMinimum, bool? readOnly, bool? writeOnly, num? $default})
Creates a Schema for a number (float or double).
factory
Schema.object({String? title, String? description, List<String>? $required, Map<String, Schema>? properties, dynamic additionalProperties, Map<String, Schema>? patternProperties, bool? unevaluatedProperties, List? examples, bool? readOnly, bool? writeOnly, int? maxProperties, int? minProperties, Map<String, dynamic>? $default})
Creates a Schema for an object.
factory
Schema.oneOf(List<Schema> schemas)
Creates a Schema for a union of multiple schemas.
factory
Schema.ref(String ref)
Creates a Schema for a reference to another schema.
factory
Schema.string({String? format, String? title, String? description, List? examples, bool? readOnly, bool? writeOnly, String? $default, int? maxLength, int? minLength, String? pattern})
Creates a Schema for a string.
factory

Properties

$anchor → String?
An anchor for this schema.
no setterinherited
$default → dynamic
The default value for the schema.
no setterinherited
$defs → Map<String, Schema>?
A map of definitions that can be referenced internally.
no setterinherited
$deprecated → bool?
Declares this schema as deprecated.
no setterinherited
$dynamicAnchor → String?
A dynamic anchor for dynamic references.
no setterinherited
$dynamicRef → String?
A dynamic reference to a dynamic anchor.
no setterinherited
$id → String?
A unique identifier for the schema.
no setterinherited
$required → List<String>?
A list of properties that must be present in the object.
no setterinherited
$schema → String?
The schema dialect used.
no setterinherited
$vocabulary → String?
A vocabulary identifier.
no setterinherited
additionalProperties → dynamic
Specifies the schema for any additional properties in the object.
no setterinherited
allOf → List<Schema>?
An array of schemas where the data must be valid against all of the schemas.
no setterinherited
allowEmptyValue → bool?
Sets the ability to pass empty-valued parameters.
no setterinherited
anyOf → List<Schema>?
An array of schemas where the data must be valid against any of the schemas.
no setterinherited
collectionFormat → String?
Determines the format of the array if type array is used.
no setterinherited
const$ → dynamic
A constant value for the schema.
no setterinherited
contentEncoding → String?
The content encoding of a string.
no setterinherited
contentMediaType → String?
The media type of a string.
no setterinherited
copyWith → $SchemaCopyWith<Schema>
Create a copy of Schema with the given fields replaced by the non-null parameter values.
no setterinherited
description → String?
A brief description of the schema.
no setterinherited
discriminator → Discriminator?
A Discriminator object for handling polymorphism.
no setterinherited
enumValues → List?
A list of possible values for an enum.
no setterinherited
example → dynamic
An example value for the schema.
no setterinherited
examples → List?
A list of example values for the schema.
no setterinherited
exclusiveMaximum → num?
The exclusive maximum value for a number.
no setterinherited
exclusiveMinimum → num?
The exclusive minimum value for a number.
no setterinherited
extensions → Map<String, dynamic>?
Vendor extensions (keys like x-*).
no setterinherited
externalDocs → ExternalDocs?
A URL to external documentation for this schema.
no setterinherited
format → String?
The format of the data type (e.g., 'int32', 'date-time', 'email').
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
items → Schema?
For array types, this describes the type of items in the array.
no setterinherited
maximum → num?
The maximum value for a number.
no setterinherited
maxItems → int?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.2.
no setterinherited
maxLength → int?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.1.
no setterinherited
maxProperties → int?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.1
no setterinherited
minimum → num?
The minimum value for a number.
no setterinherited
minItems → int?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.3.
no setterinherited
minLength → int?
integer See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.2.
no setterinherited
minProperties → int?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.4.2
no setterinherited
multipleOf → num?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.1.1.
no setterinherited
not → Schema?
A schema where the data must not be valid against this schema.
no setterinherited
nullable → bool?
A true value indicates that both null values and values of the specified type are allowed.
no setterinherited
oneOf → List<Schema>?
An array of schemas where the data must be valid against one of the schemas.
no setterinherited
pattern → String?
string See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3.
no setterinherited
patternProperties → Map<String, Schema>?
A map of regular expressions to schemas for pattern-based properties.
no setterinherited
properties → Map<String, Schema>?
A map of property names to their respective Schema objects.
no setterinherited
readOnly → bool?
Relevant only for Schema Object properties definitions. Declares the property as "read only".
no setterinherited
ref → String?
A reference to another Schema Object, typically in the components section.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
swaggerExtension → bool?
A vendor-specific swagger extension.
no setterinherited
title → String?
A title for the schema.
no setterinherited
type → dynamic
The data type of the schema (e.g., 'string', 'number', 'array'). In OpenAPI 3.1, this can be a single type or a list of types.
no setterinherited
unevaluatedProperties → bool?
https://stackoverflow.com/questions/79247662/exact-definition-of-unevaluatedproperties-in-jsonschema
no setterinherited
uniqueItems → bool?
See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.3.3.
no setterinherited
writeOnly → bool?
Relevant only for Schema Object properties definitions. Declares the property as "write only".
no setterinherited
xml → Xml?
This MAY be used only on properties schemas. It has no effect on root schemas. Adds Additional metadata to describe the XML representation format of this property.
no setterinherited

Methods

map<TResult extends Object?>(TResult $default(_Schema value)) → TResult

Available on Schema, provided by the SchemaPatterns extension

A switch-like method, using callbacks.
mapOrNull<TResult extends Object?>(TResult? $default(_Schema value)?) → TResult?

Available on Schema, provided by the SchemaPatterns extension

A variant of map that fallback to returning null.
maybeMap<TResult extends Object?>(TResult $default(_Schema value)?, {required TResult orElse()}) → TResult

Available on Schema, provided by the SchemaPatterns extension

A variant of map that fallback to returning orElse.
maybeWhen<TResult extends Object?>(TResult $default(String? ref, dynamic type, String? format, String? title, String? description, List<String>? $required, Map<String, Schema>? properties, Schema? items, dynamic example, List? examples, List? enumValues, dynamic $default, Xml? xml, dynamic additionalProperties, num? maximum, num? exclusiveMaximum, num? minimum, num? exclusiveMinimum, ExternalDocs? externalDocs, Discriminator? discriminator, List<Schema>? allOf, List<Schema>? oneOf, List<Schema>? anyOf, Schema? not, bool? nullable, bool? readOnly, bool? writeOnly, bool? allowEmptyValue, String? collectionFormat, int? maxLength, int? minLength, int? maxItems, int? minItems, String? pattern, bool? uniqueItems, int? maxProperties, int? minProperties, num? multipleOf, bool? $deprecated, Map<String, dynamic>? extensions, String? $id, String? $schema, String? $vocabulary, String? $anchor, String? $dynamicAnchor, String? $dynamicRef, Map<String, Schema>? $defs, String? contentMediaType, String? contentEncoding, bool? swaggerExtension, dynamic const$, Map<String, Schema>? patternProperties, bool? unevaluatedProperties)?, {required TResult orElse()}) → TResult

Available on Schema, provided by the SchemaPatterns extension

A variant of when that fallback to an orElse callback.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, dynamic>
Converts a Schema to a JSON object.
toString() → String
A string representation of this object.
inherited
when<TResult extends Object?>(TResult $default(String? ref, dynamic type, String? format, String? title, String? description, List<String>? $required, Map<String, Schema>? properties, Schema? items, dynamic example, List? examples, List? enumValues, dynamic $default, Xml? xml, dynamic additionalProperties, num? maximum, num? exclusiveMaximum, num? minimum, num? exclusiveMinimum, ExternalDocs? externalDocs, Discriminator? discriminator, List<Schema>? allOf, List<Schema>? oneOf, List<Schema>? anyOf, Schema? not, bool? nullable, bool? readOnly, bool? writeOnly, bool? allowEmptyValue, String? collectionFormat, int? maxLength, int? minLength, int? maxItems, int? minItems, String? pattern, bool? uniqueItems, int? maxProperties, int? minProperties, num? multipleOf, bool? $deprecated, Map<String, dynamic>? extensions, String? $id, String? $schema, String? $vocabulary, String? $anchor, String? $dynamicAnchor, String? $dynamicRef, Map<String, Schema>? $defs, String? contentMediaType, String? contentEncoding, bool? swaggerExtension, dynamic const$, Map<String, Schema>? patternProperties, bool? unevaluatedProperties)) → TResult

Available on Schema, provided by the SchemaPatterns extension

A switch-like method, using callbacks.
whenOrNull<TResult extends Object?>(TResult? $default(String? ref, dynamic type, String? format, String? title, String? description, List<String>? $required, Map<String, Schema>? properties, Schema? items, dynamic example, List? examples, List? enumValues, dynamic $default, Xml? xml, dynamic additionalProperties, num? maximum, num? exclusiveMaximum, num? minimum, num? exclusiveMinimum, ExternalDocs? externalDocs, Discriminator? discriminator, List<Schema>? allOf, List<Schema>? oneOf, List<Schema>? anyOf, Schema? not, bool? nullable, bool? readOnly, bool? writeOnly, bool? allowEmptyValue, String? collectionFormat, int? maxLength, int? minLength, int? maxItems, int? minItems, String? pattern, bool? uniqueItems, int? maxProperties, int? minProperties, num? multipleOf, bool? $deprecated, Map<String, dynamic>? extensions, String? $id, String? $schema, String? $vocabulary, String? $anchor, String? $dynamicAnchor, String? $dynamicRef, Map<String, Schema>? $defs, String? contentMediaType, String? contentEncoding, bool? swaggerExtension, dynamic const$, Map<String, Schema>? patternProperties, bool? unevaluatedProperties)?) → TResult?

Available on Schema, provided by the SchemaPatterns extension

A variant of when that fallback to returning null

Operators

operator ==(Object other) → bool
The equality operator.
inherited