{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "RAS Data schema for openpower-hw-diags", "version": 2, "type": "object", "$defs": { "priority": { "type": "string", "enum": ["HIGH", "MED", "MED_A", "MED_B", "MED_C", "LOW"] }, "flags": { "type": "string", "enum": [ "sue_source", "sue_seen", "cs_possible", "external_checkstop", "recovered_error", "informational_only", "mnfg_informational_only", "mask_but_dont_clear", "crc_related_err", "crc_root_cause", "odp_data_corrupt_side_effect", "odp_data_corrupt_root_cause", "attn_from_ocmb" ] } }, "additionalProperties": false, "required": ["model_ec", "version", "actions", "signatures"], "properties": { "model_ec": { "type": "string", "pattern": "^[0-9A-Fa-f]{8}$" }, "version": { "type": "integer", "minimum": 2, "maximum": 2 }, "units": { "type": "object", "additionalProperties": false, "patternProperties": { "^\\w+$": { "type": "string", "pattern": "^\\w+(\\/\\w+)*$" } } }, "buses": { "type": "object", "additionalProperties": false, "patternProperties": { "^\\w+$": { "type": "object", "additionalProperties": false, "required": ["type"], "properties": { "type": { "type": "string", "enum": ["SMP_BUS", "OMI_BUS"] }, "unit": { "type": "string", "pattern": "^\\w+$" } } } } }, "actions": { "type": "object", "additionalProperties": false, "patternProperties": { "^\\w+$": { "type": "array", "items": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string", "enum": [ "action", "callout_self", "callout_unit", "callout_connected", "callout_bus", "callout_clock", "callout_procedure", "callout_part", "plugin", "flag" ] }, "priority": { "$ref": "#/$defs/priority" }, "guard": { "type": "boolean" }, "name": { "type": "string", "pattern": "^\\w+$" } }, "allOf": [ { "if": { "properties": { "type": { "const": "action" } } }, "then": { "required": ["name"], "not": { "required": ["priority", "guard"] } } }, { "if": { "properties": { "type": { "const": "callout_self" } } }, "then": { "required": ["priority", "guard"], "not": { "required": ["name"] } } }, { "if": { "properties": { "type": { "const": "callout_unit" } } }, "then": { "required": ["name", "priority", "guard"] } }, { "if": { "properties": { "type": { "const": "callout_connected" } } }, "then": { "required": ["name", "priority", "guard"] } }, { "if": { "properties": { "type": { "const": "callout_bus" } } }, "then": { "required": ["name", "priority", "guard"] } }, { "if": { "properties": { "type": { "const": "callout_clock" } } }, "then": { "required": ["name", "priority", "guard"], "properties": { "name": { "enum": [ "OSC_REF_CLOCK_0", "OSC_REF_CLOCK_1", "TOD_CLOCK" ] } } } }, { "if": { "properties": { "type": { "const": "callout_procedure" } } }, "then": { "required": ["name", "priority"], "not": { "required": ["guard"] }, "properties": { "name": { "enum": ["LEVEL2", "SUE_SEEN"] } } } }, { "if": { "properties": { "type": { "const": "callout_part" } } }, "then": { "required": ["name", "priority"], "not": { "required": ["guard"] }, "properties": { "name": { "enum": ["PNOR"] } } } }, { "if": { "properties": { "type": { "const": "plugin" } } }, "then": { "required": ["name", "instance"], "not": { "required": ["priority", "guard"] }, "properties": { "instance": { "type": "integer" } } } }, { "if": { "properties": { "type": { "const": "flag" } } }, "then": { "required": ["name"], "properties": { "name": { "$ref": "#/$defs/flags" } } } } ] } } } }, "signatures": { "type": "object", "additionalProperties": false, "patternProperties": { "^[0-9A-Fa-f]{4}$": { "type": "object", "additionalProperties": false, "patternProperties": { "^[0-9A-Fa-f]{2}$": { "type": "object", "additionalProperties": false, "patternProperties": { "^[0-9A-Fa-f]{2}$": { "type": "string", "pattern": "^\\w+$" }, "flags": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/flags" } } } } } } } } } }