All Superinterfaces:
Constructible, Extensible<Schema>, Reference<Schema>

public interface Schema extends Extensible<Schema>, Constructible, Reference<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 a superset of the JSON Schema Specification Draft 2020-12.

For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.

Any time a Schema Object can be used, a Reference Object can be used in its place. This allows referencing an existing definition instead of defining the same Schema again.

See Also:
  • Method Details

    • getDiscriminator

      Discriminator getDiscriminator()
      Returns the discriminator property from this Schema instance.
      Returns:
      the discriminator that is used to differentiate between the schemas which may satisfy the payload description
    • setDiscriminator

      void setDiscriminator(Discriminator discriminator)
      Sets the discriminator property of this Schema instance to the given object.
      Parameters:
      discriminator - the object that is used to differentiate between the schemas which may satisfy the payload description
    • discriminator

      default Schema discriminator(Discriminator discriminator)
      Sets the discriminator property of this Schema instance to the given object.
      Parameters:
      discriminator - the object that is used to differentiate between the schemas which may satisfy the payload description
      Returns:
      the current Schema instance
    • getTitle

      String getTitle()
      Returns the title property from this Schema instance.
      Returns:
      the title assigned to this Schema
    • setTitle

      void setTitle(String title)
      Sets the title property of this Schema instance to the given string.
      Parameters:
      title - a title to assign to this Schema
    • title

      default Schema title(String title)
      Sets the title property of this Schema instance to the given string.
      Parameters:
      title - a title to assign to this Schema
      Returns:
      the current Schema instance
    • getDefaultValue

      Object getDefaultValue()
      Returns the default value property from this Schema instance.
      Returns:
      the default value object
    • setDefaultValue

      void setDefaultValue(Object defaultValue)
      Set the default value property of this Schema instance to the value given.
      Parameters:
      defaultValue - a value to use as the default
    • defaultValue

      default Schema defaultValue(Object defaultValue)
      Set the default value property of this Schema instance to the value given.
      Parameters:
      defaultValue - a value to use as the default
      Returns:
      the current Schema instance
    • getEnumeration

      List<Object> getEnumeration()
      Returns the enumerated list of values allowed for objects defined by this Schema.
      Returns:
      a copy List (potentially immutable) of values allowed for objects defined by this Schema
    • setEnumeration

      void setEnumeration(List<Object> enumeration)
      Sets the enumerated list of values allowed for objects defined by this Schema.
      Parameters:
      enumeration - a list of values allowed
    • enumeration

      default Schema enumeration(List<Object> enumeration)
    • addEnumeration

      Schema addEnumeration(Object enumeration)
      Adds an item of the appropriate type to the enumerated list of values allowed.
      Parameters:
      enumeration - an object to add to the enumerated values
      Returns:
      current Schema instance
    • removeEnumeration

      void removeEnumeration(Object enumeration)
      Removes an item of the appropriate type to the enumerated list of values allowed.
      Parameters:
      enumeration - an object to add to the enumerated values
    • getMultipleOf

      BigDecimal getMultipleOf()
      Returns the multipleOf property from this Schema instance.

      minimum: 0

      Returns:
      the positive number that restricts the value of the object
    • setMultipleOf

      void setMultipleOf(BigDecimal multipleOf)
      Sets the multipleOf property of this Schema instance to the value given.
      Parameters:
      multipleOf - a positive number that restricts the value of objects described by this Schema
    • multipleOf

      default Schema multipleOf(BigDecimal multipleOf)
      Sets the multipleOf property of this Schema instance to the value given.
      Parameters:
      multipleOf - a positive number that restricts the value of objects described by this Schema
      Returns:
      the current Schema instance
    • getMaximum

      BigDecimal getMaximum()
      Returns the maximum property from this Schema instance.
      Returns:
      the value that a numeric object must be less than or equal to
    • setMaximum

      void setMaximum(BigDecimal maximum)
      Sets the maximum property of this Schema instance to the value given.
      Parameters:
      maximum - the value that a numeric object must be less than or equal to
    • maximum

      default Schema maximum(BigDecimal maximum)
      Sets the maximum property of this Schema instance to the value given.
      Parameters:
      maximum - the value that a numeric object must be less than or equal to
      Returns:
      the current Schema instance
    • getExclusiveMaximum

      BigDecimal getExclusiveMaximum()
      Returns the exclusiveMaximum property from this Schema instance.
      Returns:
      the value that a numeric object must be less than
      Since:
      4.0
    • setExclusiveMaximum

      void setExclusiveMaximum(BigDecimal exclusiveMaximum)
      Sets the exclusiveMaximum property of this Schema instance to the value given.
      Parameters:
      exclusiveMaximum - the value that a numeric object must be less than
      Since:
      4.0
    • exclusiveMaximum

      default Schema exclusiveMaximum(BigDecimal exclusiveMaximum)
      Sets the exclusiveMaximum property of this Schema instance to the value given.
      Parameters:
      exclusiveMaximum - the value that a numeric object must be less than
      Returns:
      the current Schema instance
      Since:
      4.0
    • getMinimum

      BigDecimal getMinimum()
      Returns the minimum property from this Schema instance.
      Returns:
      the value that a numeric object must be greater than or equal to
    • setMinimum

      void setMinimum(BigDecimal minimum)
      Sets the minimum property of this Schema instance to the value given.
      Parameters:
      minimum - the value that a numeric object must be greater than or equal to
    • minimum

      default Schema minimum(BigDecimal minimum)
      Sets the minimum property of this Schema instance to the value given.
      Parameters:
      minimum - the value that a numeric object must be greater than or equal to
      Returns:
      the current Schema instance
    • getExclusiveMinimum

      BigDecimal getExclusiveMinimum()
      Returns the exclusiveMinimum property from this Schema instance.
      Returns:
      the value that a numeric object must be greater than
      Since:
      4.0
    • setExclusiveMinimum

      void setExclusiveMinimum(BigDecimal exclusiveMinimum)
      Sets the exclusiveMinimum property of this Schema instance to the value given.
      Parameters:
      exclusiveMinimum - the value that a numeric object must be greater than
      Since:
      4.0
    • exclusiveMinimum

      default Schema exclusiveMinimum(BigDecimal exclusiveMinimum)
      Sets the exclusiveMinimum property of this Schema instance to the value given.
      Parameters:
      exclusiveMinimum - the value that a numeric object must be greater than
      Returns:
      the current Schema instance
      Since:
      4.0
    • getMaxLength

      Integer getMaxLength()
      Returns the maxLength property from this Schema instance.

      minimum: 0

      Returns:
      the maximum length of objects e.g. strings
    • setMaxLength

      void setMaxLength(Integer maxLength)
      Sets the maxLength property of this Schema instance to the value given.
      Parameters:
      maxLength - the maximum length of objects defined by this Schema
    • maxLength

      default Schema maxLength(Integer maxLength)
      Sets the maxLength property of this Schema instance to the value given.
      Parameters:
      maxLength - the maximum length of objects defined by this Schema
      Returns:
      the current Schema instance
    • getMinLength

      Integer getMinLength()
      Returns the minLength property from this Schema instance.

      minimum: 0

      Returns:
      the minimum length of objects e.g. strings
    • setMinLength

      void setMinLength(Integer minLength)
      Sets the minLength property of this Schema instance to the value given.
      Parameters:
      minLength - the minimum length of objects defined by this Schema
    • minLength

      default Schema minLength(Integer minLength)
      Sets the minLength property of this Schema instance to the value given.
      Parameters:
      minLength - the minimum length of objects defined by this Schema
      Returns:
      the current Schema instance
    • getPattern

      String getPattern()
      Returns the pattern property from this Schema instance.
      Returns:
      the regular expression which restricts the value of an object e.g. a string
    • setPattern

      void setPattern(String pattern)
      Sets the pattern property of this Schema instance to the string given.
      Parameters:
      pattern - the regular expression which restricts objects defined by this Schema
    • pattern

      default Schema pattern(String pattern)
      Sets the pattern property of this Schema instance to the string given.
      Parameters:
      pattern - the regular expression which restricts objects defined by this Schema
      Returns:
      the current Schema instance
    • getMaxItems

      Integer getMaxItems()
      Returns the maxItems property from this Schema instance.

      minimum: 0

      Returns:
      the maximum number of elements in the object e.g. array elements
    • setMaxItems

      void setMaxItems(Integer maxItems)
      Sets the maxItems property of this Schema instance to the value given.
      Parameters:
      maxItems - the maximum number of elements in objects defined by this Schema e.g. array elements
    • maxItems

      default Schema maxItems(Integer maxItems)
      Sets the maxItems property of this Schema instance to the value given.
      Parameters:
      maxItems - the maximum number of elements in objects defined by this Schema e.g. array elements
      Returns:
      the current Schema instance
    • getMinItems

      Integer getMinItems()
      Returns the minItems property from this Schema instance.

      minimum: 0

      Returns:
      the minimum number of elements in the object e.g. array elements
    • setMinItems

      void setMinItems(Integer minItems)
      Sets the minItems property of this Schema instance to the value given.
      Parameters:
      minItems - the minimum number of elements in objects defined by this Schema e.g. array elements
    • minItems

      default Schema minItems(Integer minItems)
      Sets the minItems property of this Schema instance to the value given.
      Parameters:
      minItems - the minimum number of elements in objects defined by this Schema e.g. array elements
      Returns:
      the current Schema instance
    • getUniqueItems

      Boolean getUniqueItems()
      Returns the uniqueItems property from this Schema instance.
      Returns:
      whether to ensure items are unique
    • setUniqueItems

      void setUniqueItems(Boolean uniqueItems)
      Sets the uniqueItems property of this Schema instance to the value given.
      Parameters:
      uniqueItems - ensure the items (e.g. array elements) are unique in objects defined by this Schema
    • uniqueItems

      default Schema uniqueItems(Boolean uniqueItems)
      Sets the uniqueItems property of this Schema instance to the value given.
      Parameters:
      uniqueItems - ensure the items (e.g. array elements) are unique in objects defined by this Schema
      Returns:
      the current Schema instance
    • getMaxProperties

      Integer getMaxProperties()
      Returns the maxProperties property from this Schema instance.

      minimum: 0

      Returns:
      the maximum number of properties allowed in the object
    • setMaxProperties

      void setMaxProperties(Integer maxProperties)
      Sets the maxProperties property of this Schema instance to the value given.
      Parameters:
      maxProperties - limit the number of properties in objects defined by this Schema
    • maxProperties

      default Schema maxProperties(Integer maxProperties)
      Sets the maxProperties property of this Schema instance to the value given.
      Parameters:
      maxProperties - limit the number of properties in objects defined by this Schema
      Returns:
      the current Schema instance
    • getMinProperties

      Integer getMinProperties()
      Returns the minProperties property from this Schema instance.

      minimum: 0

      Returns:
      the minimum number of properties allowed in the object
    • setMinProperties

      void setMinProperties(Integer minProperties)
      Sets the minProperties property of this Schema instance to the value given.
      Parameters:
      minProperties - limit the number of properties in objects defined by this Schema
    • minProperties

      default Schema minProperties(Integer minProperties)
      Sets the minProperties property of this Schema instance to the value given.
      Parameters:
      minProperties - limit the number of properties in objects defined by this Schema
      Returns:
      the current Schema instance
    • getRequired

      List<String> getRequired()
      Returns the required property from this Schema instance.
      Returns:
      a copy List (potentially immutable) of fields required in objects defined by this Schema
    • setRequired

      void setRequired(List<String> required)
      Sets the list of fields required in objects defined by this Schema.
      Parameters:
      required - the list of fields required in objects defined by this Schema
    • required

      default Schema required(List<String> required)
      Sets the list of fields required in objects defined by this Schema.
      Parameters:
      required - the list of fields required in objects defined by this Schema
      Returns:
      the current Schema instance
    • addRequired

      Schema addRequired(String required)
      Adds the name of an item to the list of fields required in objects defined by this Schema.
      Parameters:
      required - the name of an item required in objects defined by this Schema instance
      Returns:
      the current Schema instance
    • removeRequired

      void removeRequired(String required)
      Removes the name of an item to the list of fields required in objects defined by this Schema.
      Parameters:
      required - the name of an item required in objects defined by this Schema instance
    • getType

      Returns the type property of this Schema instance. Defines the types which are valid.
      Returns:
      a copy List (potentially immutable) of the allowed types
    • setType

      void setType(List<Schema.SchemaType> types)
      Sets the type property of this Schema instance. Defines the types which are valid.
      Parameters:
      types - a list of the allowed types
    • type

      default Schema type(List<Schema.SchemaType> types)
      Sets the type property of this Schema instance. Defines the types which are valid.
      Parameters:
      types - a list of the allowed types
      Returns:
      current Schema instance
      Since:
      "4.0"
    • addType

      Schema addType(Schema.SchemaType type)
      Adds a type to the type list.
      Parameters:
      type - the type to add to the type list
      Returns:
      current Schema instance
      Since:
      "4.0"
    • removeType

      void removeType(Schema.SchemaType type)
      Removes a type from the type list.
      Parameters:
      type - the type to remove from the type list
      Since:
      "4.0"
    • getNot

      Schema getNot()
      Returns a Schema which describes properties not allowed in objects defined by the current schema.
      Returns:
      the not property's schema
    • setNot

      void setNot(Schema not)
      Sets the not property to a Schema which describes properties not allowed in objects defined by the current schema.
      Parameters:
      not - the Schema which describes properties not allowed
    • not

      default Schema not(Schema not)
      Sets the not property to a Schema which describes properties not allowed in objects defined by the current schema.
      Parameters:
      not - the Schema which describes properties not allowed
      Returns:
      the current Schema instance
    • getProperties

      Map<String,Schema> getProperties()
      Returns the properties defined in this Schema.
      Returns:
      a copy Map (potentially immutable) which associates property names with the schemas that describe their contents
    • setProperties

      void setProperties(Map<String,Schema> properties)
      Sets the properties of this Schema instance to the map provided.
      Parameters:
      properties - a map which associates property names with the schemas that describe their contents
    • properties

      default Schema properties(Map<String,Schema> properties)
      Sets the properties of this Schema instance to the map provided.
      Parameters:
      properties - a map which associates property names with the schemas that describe their contents
      Returns:
      the current Schema instance
    • addProperty

      Schema addProperty(String key, Schema propertySchema)
      Adds a Schema property of the provided name using the given schema.
      Parameters:
      key - the name of a new Schema property
      propertySchema - the Schema which describes the properties of the named property. null values will be rejected (implementation will throw an exception) or ignored.
      Returns:
      the current Schema instance
    • removeProperty

      void removeProperty(String key)
      Removes a Schema property of the provided name using the given schema.
      Parameters:
      key - the name of a new Schema property
    • getAdditionalPropertiesSchema

      Schema getAdditionalPropertiesSchema()
      Returns the value of the "additionalProperties" setting, which indicates whether properties not otherwise defined are allowed. This setting MUST either be a Boolean or Schema, they can not be set both at the same time.

      This method returns a Schema, for the Boolean getter use getAdditionalPropertiesBoolean()

      • If "additionalProperties" is a Schema, then additional properties are allowed but should conform to the Schema.
      Returns:
      this Schema's additionalProperties property (as Schema)
    • getAdditionalPropertiesBoolean

      @Deprecated(since="4.0") Boolean getAdditionalPropertiesBoolean()
      Deprecated.
      use getAdditionalPropertiesSchema() which may return a boolean-valued schema
      Returns the value of the "additionalProperties" setting, which indicates whether properties not otherwise defined are allowed. This setting MUST either be a Boolean or Schema, they can not be set both at the same time.

      This method returns a Boolean, for the Schema getter use getAdditionalPropertiesSchema()

      • If "additionalProperties" is true, then any additional properties are allowed.
      • If "additionalProperties" is false, then only properties covered by the "properties" and "patternProperties" are allowed.
      Returns:
      this Schema's additionalProperties property (as Boolean)
    • setAdditionalPropertiesSchema

      void setAdditionalPropertiesSchema(Schema additionalProperties)
      Sets the Schema which defines additional properties not defined by "properties" or "patternProperties". See the javadoc for getAdditionalPropertiesSchema() for more details on this setting. Note that this version of the setter is mutually exclusive with the Boolean variants (see setAdditionalPropertiesBoolean(Boolean)).
      Parameters:
      additionalProperties - a Schema which defines additional properties
    • setAdditionalPropertiesBoolean

      @Deprecated(since="4.0") void setAdditionalPropertiesBoolean(Boolean additionalProperties)
      Deprecated.
      use setAdditionalPropertiesSchema(Schema) with a boolean-valued schema
      Sets the value of "additionalProperties" to either True or False. See the javadoc for getAdditionalPropertiesBoolean() for more details on this setting. Note that this version of the setter is mutually exclusive with the Schema variants (see setAdditionalPropertiesSchema(Schema)).
      Parameters:
      additionalProperties - a Schema which defines additional properties
    • additionalPropertiesSchema

      default Schema additionalPropertiesSchema(Schema additionalProperties)
      Sets the Schema which defines additional properties not defined by "properties" or "patternProperties". See the javadoc for getAdditionalPropertiesSchema() for more details on this setting. Note that this version of the setter is mutually exclusive with the Boolean variants (see additionalPropertiesBoolean(Boolean)).
      Parameters:
      additionalProperties - a Schema which defines additional properties
      Returns:
      the current Schema instance
    • additionalPropertiesBoolean

      @Deprecated(since="4.0") default Schema additionalPropertiesBoolean(Boolean additionalProperties)
      Deprecated.
      use additionalPropertiesSchema(Schema) with a boolean-valued schema
      Sets the value of "additionalProperties" to either True or False. See the javadoc for getAdditionalPropertiesBoolean() for more details on this setting. Note that this version of the setter is mutually exclusive with the Schema variants (see additionalPropertiesSchema(Schema)).
      Parameters:
      additionalProperties - a Schema which defines additional properties
      Returns:
      the current Schema instance
    • getDescription

      String getDescription()
      Returns a description of the purpose of this Schema.
      Returns:
      a string containing a description
    • setDescription

      void setDescription(String description)
      Sets the description property of this Schema to the given string.
      Parameters:
      description - a string containing a description of the purpose of this Schema
    • description

      default Schema description(String description)
      Sets the description property of this Schema to the given string.
      Parameters:
      description - a string containing a description of the purpose of this Schema
      Returns:
      the current Schema instance
    • getFormat

      String getFormat()
      Returns the format property from this Schema instance. This property clarifies the data type specified in the type property.
      Returns:
      a string describing the format of the data in this Schema
    • setFormat

      void setFormat(String format)
      Sets the format property of this Schema instance to the given string. The value may be one of the formats described in the OAS or a user defined format.
      Parameters:
      format - the string specifying the data format
    • format

      default Schema format(String format)
      Sets the format property of this Schema instance to the given string. The value may be one of the formats described in the OAS or a user defined format.
      Parameters:
      format - the string specifying the data format
      Returns:
      the current Schema instance
    • getReadOnly

      Boolean getReadOnly()
      Returns the readOnly property from this Schema instance.
      Returns:
      indication that the Schema is only valid in a response message
    • setReadOnly

      void setReadOnly(Boolean readOnly)
      Sets the readOnly property of this Schema.
      Parameters:
      readOnly - true indicates the Schema should not be sent as part of a request message
    • readOnly

      default Schema readOnly(Boolean readOnly)
      Sets the readOnly property of this Schema.
      Parameters:
      readOnly - true indicates the Schema should not be sent as part of a request message
      Returns:
      the current Schema instance
    • getWriteOnly

      Boolean getWriteOnly()
      Returns the writeOnly property from this Schema instance.
      Returns:
      indication that the Schema is only valid in a request message
    • setWriteOnly

      void setWriteOnly(Boolean writeOnly)
      Sets the writeOnly property of this Schema.
      Parameters:
      writeOnly - true indicates the Schema should not be sent as part of a response message
    • writeOnly

      default Schema writeOnly(Boolean writeOnly)
      Sets the writeOnly property of this Schema.
      Parameters:
      writeOnly - true indicates the Schema should not be sent as part of a response message
      Returns:
      the current Schema instance
    • getExample

      @Deprecated(since="4.0") Object getExample()
      Deprecated.
      Returns the example property from this Schema instance.
      Returns:
      an object which is an example of an instance of this Schema
    • setExample

      @Deprecated(since="4.0") void setExample(Object example)
      Deprecated.
      Sets the example property of this Schema instance. To represent examples that cannot be naturally represented in JSON or YAML, a string value can be used to contain the example with escaping where necessary.
      Parameters:
      example - an object which is an instance of this Schema
    • example

      @Deprecated(since="4.0") default Schema example(Object example)
      Deprecated.
      Sets the example property of this Schema instance. To represent examples that cannot be naturally represented in JSON or YAML, a string value can be used to contain the example with escaping where necessary.
      Parameters:
      example - an object which is an instance of this Schema
      Returns:
      the current Schema instance
    • getExternalDocs

      ExternalDocumentation getExternalDocs()
      Returns the externalDocs property from this Schema instance.
      Returns:
      additional external documentation for this Schema
    • setExternalDocs

      void setExternalDocs(ExternalDocumentation externalDocs)
      Sets the externalDocs property of this Schema to the indicated value.
      Parameters:
      externalDocs - an additional external documentation object
    • externalDocs

      default Schema externalDocs(ExternalDocumentation externalDocs)
      Sets the externalDocs property of this Schema to the indicated value.
      Parameters:
      externalDocs - an additional external documentation object
      Returns:
      the current Schema instance
    • getDeprecated

      Boolean getDeprecated()
      Returns the deprecated property from this Schema instance.
      Returns:
      indication that the Schema is deprecated and should be transitioned out of usage
    • setDeprecated

      void setDeprecated(Boolean deprecated)
      Sets the deprecated property of this Schema. This specifies that the Schema is deprecated and should be transitioned out of usage
      Parameters:
      deprecated - true to indicate this Schema is deprecated
    • deprecated

      default Schema deprecated(Boolean deprecated)
      Sets the deprecated property of this Schema. This specifies that the Schema is deprecated and should be transitioned out of usage
      Parameters:
      deprecated - true to indicate this Schema is deprecated
      Returns:
      the current Schema instance
    • getXml

      XML getXml()
      Returns the xml property from this Schema instance.
      Returns:
      a metadata object that allows for more fine-tuned XML model definitions
    • setXml

      void setXml(XML xml)
      Sets the xml property of this Schema instance. It may only be set on properties schemas and adds additional metadata to describe the XML representation of this property.
      Parameters:
      xml - a metadata object to describe the XML representation of this property
    • xml

      default Schema xml(XML xml)
      Sets the xml property of this Schema instance. It may only be set on properties schemas and adds additional metadata to describe the XML representation of this property.
      Parameters:
      xml - a metadata object to describe the XML representation of this property
      Returns:
      the current Schema instance
    • getItems

      Schema getItems()
      Returns the Schema used for all the elements of an array typed Schema.
      Returns:
      the Schema used for all the elements
    • setItems

      void setItems(Schema items)
      Set the Schema used for all the elements of an array typed Schema.
      Parameters:
      items - the Schema used by this array
    • items

      default Schema items(Schema items)
      Set the Schema used for all the elements of an array typed Schema.
      Parameters:
      items - the Schema used by this array
      Returns:
      the current Schema instance
    • getAllOf

      List<Schema> getAllOf()
      Returns the schemas used by the allOf property.
      Returns:
      a copy List (potentially immutable) of schemas used by the allOf property
    • setAllOf

      void setAllOf(List<Schema> allOf)
      Sets the schemas used by the allOf property of this Schema.
      Parameters:
      allOf - the list of schemas used by the allOf property
    • allOf

      default Schema allOf(List<Schema> allOf)
      Sets the schemas used by the allOf property of this Schema.
      Parameters:
      allOf - the list of schemas used by the allOf property
      Returns:
      the current Schema instance
    • addAllOf

      Schema addAllOf(Schema allOf)
      Adds the given Schema to the list of schemas used by the allOf property.
      Parameters:
      allOf - a Schema to use with the allOf property
      Returns:
      the current Schema instance
    • removeAllOf

      void removeAllOf(Schema allOf)
      Removes the given Schema to the list of schemas used by the allOf property.
      Parameters:
      allOf - a Schema to use with the allOf property
    • getAnyOf

      List<Schema> getAnyOf()
      Returns the schemas used by the anyOf property.
      Returns:
      a copy List (potentially immutable) of schemas used by the anyOf property
    • setAnyOf

      void setAnyOf(List<Schema> anyOf)
      Sets the schemas used by the anyOf property of this Schema.
      Parameters:
      anyOf - the list of schemas used by the anyOf property
    • anyOf

      default Schema anyOf(List<Schema> anyOf)
      Sets the schemas used by the anyOf property of this Schema.
      Parameters:
      anyOf - the list of schemas used by the anyOf property
      Returns:
      the current Schema instance
    • addAnyOf

      Schema addAnyOf(Schema anyOf)
      Adds the given Schema to the list of schemas used by the anyOf property.
      Parameters:
      anyOf - a Schema to use with the anyOf property
      Returns:
      the current Schema instance
    • removeAnyOf

      void removeAnyOf(Schema anyOf)
      Removes the given Schema to the list of schemas used by the anyOf property.
      Parameters:
      anyOf - a Schema to use with the anyOf property
    • getOneOf

      List<Schema> getOneOf()
      Returns the schemas used by the oneOf property.
      Returns:
      a copy List (potentially immutable) of schemas used by the oneOf property
    • setOneOf

      void setOneOf(List<Schema> oneOf)
      Sets the schemas used by the oneOf property of this Schema.
      Parameters:
      oneOf - the list of schemas used by the oneOf property
    • oneOf

      default Schema oneOf(List<Schema> oneOf)
      Sets the schemas used by the oneOf property of this Schema.
      Parameters:
      oneOf - the list of schemas used by the oneOf property
      Returns:
      the current Schema instance
    • addOneOf

      Schema addOneOf(Schema oneOf)
      Adds the given Schema to the list of schemas used by the oneOf property.
      Parameters:
      oneOf - a Schema to use with the oneOf property
      Returns:
      the current Schema instance
    • removeOneOf

      void removeOneOf(Schema oneOf)
      Removes the given Schema to the list of schemas used by the oneOf property.
      Parameters:
      oneOf - a Schema to use with the oneOf property
    • getSchemaDialect

      String getSchemaDialect()
      Returns the schema dialect in use. This is the value of the $schema property.
      Returns:
      the schema dialect name, or null for the default
      Since:
      4.0
    • setSchemaDialect

      void setSchemaDialect(String schemaDialect)
      Sets the schema dialect in use. This is the value of the $schema property.
      Parameters:
      schemaDialect - the schema dialect name, or null for the default
      Since:
      4.0
    • schemaDialect

      default Schema schemaDialect(String schemaDialect)
      Sets the schema dialect in use. This is the value of the $schema property.
      Parameters:
      schemaDialect - the schema dialect name, or null for the default
      Returns:
      the current Schema instance
      Since:
      4.0
    • getComment

      String getComment()
      Returns the comment to be included in the $comment property of the schema.
      Returns:
      the comment, or null if no comment is set
      Since:
      4.0
    • setComment

      void setComment(String comment)
      Sets the comment to be included in the $comment property of the schema.
      Parameters:
      comment - the comment, or null to remove any comment
      Since:
      4.0
    • comment

      default Schema comment(String comment)
      Sets the comment to be included in the $comment property of the schema.
      Parameters:
      comment - the comment, or null to remove any comment
      Returns:
      the current Schema instance
      Since:
      4.0
    • getIfSchema

      Schema getIfSchema()
      Returns the "if" schema. If an object is valid against the "if" schema, then it must also be valid against the "then" schema, otherwise it must be valid against the "else" schema.
      Returns:
      the if schema
      Since:
      4.0
    • setIfSchema

      void setIfSchema(Schema ifSchema)
      Sets the "if" schema. If an object is valid against the "if" schema, then it must also be valid against the "then" schema, otherwise it must be valid against the "else" schema.
      Parameters:
      ifSchema - the if schema
      Since:
      4.0
    • ifSchema

      default Schema ifSchema(Schema ifSchema)
      Sets the "if" schema. If an object is valid against the "if" schema, then it must also be valid against the "then" schema, otherwise it must be valid against the "else" schema.
      Parameters:
      ifSchema - the if schema
      Returns:
      the current Schema instance
      Since:
      4.0
    • getThenSchema

      Schema getThenSchema()
      Returns the "then" schema. If an object is valid against the "if" schema, then it must also be valid against the "then" schema.
      Returns:
      the then schema
      Since:
      4.0
    • setThenSchema

      void setThenSchema(Schema thenSchema)
      Sets the "then" schema. If an object is valid against the "if" schema, then it must also be valid against the "then" schema.
      Parameters:
      thenSchema - the then schema
      Since:
      4.0
    • thenSchema

      default Schema thenSchema(Schema thenSchema)
      Sets the "then" schema. If an object is valid against the "if" schema, then it must also be valid against the "then" schema.
      Parameters:
      thenSchema - the then schema
      Returns:
      the current Schema instance
      Since:
      4.0
    • getElseSchema

      Schema getElseSchema()
      Returns the "else" schema. If an object is not valid against the "if" schema, then it must be valid against the "else" schema.
      Returns:
      the else schema
      Since:
      4.0
    • setElseSchema

      void setElseSchema(Schema elseSchema)
      Sets the "else" schema. If an object is not valid against the "if" schema, then it must be valid against the "else" schema.
      Parameters:
      elseSchema - the else schema
      Since:
      4.0
    • elseSchema

      default Schema elseSchema(Schema elseSchema)
      Sets the "else" schema. If an object is not valid against the "if" schema, then it must be valid against the "else" schema.
      Parameters:
      elseSchema - the else schema
      Returns:
      the current Schema instance
      Since:
      4.0
    • getDependentSchemas

      Map<String,Schema> getDependentSchemas()
      Returns the dependentSchemas property of this Schema instance.

      For each name and property pair in the map, if the object contains a property with the given name, it must match the corresponding schema.

      Returns:
      a copy Map (potentially immutable) of properties and their dependent schemas
      Since:
      4.0
    • setDependentSchemas

      void setDependentSchemas(Map<String,Schema> dependentSchemas)
      Sets the dependentSchemas property of this Schema instance.

      For each name and property pair in the map, if the object contains a property with the given name, it must match the corresponding schema.

      Parameters:
      dependentSchemas - a map of properties and their dependent schemas
      Since:
      4.0
    • dependentSchemas

      default Schema dependentSchemas(Map<String,Schema> dependentSchemas)
      Sets the dependentSchemas property of this Schema instance.

      For each name and property pair in the map, if the object contains a property with the given name, it must match the corresponding schema.

      Parameters:
      dependentSchemas - a map of properties and their dependent schemas
      Returns:
      the current Schema instance
      Since:
      4.0
    • addDependentSchema

      Schema addDependentSchema(String propertyName, Schema schema)
      Sets the dependent schema for a property name.

      If the object contains a property with the given name, it must match the dependent schema.

      Parameters:
      propertyName - the property name
      schema - the dependent schema
      Returns:
      the current Schema instance
      Since:
      4.0
    • removeDependentSchema

      void removeDependentSchema(String propertyName)
      Removes the dependent schema for a property name.
      Parameters:
      propertyName - the property name
      Since:
      4.0
    • getPrefixItems

      List<Schema> getPrefixItems()
      Returns the prefixItems property of this Schema instance.

      If the object is an array, the nth item in the array must match the nth schema in this list.

      Returns:
      a copy List (potentially immutable) of prefix item schemas
      Since:
      4.0
    • setPrefixItems

      void setPrefixItems(List<Schema> prefixItems)
      Sets the prefixItems property of this Schema instance.

      If the object is an array, the nth item in the array must match the nth schema in this list.

      Parameters:
      prefixItems - a list of prefix item schemas
      Since:
      4.0
    • prefixItems

      default Schema prefixItems(List<Schema> prefixItems)
      Sets the prefixItems property of this Schema instance.

      If the object is an array, the nth item in the array must match the nth schema in this list.

      Parameters:
      prefixItems - a list of prefix item schemas
      Returns:
      current Schema instance
      Since:
      4.0
    • addPrefixItem

      Schema addPrefixItem(Schema prefixItem)
      Adds a schema to the end of the prefixItems list.
      Parameters:
      prefixItem - the schema to add to the prefixItems list
      Returns:
      current Schema instance
      Since:
      4.0
    • removePrefixItem

      void removePrefixItem(Schema prefixItem)
      Removes a schema from the prefixItems list.
      Parameters:
      prefixItem - the schema to remove from the prefixItems list
      Since:
      4.0
    • getContains

      Schema getContains()
      Returns the contains property of this Schema instance.

      If the object is an array, at least one item in the array must match the returned schema.

      Returns:
      a schema that one item in the array should match
      Since:
      4.0
    • setContains

      void setContains(Schema contains)
      Sets the contains property of this Schema instance.

      If the object is an array, at least one item in the array must match the returned schema.

      Parameters:
      contains - a schema that one item in the array should match
      Since:
      4.0
    • contains

      default Schema contains(Schema contains)
      Sets the contains property of this Schema instance.

      If the object is an array, at least one item in the array must match the returned schema.

      Parameters:
      contains - a schema that one item in the array should match
      Returns:
      the current Schema instance
      Since:
      4.0
    • getPatternProperties

      Map<String,Schema> getPatternProperties()
      Returns the patternProperties property from this Schema instance.

      The value of patternProperties is a map from a regular expression to a schema. For each string and schema pair in the map, if a property name is matched by the regular expression then the value of that property must validate against the schema.

      Returns:
      a copy Map (potentially immutable) of regular expression and schema pairs
      Since:
      4.0
    • setPatternProperties

      void setPatternProperties(Map<String,Schema> patternProperties)
      Sets the patternProperties property from this Schema instance.

      The value of patternProperties is a map from a regular expression to a schema. For each string and schema pair in the map, if a property name is matched by the regular expression then the value of that property must validate against the schema.

      Parameters:
      patternProperties - a map of regular expression and schema pairs
      Since:
      4.0
    • patternProperties

      default Schema patternProperties(Map<String,Schema> patternProperties)
      Sets the patternProperties property from this Schema instance.

      The value of patternProperties is a map from a regular expression to a schema. For each string and schema pair in the map, if a property name is matched by the regular expression then the value of that property must validate against the schema.

      Parameters:
      patternProperties - a map of regular expression and schema pairs
      Returns:
      the current Schema instance
      Since:
      4.0
    • addPatternProperty

      Schema addPatternProperty(String regularExpression, Schema schema)
      Adds a regular expression and schema pair to the list of pattern properties.

      The value of patternProperties is a map from a regular expression to a schema. For each string and schema pair in the map, if a property name is matched by the regular expression then the value of that property must validate against the schema.

      Parameters:
      regularExpression - the regular expression to add
      schema - the schema that a property value must validate against if its name matches regularExpression
      Returns:
      the current Schema instance
      Since:
      4.0
    • removePatternProperty

      void removePatternProperty(String regularExpression)
      Removes a regular expression and its corresponding schema pair from the list of pattern properties.
      Parameters:
      regularExpression - the regular expression to remove
      Since:
      4.0
    • getPropertyNames

      Schema getPropertyNames()
      Returns the propertyNames property from this Schema instance. Each property name in the object must validate against this schema.
      Returns:
      the schema which each property name must validate against
      Since:
      4.0
    • setPropertyNames

      void setPropertyNames(Schema propertyNameSchema)
      Sets the propertyNames property from this Schema instance. Each property name in the object must validate against this schema.
      Parameters:
      propertyNameSchema - the schema which each property name must validate against
      Since:
      4.0
    • propertyNames

      default Schema propertyNames(Schema propertyNameSchema)
      Sets the propertyNames property from this Schema instance. Each property name in the object must validate against this schema.
      Parameters:
      propertyNameSchema - the schema which each property name must validate against
      Returns:
      the current Schema instance
      Since:
      4.0
    • getUnevaluatedItems

      Schema getUnevaluatedItems()
      Returns the unevaluatedItems property of this Schema instance.

      Items which have not successfully validated against prefixItems, items, or contains must validate against this schema.

      Returns:
      a schema that unevaluated array items must validate against
      Since:
      4.0
    • setUnevaluatedItems

      void setUnevaluatedItems(Schema unevaluatedItems)
      Sets the unevaluatedItems property of this Schema instance.

      Items which have not successfully validated against prefixItems, items, or contains must validate against this schema.

      Parameters:
      unevaluatedItems - a schema that unevaluated array items must validate against
      Since:
      4.0
    • unevaluatedItems

      default Schema unevaluatedItems(Schema unevaluatedItems)
      Sets the unevaluatedItems property of this Schema instance.

      Items which have not successfully validated against prefixItems, items, or contains must validate against this schema.

      Parameters:
      unevaluatedItems - a schema that unevaluated array items must validate against
      Returns:
      the current Schema instance
      Since:
      4.0
    • getUnevaluatedProperties

      Schema getUnevaluatedProperties()
      Returns the unevaluatedProperties property of this Schema instance.

      Property values which have not successfully validated against properties, patternProperties, or additionalProperties must validate against this schema.

      Returns:
      a schema that unevaluated object properties must validate against
      Since:
      4.0
    • setUnevaluatedProperties

      void setUnevaluatedProperties(Schema unevaluatedProperties)
      Sets the unevaluatedProperties property of this Schema instance.

      Property values which have not successfully validated against properties, patternProperties, or additionalProperties must validate against this schema.

      Parameters:
      unevaluatedProperties - a schema that unevaluated object properties must validate against
      Since:
      4.0
    • unevaluatedProperties

      default Schema unevaluatedProperties(Schema unevaluatedProperties)
      Sets the unevaluatedProperties property of this Schema instance.

      Property values which have not successfully validated against properties, patternProperties, or additionalProperties must validate against this schema.

      Parameters:
      unevaluatedProperties - a schema that unevaluated object properties must validate against
      Returns:
      the current Schema instance
      Since:
      4.0
    • getConstValue

      Object getConstValue()
      Returns the const property from this Schema instance. Indicates that the object must have a specific value.
      Returns:
      the value that the object must have
      Since:
      4.0
    • setConstValue

      void setConstValue(Object constValue)
      Sets the const property from this Schema instance. Indicates that the object must have a specific value.
      Parameters:
      constValue - the value that the object must have
      Since:
      4.0
    • constValue

      default Schema constValue(Object constValue)
      Sets the const property from this Schema instance. Indicates that the object must have a specific value.
      Parameters:
      constValue - the value that the object must have
      Returns:
      the current Schema instance
      Since:
      4.0
    • getMaxContains

      Integer getMaxContains()
      Returns the maxContains property from this Schema instance. Specifies that contains must match no more than this many items in the array.
      Returns:
      the max number of items which may be matched by contains
      Since:
      4.0
    • setMaxContains

      void setMaxContains(Integer maxContains)
      Sets the maxContains property from this Schema instance. Specifies that contains must match no more than this many items in the array.
      Parameters:
      maxContains - the max number of items which may be matched by contains
      Since:
      4.0
    • maxContains

      default Schema maxContains(Integer maxContains)
      Sets the maxContains property from this Schema instance. Specifies that contains must match no more than this many items in the array.
      Parameters:
      maxContains - the maximum number of items which may be matched by contains
      Returns:
      the current Schema instance
      Since:
      4.0
    • getMinContains

      Integer getMinContains()
      Returns the minContains property from this Schema instance. Specifies that contains must match at least this many items in the array.
      Returns:
      the minimum number of items which may be matched by contains
      Since:
      4.0
    • setMinContains

      void setMinContains(Integer minContains)
      Sets the minContains property from this Schema instance. Specifies that contains must match at least this many items in the array.
      Parameters:
      minContains - the minimum number of items which may be matched by contains
      Since:
      4.0
    • minContains

      default Schema minContains(Integer minContains)
      Sets the minContains property from this Schema instance. Specifies that contains must match at least this many items in the array.
      Parameters:
      minContains - the minimum number of items which may be matched by contains
      Returns:
      the current Schema instance
      Since:
      4.0
    • getDependentRequired

      Map<String,List<String>> getDependentRequired()
      Returns the dependentRequired property of this Schema instance.

      For each entry in the map, if the key exists as a property name in the object, then the list of names in the value must also exist as property names in the object.

      Returns:
      a copy Map (potentially immutable) of property names to lists of additional required property names
      Since:
      4.0
    • setDependentRequired

      void setDependentRequired(Map<String,List<String>> dependentRequired)
      Sets the dependentRequired property of this Schema instance.

      For each entry in the map, if the key exists as a property name in the object, then the list of names in the value must also exist as property names in the object.

      Parameters:
      dependentRequired - a map of property names to lists of additional required property names
      Since:
      4.0
    • dependentRequired

      default Schema dependentRequired(Map<String,List<String>> dependentRequired)
      Sets the dependentRequired property of this Schema instance.

      For each entry in the map, if the key exists as a property name in the object, then the list of names in the value must also exist as property names in the object.

      Parameters:
      dependentRequired - a map of property names to lists of additional required property names
      Returns:
      the current Schema instance
      Since:
      4.0
    • addDependentRequired

      Schema addDependentRequired(String propertyName, List<String> additionalRequiredPropertyNames)
      Sets the list of additional property names that are required if a property named propertyName exists.
      Parameters:
      propertyName - the property name
      additionalRequiredPropertyNames - the names of additional properties which are required if propertyName exists to add
      Returns:
      the current Schema instance
      Since:
      4.0
    • removeDependentRequired

      void removeDependentRequired(String propertyName)
      Removes the list of additional property names that are required if a property named propertyName exists.
      Parameters:
      propertyName - the property name
      Since:
      4.0
    • getContentEncoding

      String getContentEncoding()
      Returns the contentEncoding property from this Schema instance.

      Specifies the encoding used to represent binary data as a string (e.g. base64).

      Returns:
      the encoding type
      Since:
      4.0
    • setContentEncoding

      void setContentEncoding(String contentEncoding)
      Sets the contentEncoding property from this Schema instance.

      Specifies the encoding used to represent binary data as a string (e.g. base64).

      Parameters:
      contentEncoding - the encoding type
      Since:
      4.0
    • contentEncoding

      default Schema contentEncoding(String contentEncoding)
      Sets the contentEncoding property from this Schema instance.

      Specifies the encoding used to represent binary data as a string (e.g. base64).

      Parameters:
      contentEncoding - the encoding type
      Returns:
      the current Schema instance
      Since:
      4.0
    • getContentMediaType

      String getContentMediaType()
      Returns the contentMediaType property from this Schema instance.

      Specifies the media type of the content of a string.

      Returns:
      the media type
      Since:
      4.0
    • setContentMediaType

      void setContentMediaType(String contentMediaType)
      Sets the contentMediaType property from this Schema instance.

      Specifies the media type of the content of a string.

      Parameters:
      contentMediaType - the media type
      Since:
      4.0
    • contentMediaType

      default Schema contentMediaType(String contentMediaType)
      Sets the contentMediaType property from this Schema instance.

      Specifies the media type of the content of a string.

      Parameters:
      contentMediaType - the media type
      Returns:
      the current Schema instance
      Since:
      4.0
    • getContentSchema

      Schema getContentSchema()
      Returns the contentSchema property from this Schema instance.

      If contentMediaType is a media type that maps into JSON Schema's data model, this property specifies a schema that the data in the string must conform to.

      Returns:
      the schema for the data within the string
      Since:
      4.0
    • setContentSchema

      void setContentSchema(Schema contentSchema)
      Sets the contentSchema property from this Schema instance.

      If contentMediaType is a media type that maps into JSON Schema's data model, this property specifies a schema that the data in the string must conform to.

      Parameters:
      contentSchema - the schema for the data within the string
      Since:
      4.0
    • contentSchema

      default Schema contentSchema(Schema contentSchema)
      Sets the contentSchema property from this Schema instance.

      If contentMediaType is a media type that maps into JSON Schema's data model, this property specifies a schema that the data in the string must conform to.

      Parameters:
      contentSchema - the schema for the data within the string
      Returns:
      the current Schema instance
      Since:
      4.0
    • getBooleanSchema

      Boolean getBooleanSchema()
      Returns whether this Schema is a boolean schema.

      If this property is not null, then all other properties are ignored and the schema will be represented by a boolean true or false value.

      Returns:
      the boolean value of this schema, or null if it is not a boolean schema
      Since:
      4.0
    • setBooleanSchema

      void setBooleanSchema(Boolean booleanSchema)
      Sets this schema to a boolean value.

      If this property is not null, then all other properties are ignored and the schema will be represented by a boolean true or false value.

      Parameters:
      booleanSchema - the boolean value of this schema, or null if it is not a boolean schema
      Since:
      4.0
    • booleanSchema

      default Schema booleanSchema(Boolean booleanSchema)
      Sets this schema to a boolean value.

      If this property is not null, then all other properties are ignored and the schema will be represented by a boolean true or false value.

      Parameters:
      booleanSchema - the boolean value of this schema, or null if it is not a boolean schema
      Returns:
      the current Schema instance
      Since:
      4.0
    • getExamples

      List<Object> getExamples()
      Returns the examples property of this Schema instance.
      Returns:
      a copy List (potentially immutable) of example objects which this schema could describe
      Since:
      4.0
    • setExamples

      void setExamples(List<Object> examples)
      Sets the examples property of this Schema instance.
      Parameters:
      examples - a list of example objects which this schema could describe
      Since:
      4.0
    • examples

      default Schema examples(List<Object> examples)
      Sets the examples property of this Schema instance.
      Parameters:
      examples - a list of example objects which this schema could describe
      Returns:
      current Schema instance
      Since:
      4.0
    • addExample

      Schema addExample(Object example)
      Adds an example to the examples list.
      Parameters:
      example - the example to add to the examples list
      Returns:
      current Schema instance
      Since:
      4.0
    • removeExample

      void removeExample(Object example)
      Removes an example from the examples list.
      Parameters:
      example - the example to remove from the examples list
      Since:
      4.0
    • get

      Object get(String propertyName)
      Gets a schema property by name.

      Allows access to arbitrary properties in a schema object, allowing use of alternative schema dialects which use different property names (or the same property names with different data types).

      When using the standard schema dialect, this method can be used to retrieve values set by other methods. E.g.

       
       schema.setMinimum(new BigDecimal(3));
       BigDecimal minimum = (BigDecimal) schema.get("minimum"); // returns 3
       
       
      Parameters:
      propertyName - the property name
      Returns:
      the value of the named property, or null if a property with the given name is not set
      Since:
      4.0
    • set

      Schema set(String propertyName, Object value)
      Sets a schema property.

      Allows the modifications of arbitrary schema properties in a schema properties, allowing use of alternative schema dialects which use different property names (or the same property names with different data types).

      Passing null as the value removes the property from the schema object.

      value must be one of the following types, otherwise non-portable behavior results:

      • Any primitive type
      • Any primitive wrapper class
      • null
      • String
      • BigDecimal
      • BigInteger
      • Any type which OASFactory can create
      • Any Enumeration
      • List where every value is a permitted type
      • Map where every key is a String and every value is a permitted type

      When using the standard schema dialect, values set by this method can be retrieved by other methods. E.g.

       
       schema.set("minimum", new BigDecimal(3));
       BigDecimal minimum = schema.getMinimum(); // returns 3
       
       
      Parameters:
      propertyName - the property name
      value - the value to set, or null to remove the property
      Returns:
      the current Schema instance
      Since:
      4.0
    • getAll

      Map<String,?> getAll()
      Gets all properties of a schema.

      Equivalent to calling get(String) for each property set to a non-null value and putting them all into a Map.

      Returns:
      a Map of property names to their corresponding values
      Since:
      4.0
    • setAll

      void setAll(Map<String,?> allProperties)
      Sets all properties of a schema.

      Equivalent to clearing all properties and then setting each property with set(String, Object).

      Parameters:
      allProperties - the properties to set. Each value in the map must be valid according to the rules in set(String, Object)
      Since:
      4.0