@croct/content-model
Version:
A library for modeling, validating and interpolating structured content.
844 lines (843 loc) • 34.1 kB
JSON
{
"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"
}
]
}
}
}