UNPKG

@croct/content-model

Version:

A library for modeling, validating and interpolating structured content.

844 lines (843 loc) 34.1 kB
{ "title": "Content", "description": "The value of a content.", "type": "object", "$ref": "#/$defs/any", "$defs": { "boolean": { "type": "object", "title": "Value definition", "description": "Defines the data type and value.", "properties": { "type": { "type": "string", "const": "boolean", "title": "Data type", "description": "The data type of the resolved value." }, "value": { "type": "object", "title": "Value", "description": "Defines how to resolve the value.", "properties": { "type": { "type": "string", "title": "Value type", "description": "Defines whether the value is static or dynamically resolved at runtime." } }, "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "const": "static" }, "value": { "type": "boolean", "title": "Static value", "description": "The resolved value." } }, "required": [ "type", "value" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "dynamic" }, "nullable": { "type": "boolean", "title": "Nullable?", "description": "Whether the expression result is nullable." }, "expression": { "type": "string", "title": "Expression", "description": "A CQL expression that resolves to the value." }, "default": { "type": "boolean", "title": "Default", "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type." } }, "if": { "properties": { "nullable": { "type": "boolean", "const": true } }, "required": [ "nullable" ] }, "then": { "required": [ "type", "nullable", "expression" ] }, "else": { "required": [ "type", "expression", "default" ] }, "required": [ "type", "expression" ], "additionalProperties": false } ], "required": [ "type" ] } }, "required": [ "type", "value" ], "additionalProperties": false }, "boolean-item": { "type": "object", "title": "Value definition", "description": "Defines the data type and value.", "properties": { "type": { "type": "string", "const": "boolean", "title": "Data type", "description": "The data type of the resolved value." }, "value": { "type": "object", "title": "Value", "description": "Defines how to resolve the value.", "properties": { "type": { "type": "string", "title": "Value type", "description": "Defines whether the value is static or dynamically resolved at runtime." } }, "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "const": "static" }, "value": { "type": "boolean", "title": "Static value", "description": "The resolved value." } }, "required": [ "type", "value" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "dynamic" }, "nullable": { "type": "boolean", "title": "Nullable?", "description": "Whether the expression result is nullable." }, "expression": { "type": "string", "title": "Expression", "description": "A CQL expression that resolves to the value." }, "default": { "type": "boolean", "title": "Default", "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type." } }, "if": { "properties": { "nullable": { "type": "boolean", "const": true } }, "required": [ "nullable" ] }, "then": { "required": [ "type", "nullable", "expression" ] }, "else": { "required": [ "type", "expression", "default" ] }, "required": [ "type", "expression" ], "additionalProperties": false } ], "required": [ "type" ] }, "label": { "type": "string", "title": "Label", "description": "The label of the item." } }, "required": [ "type", "value" ], "additionalProperties": false }, "text": { "type": "object", "title": "Value definition", "description": "Defines the data type and value.", "properties": { "type": { "type": "string", "const": "text", "title": "Data type", "description": "The data type of the resolved value." }, "value": { "type": "object", "title": "Value", "description": "Defines how to resolve the value.", "properties": { "type": { "type": "string", "title": "Value type", "description": "Defines whether the value is static or dynamically resolved at runtime." } }, "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "const": "static" }, "value": { "type": "string", "title": "Static value", "description": "The resolved value." } }, "required": [ "type", "value" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "dynamic" }, "nullable": { "type": "boolean", "title": "Nullable?", "description": "Whether the expression result is nullable." }, "expression": { "type": "string", "title": "Expression", "description": "A CQL expression that resolves to the value." }, "default": { "type": "string", "title": "Default", "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type." } }, "if": { "properties": { "nullable": { "type": "boolean", "const": true } }, "required": [ "nullable" ] }, "then": { "required": [ "type", "nullable", "expression" ] }, "else": { "required": [ "type", "expression", "default" ] }, "required": [ "type", "expression" ], "additionalProperties": false } ], "required": [ "type" ] } }, "required": [ "type", "value" ], "additionalProperties": false }, "text-item": { "type": "object", "title": "Value definition", "description": "Defines the data type and value.", "properties": { "type": { "type": "string", "const": "text", "title": "Data type", "description": "The data type of the resolved value." }, "value": { "type": "object", "title": "Value", "description": "Defines how to resolve the value.", "properties": { "type": { "type": "string", "title": "Value type", "description": "Defines whether the value is static or dynamically resolved at runtime." } }, "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "const": "static" }, "value": { "type": "string", "title": "Static value", "description": "The resolved value." } }, "required": [ "type", "value" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "dynamic" }, "nullable": { "type": "boolean", "title": "Nullable?", "description": "Whether the expression result is nullable." }, "expression": { "type": "string", "title": "Expression", "description": "A CQL expression that resolves to the value." }, "default": { "type": "string", "title": "Default", "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type." } }, "if": { "properties": { "nullable": { "type": "boolean", "const": true } }, "required": [ "nullable" ] }, "then": { "required": [ "type", "nullable", "expression" ] }, "else": { "required": [ "type", "expression", "default" ] }, "required": [ "type", "expression" ], "additionalProperties": false } ], "required": [ "type" ] }, "label": { "type": "string", "title": "Label", "description": "The label of the item." } }, "required": [ "type", "value" ], "additionalProperties": false }, "number": { "type": "object", "title": "Value definition", "description": "Defines the data type and value.", "properties": { "type": { "type": "string", "const": "number", "title": "Data type", "description": "The data type of the resolved value." }, "value": { "type": "object", "title": "Value", "description": "Defines how to resolve the value.", "properties": { "type": { "type": "string", "title": "Value type", "description": "Defines whether the value is static or dynamically resolved at runtime." } }, "oneOf": [ { "type": "object", "properties": { "type": { "const": "static" }, "value": { "type": "number", "title": "Static value", "description": "The resolved value.", "minimum": -9007199254740991, "maximum": 9007199254740991 } }, "required": [ "type", "value" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "dynamic" }, "nullable": { "type": "boolean", "title": "Nullable?", "description": "Whether the expression result is nullable." }, "expression": { "type": "string", "title": "Expression", "description": "A CQL expression that resolves to the value." }, "default": { "type": "number", "title": "Default", "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type.", "minimum": -9007199254740991, "maximum": 9007199254740991 } }, "if": { "properties": { "nullable": { "type": "boolean", "const": true } }, "required": [ "type", "nullable" ] }, "then": { "required": [ "type", "nullable", "expression" ] }, "else": { "required": [ "type", "expression", "default" ] }, "required": [ "type", "expression" ], "additionalProperties": false } ], "required": [ "type" ] } }, "required": [ "type", "value" ], "additionalProperties": false }, "number-item": { "type": "object", "title": "Value definition", "description": "Defines the data type and value.", "properties": { "type": { "type": "string", "const": "number", "title": "Data type", "description": "The data type of the resolved value." }, "value": { "type": "object", "title": "Value", "description": "Defines how to resolve the value.", "properties": { "type": { "type": "string", "title": "Value type", "description": "Defines whether the value is static or dynamically resolved at runtime." } }, "oneOf": [ { "type": "object", "properties": { "type": { "const": "static" }, "value": { "type": "number", "title": "Static value", "description": "The resolved value.", "minimum": -9007199254740991, "maximum": 9007199254740991 } }, "required": [ "type", "value" ], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "dynamic" }, "nullable": { "type": "boolean", "title": "Nullable?", "description": "Whether the expression result is nullable." }, "expression": { "type": "string", "title": "Expression", "description": "A CQL expression that resolves to the value." }, "default": { "type": "number", "title": "Default", "description": "A static value used in case the expression evaluation fails, results in null, or yields a value of unexpected type.", "minimum": -9007199254740991, "maximum": 9007199254740991 } }, "if": { "properties": { "nullable": { "type": "boolean", "const": true } }, "required": [ "type", "nullable" ] }, "then": { "required": [ "type", "nullable", "expression" ] }, "else": { "required": [ "type", "expression", "default" ] }, "required": [ "type", "expression" ], "additionalProperties": false } ], "required": [ "type" ] }, "label": { "type": "string", "title": "Label", "description": "The label of the item." } }, "required": [ "type", "value" ], "additionalProperties": false }, "structure": { "type": "object", "title": "Structure", "description": "A set of attributes as key-value pairs.", "properties": { "type": { "const": "structure" }, "name": { "type": "string", "title": "Structure name", "description": "The name of the structure in a union." }, "attributes": { "type": "object", "title": "Attributes", "description": "The structure-specific attributes.", "additionalProperties": { "$ref": "#" } } }, "required": [ "type", "attributes" ], "additionalProperties": false }, "structure-item": { "type": "object", "title": "Structure", "description": "A set of attributes as key-value pairs.", "properties": { "type": { "const": "structure" }, "name": { "type": "string", "title": "Structure name", "description": "The name of the structure in a union." }, "attributes": { "type": "object", "title": "Attributes", "description": "The structure-specific attributes.", "additionalProperties": { "$ref": "#" } }, "label": { "type": "string", "title": "Label", "description": "The label of the item." } }, "required": [ "type", "attributes" ], "additionalProperties": false }, "list": { "type": "object", "title": "List", "description": "A set of attributes", "properties": { "type": { "type": "string", "const": "list" }, "items": { "type": "array", "items": { "type": "object", "$ref": "#/$defs/any-item" } } }, "required": [ "type", "items" ], "additionalProperties": false }, "list-item": { "type": "object", "title": "List", "description": "A set of attributes", "properties": { "type": { "type": "string", "const": "list" }, "items": { "type": "array", "items": { "type": "object", "$ref": "#/$defs/any-item" } }, "label": { "type": "string", "title": "Label", "description": "The label of the item." } }, "required": [ "type", "items" ], "additionalProperties": false }, "any": { "type": "object", "properties": { "type": { "type": "string", "description": "The data type of the value." } }, "oneOf": [ { "$ref": "#/$defs/boolean" }, { "$ref": "#/$defs/text" }, { "$ref": "#/$defs/number" }, { "$ref": "#/$defs/structure" }, { "$ref": "#/$defs/list" } ] }, "any-item": { "type": "object", "properties": { "type": { "type": "string", "description": "The data type of the value." } }, "oneOf": [ { "$ref": "#/$defs/boolean-item" }, { "$ref": "#/$defs/text-item" }, { "$ref": "#/$defs/number-item" }, { "$ref": "#/$defs/structure-item" }, { "$ref": "#/$defs/list-item" } ] } } }