UNPKG

@croct/content-model

Version:

A library for modeling, validating and interpolating structured content.

385 lines (384 loc) 15.7 kB
{ "title": "Content", "description": "The value of a content.", "type": "object", "properties": { "type": { "type": "string", "description": "The data type of the value." } }, "oneOf": [ { "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 }, { "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 }, { "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 }, { "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 }, { "type": "object", "title": "List", "description": "A set of attributes", "properties": { "type": { "type": "string", "const": "list" }, "items": { "type": "array", "items": { "$ref": "#" } } }, "required": [ "type", "items" ], "additionalProperties": false } ] }