Annotation Type Schema
-
@Target({FIELD,METHOD,PARAMETER,TYPE}) @Retention(RUNTIME) @Inherited public @interface 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 an extended subset of the JSON Schema Specification Wright Draft 00.- See Also:
- OpenAPI Specification Schema Object
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description java.lang.Class<?>[]
allOf
Provides an array of java class implementations which can be used to describe multiple acceptable schemas.java.lang.Class<?>[]
anyOf
Provides an array of java class implementations which can be used to describe multiple acceptable schemas.java.lang.String
defaultValue
Provides a default value.boolean
deprecated
Specifies that a schema is deprecated and SHOULD be transitioned out of usage.java.lang.String
description
A description of the schema.DiscriminatorMapping[]
discriminatorMapping
An array of discriminator mappings.java.lang.String
discriminatorProperty
Provides a discriminator property value.java.lang.String[]
enumeration
Provides a list of enum values.java.lang.String
example
A free-form property to include an example of an instance for this schema.boolean
exclusiveMaximum
If true, makes the maximum value exclusive, or a less-than criteria.boolean
exclusiveMinimum
If true, makes the minimum value exclusive, or a greater-than criteria.ExternalDocumentation
externalDocs
Additional external documentation for this schema.java.lang.String
format
Provides an optional override for the format.boolean
hidden
Allows schema to be marked as hidden.java.lang.Class<?>
implementation
Provides a java class as implementation for this schema.java.lang.String
maximum
Sets the maximum numeric value for a property.int
maxItems
Only applicable if type=array.int
maxLength
Sets the maximum length of a string value.int
maxProperties
Constrains the number of arbitrary properties when additionalProperties is defined.java.lang.String
minimum
Sets the minimum numeric value for a property.int
minItems
Only applicable if type=array.int
minLength
Sets the minimum length of a string value.int
minProperties
Constrains the number of arbitrary properties when additionalProperties is defined.double
multipleOf
Constrains a value such that when divided by the multipleOf, the remainder must be an integer.java.lang.String
name
The name of the schema or property.java.lang.Class<?>
not
Provides a java class to be used to disallow matching properties.boolean
nullable
Allows sending a null value for the defined schema.java.lang.Class<?>[]
oneOf
Provides an array of java class implementations which can be used to describe multiple acceptable schemas.java.lang.String
pattern
A pattern that the value must satisfy.boolean
readOnly
Relevant only for Schema "properties" definitions.java.lang.String
ref
Reference value to a Schema definition.boolean
required
Mandates whether the annotated item is required or not.java.lang.String[]
requiredProperties
Allows multiple properties in an object to be marked as required.java.lang.String
title
A title to explain the purpose of the schema.SchemaType
type
Provides an override for the basic type of the schema.boolean
uniqueItems
Only applicable if type=array.boolean
writeOnly
Relevant only for Schema "properties" definitions.
-
-
-
Element Detail
-
implementation
java.lang.Class<?> implementation
Provides a java class as implementation for this schema. When provided, additional information in the Schema annotation (except for type information) will augment the java class after introspection.- Returns:
- a class that implements this schema
- Default:
- java.lang.Void.class
-
-
-
oneOf
java.lang.Class<?>[] oneOf
Provides an array of java class implementations which can be used to describe multiple acceptable schemas. If more than one match the derived schemas, a validation error will occur.Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
- Returns:
- the list of possible classes for a single match
- Default:
- {}
-
-
-
anyOf
java.lang.Class<?>[] anyOf
Provides an array of java class implementations which can be used to describe multiple acceptable schemas. If any match, the schema will be considered valid.Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
- Returns:
- the list of possible class matches
- Default:
- {}
-
-
-
allOf
java.lang.Class<?>[] allOf
Provides an array of java class implementations which can be used to describe multiple acceptable schemas. If all match, the schema will be considered valid.Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema.
- Returns:
- the list of classes to match
- Default:
- {}
-
-
-
name
java.lang.String name
The name of the schema or property.The name is REQUIRED when the schema is defined within
Components
. The name will be used as the key to add this schema to the 'schemas' map for reuse.- Returns:
- the name of the schema
- Default:
- ""
-
-
-
format
java.lang.String format
Provides an optional override for the format.If a consumer is unaware of the meaning of the format, they shall fall back to using the basic type without format. For example, if \"type: integer, format: int128\" were used to designate a very large integer, most consumers will not understand how to handle it, and fall back to simply \"type: integer\"
- Returns:
- this schema's format
- Default:
- ""
-
-
-
ref
java.lang.String ref
Reference value to a Schema definition.This property provides a reference to an object defined elsewhere. This property and all other properties are mutually exclusive. If other properties are defined in addition to the ref property then the result is undefined.
- Returns:
- a reference to a schema definition
- Default:
- ""
-
-
-
readOnly
boolean readOnly
Relevant only for Schema "properties" definitions. Declares the property as "read only". This means that it MAY be sent as part of a response but SHOULD NOT be sent as part of the request.If the property is marked as readOnly being true and is in the required list, the required will take effect on the response only. A property MUST NOT be marked as both readOnly and writeOnly being true.
- Returns:
- whether or not this schema is read only
- Default:
- false
-
-
-
writeOnly
boolean writeOnly
Relevant only for Schema "properties" definitions. Declares the property as "write only". Therefore, it MAY be sent as part of a request but SHOULD NOT be sent as part of the response.If the property is marked as writeOnly being true and is in the required list, the required will take effect on the request only. A property MUST NOT be marked as both readOnly and writeOnly being true.
- Returns:
- whether or not this schema is write only
- Default:
- false
-
-
-
example
java.lang.String example
A free-form property to include an example of an instance for this schema.To represent examples that cannot be naturally represented in JSON or YAML, a string value is used to contain the example with escaping where necessary.
When associated with a specific media type, the example string shall be parsed by the consumer to be treated as an object or an array.- Returns:
- an example of this schema
- Default:
- ""
-
-
-
externalDocs
ExternalDocumentation externalDocs
Additional external documentation for this schema.- Returns:
- additional schema documentation
- Default:
- @org.eclipse.microprofile.openapi.annotations.ExternalDocumentation
-
-
-
type
SchemaType type
Provides an override for the basic type of the schema.Value MUST be a string. Multiple types via an array are not supported.
MUST be a valid type per the OpenAPI Specification.- Returns:
- the type of this schema
- Default:
- org.eclipse.microprofile.openapi.annotations.enums.SchemaType.DEFAULT
-
-
-
defaultValue
java.lang.String defaultValue
Provides a default value. The default value represents what would be assumed by the consumer of the input as the value of the schema if one is not provided.Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at the same level.
For example, if type is string, then default can be "foo" but cannot be 1.- Returns:
- the default value of this schema
- Default:
- ""
-
-
-
discriminatorProperty
java.lang.String discriminatorProperty
Provides a discriminator property value. Adds support for polymorphism.The discriminator is an object name that is used to differentiate between other schemas which may satisfy the payload description.
- Returns:
- the discriminator property
- Default:
- ""
-
-
-
discriminatorMapping
DiscriminatorMapping[] discriminatorMapping
An array of discriminator mappings.- Returns:
- the discriminator mappings for this schema
- Default:
- {}
-
-
hidden
boolean hidden
Allows schema to be marked as hidden.- Returns:
- whether or not this schema is hidden
- Default:
- false
-
-
-
maxItems
int maxItems
Only applicable if type=array. Sets the maximum number of items in an array. This integer MUST be greater than, or equal to, 0.An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword.
Ignored if value is Integer.MIN_VALUE.- Returns:
- the maximum number of items in this array
- Default:
- -2147483648
-
-
-
minItems
int minItems
Only applicable if type=array. Sets the minimum number of items in an array. This integer MUST be greater than, or equal to, 0.An array instance is valid against "minItems" if its size is greater than, or equal to, the value of this keyword.
Ignored if value is Integer.MAX_VALUE.- Returns:
- the minimum number of items in this array
- Default:
- 2147483647
-
-
-
uniqueItems
boolean uniqueItems
Only applicable if type=array. Determines if the items in the array SHOULD be unique.If false, the instance validates successfully. If true, the instance validates successfully if all of its elements are unique.
- Returns:
- whether the items in this array are unique
- Default:
- false
-
-