Overview

Shared Properties

Object Fields

Array Fields

Enum Fields

Schema Properties

High-level overview of JSON Schemas returned from Merge

Overview

Merge uses JSON Schema conventions in schemas returned from Merge (e.g., the request_schema returned from a /meta endpoint) for scalable schemas and programmatic convenience.

In these schemas:

  • Shared Properties specify type definitions with fields like “type” and “description”
  • Object, Array and Enum Fields will have additional schema properties as described further below

Shared Properties

All fields in JSON Schemas returned from Merge have basic properties like “type” and “description” that specify field types.

PropertyTypeDescription
typestringDenotes the type of data stored in this field.
descriptionstringIf available, will explain what data is expected.

Object Fields

In addition to shared properties, object fields in JSON Schemas returned from Merge will have these additional properties:

PropertyTypeDescription
propertiesobjectDenotes the object’s key-value pairs where the key is the field name and the value is the sub-schema of the field.
requiredarrayDenotes which object fields are required or optional when making a POST request.

Array Fields

In addition to shared properties, array fields in JSON Schemas returned from Merge will have these additional properties:

PropertyTypeDescription
itemsobject

items is an object describing the type and properties of the items of the array.

Enum Fields

In addition to shared properties, enum fields that have a limited array of string choices will have these additional properties:

PropertyTypeDescription
enum_informationarrayDenotes the available choices for enum fields.
enumarray

Denotes the available choices for enum fields and adheres to JSON Schema convention by only communicating the enum value (excluding properties like description).

This compliant enum field may be useful for off-the-shelf JSON Schema validators, for example.

Example JSON Schema
JSON
{
"request_schema": {
"type": "object",
"properties": {
"model": {
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "The candidate's first name."
},
"last_name": {
"type": "string",
"description": "The candidate's last name."
},
"email_addresses": {
"type": "array",
"description": "Array of email_addresses objects on ats.Candidate",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
},
"email_address_type": {
"type": "string",
}
},
"required": ["value"],
}
},
"integration_params": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": ["ARCHIVED", "ACTIVE"],
"enum_information": [
{
"value": "ARCHIVED",
"description": "Archived"
},
{
"value": "ACTIVE",
"description": "Active"
}
]
}
},
"required": ["stage"]
}
},
"required": ["first_name", "last_name", "email_addresses"]
}
},
"required": ["model"]
}
}