Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 1 | { |
| 2 | "title": "PEL message registry schema", |
| 3 | "$id": "http://github.com/openbmc/phosphor-logging/extensions/openpower-pels/registry/schema/schema.json", |
| 4 | "description": "This schema describes JSON used for creating PELs from OpenBMC event logs.", |
| 5 | "type": "object", |
| 6 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 7 | "properties": { |
| 8 | "PELs": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 9 | "title": "This is an array of entries that specify PEL fields for event logs", |
| 10 | "$ref": "#/definitions/pels" |
| 11 | } |
| 12 | }, |
| 13 | |
| 14 | "additionalProperties": false, |
| 15 | "minItems": 1, |
| 16 | "uniqueItems": true, |
| 17 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 18 | "definitions": { |
| 19 | "pels": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 20 | "description": "Each entry in this array is for converting an event log to a PEL", |
| 21 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 22 | "items": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 23 | "description": "The schema for a single event log registry entry", |
| 24 | "type": "object", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 25 | "properties": { |
| 26 | "Name": { "$ref": "#/definitions/errorName" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 27 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 28 | "SRC": { "$ref": "#/definitions/src" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 29 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 30 | "Subsystem": { "$ref": "#/definitions/subsystem" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 31 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 32 | "PossibleSubsystems": { |
| 33 | "$ref": "#/definitions/possibleSubsystems" |
| 34 | }, |
Matt Spinler | 23970b0 | 2022-02-25 16:34:46 -0600 | [diff] [blame] | 35 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 36 | "Severity": { "$ref": "#/definitions/severity" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 37 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 38 | "MfgSeverity": { "$ref": "#/definitions/mfgSeverity" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 39 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 40 | "EventScope": { "$ref": "#/definitions/eventScope" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 41 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 42 | "EventType": { "$ref": "#/definitions/eventType" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 43 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 44 | "ActionFlags": { "$ref": "#/definitions/actionFlags" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 45 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 46 | "MfgActionFlags": { |
| 47 | "$ref": "#/definitions/mfgActionFlags" |
| 48 | }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 49 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 50 | "Documentation": { "$ref": "#/definitions/documentation" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 51 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 52 | "ComponentID": { "$ref": "#/definitions/componentID" }, |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 53 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 54 | "CalloutsUsingAD": { |
| 55 | "$ref": "#/definitions/calloutsUsingAD" |
| 56 | }, |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 57 | |
Matt Spinler | f22b4a1 | 2022-12-15 11:20:35 -0600 | [diff] [blame] | 58 | "Callouts": { "$ref": "#/definitions/callouts" }, |
| 59 | |
| 60 | "JournalCapture": { "$ref": "#/definitions/journalCapture" } |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 61 | }, |
| 62 | |
Matt Spinler | 23970b0 | 2022-02-25 16:34:46 -0600 | [diff] [blame] | 63 | "required": ["Name", "SRC", "Documentation"], |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 64 | "additionalProperties": false, |
| 65 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 66 | "not": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 67 | "required": ["CalloutsUsingAD", "Callouts"] |
Matt Spinler | 23970b0 | 2022-02-25 16:34:46 -0600 | [diff] [blame] | 68 | }, |
| 69 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 70 | "oneOf": [ |
Matt Spinler | 23970b0 | 2022-02-25 16:34:46 -0600 | [diff] [blame] | 71 | { |
| 72 | "required": ["Subsystem"] |
| 73 | }, |
| 74 | { |
| 75 | "required": ["PossibleSubsystems"] |
| 76 | } |
| 77 | ] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 78 | } |
| 79 | }, |
| 80 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 81 | "errorName": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 82 | "description": "The 'Message' property of an OpenBMC event log", |
| 83 | "type": "string" |
| 84 | }, |
| 85 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 86 | "componentID": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 87 | "description": "The component ID of the PEL creator, in the form 0xYY00. For BD SRCs, this is optional and if not present the component ID will be taken from the upper byte of the reason code.", |
| 88 | "type": "string", |
Matt Spinler | a6c4ba7 | 2023-05-24 13:11:49 -0500 | [diff] [blame] | 89 | "pattern": "^0x[0-9A-F]{2}00$" |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 90 | }, |
| 91 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 92 | "src": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 93 | "description": "Contains fields describing the primary SRC embedded in the PEL", |
| 94 | "type": "object", |
| 95 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 96 | "properties": { |
| 97 | "Type": { "$ref": "#/definitions/srcType" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 98 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 99 | "ReasonCode": { "$ref": "#/definitions/reasonCode" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 100 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 101 | "SymptomIDFields": { "$ref": "#/definitions/symptomID" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 102 | |
Matt Spinler | 3fe93e9 | 2023-04-14 14:06:59 -0500 | [diff] [blame] | 103 | "Words6To9": { "$ref": "#/definitions/srcWords6To9" }, |
| 104 | |
Matt Spinler | da5b76b | 2023-06-01 15:56:57 -0500 | [diff] [blame] | 105 | "DeconfigFlag": { "$ref": "#/definitions/deconfigFlag" }, |
| 106 | |
| 107 | "CheckstopFlag": { "$ref": "#/definitions/checkstopFlag" } |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 108 | }, |
| 109 | |
| 110 | "required": ["ReasonCode", "Words6To9"], |
| 111 | "additionalProperties": false |
| 112 | }, |
| 113 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 114 | "documentation": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 115 | "description": "This contains event documentation that will be used by tools and parsers.", |
| 116 | "type": "object", |
| 117 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 118 | "properties": { |
| 119 | "Message": { "$ref": "#/definitions/docMessage" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 120 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 121 | "MessageArgSources": { |
| 122 | "$ref": "#/definitions/docMessageArgSources" |
| 123 | }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 124 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 125 | "Description": { "$ref": "#/definitions/docDescription" }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 126 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 127 | "Notes": { "$ref": "#/definitions/docNotes" } |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 128 | }, |
| 129 | "additionalProperties": false, |
| 130 | "required": ["Message", "Description"] |
| 131 | }, |
| 132 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 133 | "srcType": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 134 | "description": "The first byte of the SRC ASCII string. Optional and defaults to BD. The '11' SRC is only to be used for events related to power.", |
| 135 | "type": "string", |
| 136 | "enum": ["BD", "11"] |
| 137 | }, |
| 138 | |
Matt Spinler | 3fe93e9 | 2023-04-14 14:06:59 -0500 | [diff] [blame] | 139 | "deconfigFlag": { |
| 140 | "description": "If true, will set bit 6 in hex data word 5, which means 'one or more resources are deconfigured'.", |
| 141 | "type": "boolean" |
| 142 | }, |
| 143 | |
Matt Spinler | da5b76b | 2023-06-01 15:56:57 -0500 | [diff] [blame] | 144 | "checkstopFlag": { |
| 145 | "description": "Indicates the SRC is for a hardware checkstop.", |
| 146 | "type": "boolean" |
| 147 | }, |
| 148 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 149 | "docNotes": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 150 | "description": "Any notes/comments about the error. An array of strings for manual line wrapping. Optional.", |
| 151 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 152 | "items": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 153 | "description": "Notes", |
| 154 | "type": "string" |
| 155 | } |
| 156 | }, |
| 157 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 158 | "reasonCode": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 159 | "description": "String representation of the 2 byte reason code, like 0xABCD. The reason code is the 2nd half of the 8 character SRC ASCII String field, such as B1FFABCD.", |
| 160 | "type": "string", |
Matt Spinler | a6c4ba7 | 2023-05-24 13:11:49 -0500 | [diff] [blame] | 161 | "pattern": "^0x[0-9A-F]{4}$", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 162 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 163 | "examples": ["0x3355"] |
| 164 | }, |
| 165 | |
| 166 | "subsystem": { |
| 167 | "description": "PEL subsystem enumeration. See the PEL spec for more detailed definitions.", |
| 168 | "type": "string", |
| 169 | "enum": [ |
| 170 | "processor", |
| 171 | "processor_fru", |
| 172 | "processor_chip", |
| 173 | "processor_unit", |
| 174 | "processor_bus", |
| 175 | |
| 176 | "memory", |
| 177 | "memory_ctlr", |
| 178 | "memory_bus", |
| 179 | "memory_dimm", |
| 180 | "memory_fru", |
| 181 | "external_cache", |
| 182 | |
| 183 | "io", |
| 184 | "io_hub", |
| 185 | "io_bridge", |
| 186 | "io_bus", |
| 187 | "io_processor", |
| 188 | "io_hub_other", |
| 189 | "phb", |
| 190 | |
| 191 | "io_adapter", |
| 192 | "io_adapter_comm", |
| 193 | "io_device", |
| 194 | "io_device_dasd", |
| 195 | "io_external_general", |
| 196 | "io_external_workstation", |
| 197 | "io_storage_mezz", |
| 198 | |
| 199 | "cec_hardware", |
| 200 | "cec_sp_a", |
| 201 | "cec_sp_b", |
| 202 | "cec_node_controller", |
| 203 | "cec_vpd", |
| 204 | "cec_i2c", |
| 205 | "cec_chip_iface", |
| 206 | "cec_clocks", |
| 207 | "cec_op_panel", |
| 208 | "cec_tod", |
| 209 | "cec_storage_device", |
| 210 | "cec_sp_hyp_iface", |
| 211 | "cec_service_network", |
| 212 | "cec_sp_hostboot_iface", |
| 213 | |
| 214 | "power", |
| 215 | "power_supply", |
| 216 | "power_control_hw", |
| 217 | "power_fans", |
| 218 | "power_sequencer", |
| 219 | |
| 220 | "others", |
| 221 | "other_hmc", |
| 222 | "other_test_tool", |
| 223 | "other_media", |
| 224 | "other_multiple_subsystems", |
| 225 | "other_na", |
| 226 | "other_info_src", |
| 227 | |
| 228 | "surv_hyp_lost_sp", |
| 229 | "surv_sp_lost_hyp", |
| 230 | "surv_sp_lost_hmc", |
| 231 | "surv_hmc_lost_lpar", |
| 232 | "surv_hmc_lost_bpa", |
| 233 | "surv_hmc_lost_hmc", |
| 234 | |
| 235 | "platform_firmware", |
| 236 | "bmc_firmware", |
| 237 | "hyp_firmware", |
| 238 | "partition_firmware", |
| 239 | "slic_firmware", |
| 240 | "spcn_firmware", |
| 241 | "bulk_power_firmware_side_a", |
| 242 | "hmc_code_firmware", |
| 243 | "bulk_power_firmware_side_b", |
| 244 | "virtual_sp", |
| 245 | "hostboot", |
| 246 | "occ", |
| 247 | |
| 248 | "software", |
| 249 | "os_software", |
| 250 | "xpf_software", |
| 251 | "app_software", |
| 252 | |
| 253 | "ext_env", |
| 254 | "input_power_source", |
| 255 | "ambient_temp", |
| 256 | "user_error", |
| 257 | "corrosion" |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 258 | ] |
| 259 | }, |
| 260 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 261 | "possibleSubsystems": { |
Matt Spinler | 23970b0 | 2022-02-25 16:34:46 -0600 | [diff] [blame] | 262 | "description": "Required when the PEL creator uses PEL_SUBSYSTEM in the AdditionalData property to pass in the subsystem. Used by scripts that generate documentation to build all possible SRC ASCII strings for this error.", |
| 263 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 264 | "items": { |
Matt Spinler | 23970b0 | 2022-02-25 16:34:46 -0600 | [diff] [blame] | 265 | "$ref": "#/definitions/subsystem" |
| 266 | }, |
| 267 | "minItems": 1, |
| 268 | "uniqueItems": true |
| 269 | }, |
| 270 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 271 | "systemAndSeverity": { |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 272 | "description": "A severity entry that has an optional system type qualifier. Used when the severity needs to be based on the system type.", |
| 273 | "type": "object", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 274 | "properties": { |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 275 | "System": { "$ref": "#/definitions/system" }, |
| 276 | "SevValue": { "$ref": "#/definitions/severityTypes" } |
| 277 | }, |
| 278 | "additionalProperties": false, |
| 279 | "required": ["SevValue"] |
| 280 | }, |
| 281 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 282 | "severity": { |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 283 | "description": "PEL severity field. Optional. If not provided, it will use the event log severity. It can either be an enum of the severity value, or an array of them that is based on system type, where an entry without a system type acts as the catch all.", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 284 | "oneOf": [ |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 285 | { |
| 286 | "$ref": "#/definitions/severityTypes" |
| 287 | }, |
| 288 | { |
| 289 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 290 | "items": { |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 291 | "$ref": "#/definitions/systemAndSeverity" |
| 292 | }, |
| 293 | "minItems": 1, |
| 294 | "uniqueItems": true |
| 295 | } |
| 296 | ], |
| 297 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 298 | "examples": [ |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 299 | "unrecoverable", |
| 300 | |
| 301 | [ |
| 302 | { |
| 303 | "System": "systemA", |
| 304 | "SevValue": "predictive" |
| 305 | }, |
| 306 | { |
| 307 | "SevValue": "unrecoverable" |
| 308 | } |
| 309 | ] |
| 310 | ] |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 311 | }, |
| 312 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 313 | "severityTypes": { |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 314 | "description": "PEL severity enumeration. See the PEL spec for more detailed definitions.", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 315 | "type": "string", |
| 316 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 317 | "enum": [ |
| 318 | "non_error", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 319 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 320 | "recovered", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 321 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 322 | "predictive", |
| 323 | "predictive_degraded_perf", |
| 324 | "predictive_reboot", |
| 325 | "predictive_reboot_degraded", |
| 326 | "predictive_redundancy_loss", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 327 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 328 | "unrecoverable", |
| 329 | "unrecoverable_degraded_perf", |
| 330 | "unrecoverable_redundancy_loss", |
| 331 | "unrecoverable_redundancy_loss_perf", |
| 332 | "unrecoverable_loss_of_function", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 333 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 334 | "critical", |
| 335 | "critical_system_term", |
| 336 | "critical_imminent_failure", |
| 337 | "critical_partition_term", |
| 338 | "critical_partition_imminent_failure", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 339 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 340 | "diagnostic_error", |
| 341 | "diagnostic_error_incorrect_results", |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 342 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 343 | "symptom_recovered", |
| 344 | "symptom_predictive", |
| 345 | "symptom_unrecoverable", |
| 346 | "symptom_critical", |
| 347 | "symptom_diag_err" |
| 348 | ] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 349 | }, |
| 350 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 351 | "mfgSeverity": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 352 | "description": "The PEL severity to use in manufacturing reporting mode", |
| 353 | "$ref": "#/definitions/severity" |
| 354 | }, |
| 355 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 356 | "eventScope": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 357 | "description": "The event scope PEL field. Optional and defaults to entire_platform", |
| 358 | "type": "string", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 359 | "enum": [ |
| 360 | "entire_platform", |
| 361 | "single_partition", |
| 362 | "multiple_partitions", |
| 363 | "possibly_multiple_platforms" |
| 364 | ] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 365 | }, |
| 366 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 367 | "eventType": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 368 | "description": "The event type PEL field. Optional and defaults to na", |
| 369 | "type": "string", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 370 | "enum": [ |
| 371 | "na", |
| 372 | "misc_information_only", |
| 373 | "tracing_event", |
| 374 | "dump_notification", |
| 375 | "env_normal" |
| 376 | ] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 377 | }, |
| 378 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 379 | "actionFlags": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 380 | "description": "The action flags Private Header PEL field", |
| 381 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 382 | "items": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 383 | "description": "List of action flags", |
| 384 | "type": "string", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 385 | "enum": [ |
| 386 | "service_action", |
| 387 | "hidden", |
| 388 | "report", |
| 389 | "dont_report", |
| 390 | "call_home", |
| 391 | "isolation_incomplete", |
harsh-agarwal1 | 9972716 | 2024-09-23 09:28:05 -0500 | [diff] [blame] | 392 | "termination", |
| 393 | "heartbeat_call_home" |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 394 | ] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 395 | } |
| 396 | }, |
| 397 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 398 | "mfgActionFlags": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 399 | "description": "The PEL action flags to use in manufacturing reporting mode", |
| 400 | "$ref": "#/definitions/actionFlags" |
| 401 | }, |
| 402 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 403 | "docDescription": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 404 | "description": "This is a higher level description of the error. It is required by the Redfish schema to generate a Redfish message entry, but is not used in Redfish or PEL output.", |
Matt Spinler | 88b3541 | 2022-06-22 11:00:04 -0500 | [diff] [blame] | 405 | "type": "string", |
| 406 | "minLength": 8 |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 407 | }, |
| 408 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 409 | "docMessage": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 410 | "description": "The error message. This will show up in parsed PELs, and in the Redfish event logs. It can contain placeholders for numeric values using %1, %2, etc, that come from the SRC words 6-9 as defined by the MessageArgSources property.", |
| 411 | "type": "string", |
Matt Spinler | 88b3541 | 2022-06-22 11:00:04 -0500 | [diff] [blame] | 412 | "minLength": 8, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 413 | "examples": [ |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 414 | { "Message": "The code update from level %1 to %2 failed" } |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 415 | ] |
| 416 | }, |
| 417 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 418 | "docMessageArgSources": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 419 | "description": "The SRC word 6-9 to use as the source of the numeric arguments that will be substituted into any placeholder in the Message field. Only required if there are arguments to substitute.", |
| 420 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 421 | "items": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 422 | "type": "string", |
| 423 | "enum": ["SRCWord6", "SRCWord7", "SRCWord8", "SRCWord9"] |
| 424 | }, |
| 425 | "additionalItems": false |
| 426 | }, |
| 427 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 428 | "symptomID": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 429 | "description": "Defines a custom Symptom ID, to be appended to the ASCII string word and separated by underscores. The maximum size of the Symptom ID field is 80 characters. The default is ASCIISTRING_SRCWord3 (e.g. B1103500_12345678).", |
| 430 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 431 | "items": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 432 | "type": "string", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 433 | "enum": [ |
| 434 | "SRCWord3", |
| 435 | "SRCWord4", |
| 436 | "SRCWord5", |
| 437 | "SRCWord6", |
| 438 | "SRCWord7", |
| 439 | "SRCWord8", |
| 440 | "SRCWord9" |
| 441 | ] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 442 | }, |
| 443 | "minItems": 1, |
| 444 | "maxItems": 8, |
| 445 | "uniqueItems": true, |
| 446 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 447 | "examples": [["SRCWord3", "SRCWord6"]] |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 448 | }, |
| 449 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 450 | "srcWords6To9": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 451 | "description": "This details what the user defined SRC hex words (6-9) mean, and which AdditionalData properties to get them from. These will be shown in the PEL parser output. Must be present, but can be empty.", |
| 452 | "type": "object", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 453 | "patternProperties": { |
| 454 | "^[6-9]$": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 455 | "type": "object", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 456 | "properties": { |
| 457 | "Description": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 458 | "description": "What the value in the field represents.", |
| 459 | "type": "string" |
| 460 | }, |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 461 | "AdditionalDataPropSource": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 462 | "description": "Which AdditionalData property key to get the data from.", |
| 463 | "type": "string" |
| 464 | } |
| 465 | }, |
| 466 | |
| 467 | "additionalProperties": false |
| 468 | }, |
| 469 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 470 | "examples": { |
| 471 | "SRCWords6To9": { |
| 472 | "6": { |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 473 | "Description": "Failing PSU number", |
| 474 | "AdditionalDataPropSource": "PSU_NUM" |
| 475 | } |
| 476 | } |
| 477 | } |
| 478 | }, |
| 479 | "additionalProperties": false |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 480 | }, |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 481 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 482 | "adName": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 483 | "description": "The name of the AdditionalData entry to use to index into the callout tables.", |
| 484 | "type": "string" |
| 485 | }, |
| 486 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 487 | "adValue": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 488 | "description": "The value for the AdditionalData entry specified by ADName that indexes into the callout tables.", |
| 489 | "type": "string" |
| 490 | }, |
| 491 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 492 | "locationCode": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 493 | "description": "A location code - the segment after the 'UTMS-' prefix. (e.g. P1-C2)", |
| 494 | "type": "string" |
| 495 | }, |
| 496 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 497 | "priority": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 498 | "description": "The callout priority. See the PEL spec for priority definitions.", |
| 499 | "type": "string", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 500 | "enum": [ |
| 501 | "high", |
| 502 | "medium", |
| 503 | "low", |
| 504 | "medium_group_a", |
| 505 | "medium_group_b", |
| 506 | "medium_group_c" |
| 507 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 508 | }, |
| 509 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 510 | "symbolicFRU": { |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 511 | "description": "The symbolic FRU callout.", |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 512 | "type": "string", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 513 | "enum": [ |
| 514 | "service_docs", |
| 515 | "pwrsply", |
| 516 | "air_mover", |
| 517 | "pgood_part", |
| 518 | "usb_pgood", |
| 519 | "ambient_temp", |
| 520 | "ambient_temp_back", |
| 521 | "ambient_perf_loss", |
| 522 | "ac_module", |
| 523 | "fan_cable", |
| 524 | "cable_continued", |
| 525 | "altitude", |
| 526 | "pcie_hot_plug", |
Jim Wright | 9b779e4 | 2022-12-16 17:50:23 -0600 | [diff] [blame] | 527 | "overtemp", |
| 528 | "memory_dimm" |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 529 | ] |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 530 | }, |
| 531 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 532 | "symbolicFRUTrusted": { |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 533 | "description": "The symbolic FRU callout with a trusted location code. (Can light LEDs).", |
| 534 | "ref": "#/definitions/symbolicFRU" |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 535 | }, |
| 536 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 537 | "procedure": { |
Matt Spinler | 2edce4e | 2024-01-17 11:13:51 -0600 | [diff] [blame] | 538 | "description": "The maintenance procedure callout. List of available procedures is at https://github.com/ibm-openbmc/openpower-pel-parsers/blob/master/modules/calloutparsers/ocallouts/ocallouts.py ", |
| 539 | "type": "string" |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 540 | }, |
| 541 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 542 | "useInventoryLocCode": { |
Matt Spinler | f00f9d0 | 2020-10-23 09:14:22 -0500 | [diff] [blame] | 543 | "description": "Used along with SymbolicFRUTrusted to specify that the location code to use with the symbolic FRU is to be taken from the passed in CALLOUT_INVENTORY_PATH callout rather than being specified with LocCode.", |
| 544 | "type": "boolean" |
| 545 | }, |
| 546 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 547 | "calloutList": { |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 548 | "description": "The list of FRU callouts to add to a PEL. If just LocCode is specified, it is a normal hardware FRU callout. If Procedure is specified, it is a procedure callout. If SymbolicFRU or SymbolicFRUTrusted are specified, it is a Symbolic FRU callout. SymbolicFRUTrusted also requires LocCode.", |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 549 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 550 | "items": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 551 | "type": "object", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 552 | "properties": { |
| 553 | "Priority": { "$ref": "#/definitions/priority" }, |
| 554 | "LocCode": { "$ref": "#/definitions/locationCode" }, |
| 555 | "SymbolicFRU": { "$ref": "#/definitions/symbolicFRU" }, |
| 556 | "SymbolicFRUTrusted": { |
| 557 | "$ref": "#/definitions/symbolicFRUTrusted" |
| 558 | }, |
| 559 | "Procedure": { "$ref": "#/definitions/procedure" }, |
| 560 | "UseInventoryLocCode": { |
| 561 | "$ref": "#/definitions/useInventoryLocCode" |
| 562 | } |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 563 | }, |
| 564 | "additionalProperties": false, |
| 565 | "required": ["Priority"], |
| 566 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 567 | "oneOf": [ |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 568 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 569 | "allOf": [ |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 570 | { "required": ["LocCode"] }, |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 571 | { "not": { "required": ["SymbolicFRU"] } }, |
| 572 | { "not": { "required": ["SymbolicFRUTrusted"] } }, |
| 573 | { "not": { "required": ["Procedure"] } }, |
| 574 | { "not": { "required": ["UseInventoryLocCode"] } } |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 575 | ] |
| 576 | }, |
| 577 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 578 | "allOf": [ |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 579 | { "required": ["SymbolicFRU"] }, |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 580 | { "not": { "required": ["SymbolicFRUTrusted"] } }, |
| 581 | { "not": { "required": ["Procedure"] } }, |
| 582 | { "not": { "required": ["UseInventoryLocCode"] } } |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 583 | ] |
| 584 | }, |
| 585 | |
| 586 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 587 | "allOf": [ |
Matt Spinler | f00f9d0 | 2020-10-23 09:14:22 -0500 | [diff] [blame] | 588 | { "required": ["SymbolicFRUTrusted", "LocCode"] }, |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 589 | { "not": { "required": ["SymbolicFRU"] } }, |
| 590 | { "not": { "required": ["Procedure"] } }, |
| 591 | { "not": { "required": ["UseInventoryLocCode"] } } |
Matt Spinler | f00f9d0 | 2020-10-23 09:14:22 -0500 | [diff] [blame] | 592 | ] |
| 593 | }, |
| 594 | |
| 595 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 596 | "allOf": [ |
| 597 | { |
| 598 | "required": [ |
| 599 | "SymbolicFRUTrusted", |
| 600 | "UseInventoryLocCode" |
| 601 | ] |
| 602 | }, |
| 603 | { "not": { "required": ["SymbolicFRU"] } }, |
| 604 | { "not": { "required": ["Procedure"] } }, |
| 605 | { "not": { "required": ["LocCode"] } } |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 606 | ] |
| 607 | }, |
| 608 | |
| 609 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 610 | "allOf": [ |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 611 | { "required": ["Procedure"] }, |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 612 | { "not": { "required": ["SymbolicFRU"] } }, |
| 613 | { "not": { "required": ["SymbolicFRUTrusted"] } }, |
| 614 | { "not": { "required": ["LocCode"] } }, |
| 615 | { "not": { "required": ["UseInventoryLocCode"] } } |
Matt Spinler | d408665 | 2020-04-08 15:36:22 -0500 | [diff] [blame] | 616 | ] |
| 617 | } |
| 618 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 619 | }, |
| 620 | "minItems": 1, |
| 621 | "maxItems": 10, |
| 622 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 623 | "examples": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 624 | { |
| 625 | "Priority": "high", |
| 626 | "LocCode": "P1" |
| 627 | }, |
| 628 | { |
| 629 | "Priority": "medium", |
| 630 | "LocCode": "P2", |
| 631 | "SymbolicFRU": "PROCFRU" |
| 632 | }, |
| 633 | { |
| 634 | "Priority": "low", |
| 635 | "Procedure": "SVCDOCS" |
| 636 | } |
| 637 | ] |
| 638 | }, |
| 639 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 640 | "system": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 641 | "description": "The system type string, as specified by entity manger. It is used to index into different sections of the JSON.", |
Matt Spinler | 17952d9 | 2020-04-10 13:50:31 -0500 | [diff] [blame] | 642 | "type": "string", |
| 643 | "minLength": 1 |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 644 | }, |
| 645 | |
Arya K Padman | 1537029 | 2024-05-14 01:48:22 -0500 | [diff] [blame] | 646 | "systems": { |
| 647 | "description": "The Systems key can be defined and can be used to keep the name of the systems as an array of string if the systems possess same callout list.", |
| 648 | "type": "array", |
| 649 | "items": { |
| 650 | "type": "string" |
| 651 | }, |
| 652 | "minItems": 1 |
| 653 | }, |
| 654 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 655 | "callouts": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 656 | "description": "This contains callouts that can vary based on system type. Each entry contains an optional System property and a required CalloutList property. If the System property is left out it indicates that the CalloutList callouts are valid for every system type, unless there is another Callouts entry that has a matching System property, in which case that entry is valid.", |
| 657 | "type": "array", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 658 | "items": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 659 | "type": "object", |
| 660 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 661 | "properties": { |
| 662 | "System": { "$ref": "#/definitions/system" }, |
Arya K Padman | 1537029 | 2024-05-14 01:48:22 -0500 | [diff] [blame] | 663 | "Systems": { "$ref": "#/definitions/systems" }, |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 664 | "CalloutList": { "$ref": "#/definitions/calloutList" } |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 665 | }, |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 666 | "additionalProperties": false |
| 667 | }, |
Arya K Padman | 1537029 | 2024-05-14 01:48:22 -0500 | [diff] [blame] | 668 | "anyOf": [ |
| 669 | { |
| 670 | "required": ["System", "CalloutList"] |
| 671 | }, |
| 672 | { |
| 673 | "required": ["Systems", "CalloutList"] |
| 674 | }, |
| 675 | { |
| 676 | "required": ["CalloutList"] |
| 677 | } |
| 678 | ], |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 679 | "minItems": 1, |
| 680 | "maxItems": 10, |
| 681 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 682 | "examples": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 683 | [ |
| 684 | { |
| 685 | "System": "system1", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 686 | "CalloutList": [{ "Priority": "high", "LocCode": "P1" }] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 687 | }, |
| 688 | { |
Arya K Padman | 1537029 | 2024-05-14 01:48:22 -0500 | [diff] [blame] | 689 | "Systems": ["system1", "system2"], |
| 690 | "CalloutList": [{ "Priority": "low", "LocCode": "P2" }] |
| 691 | }, |
| 692 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 693 | "CalloutList": [ |
| 694 | { "Priority": "high", "Procedure": "NEXTLVL" } |
| 695 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 696 | } |
| 697 | ] |
| 698 | ] |
| 699 | }, |
| 700 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 701 | "calloutsWithTheirADValues": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 702 | "description": "This contains callouts along with the AdditionalData value used to select an entry into the callout list. The AdditionalData entry was specified by ADName in the CalloutsUsingAD parent entry.", |
| 703 | "type": "array", |
| 704 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 705 | "items": { |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 706 | "type": "object", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 707 | "properties": { |
| 708 | "ADValue": { "$ref": "#/definitions/adValue" }, |
| 709 | "Callouts": { "$ref": "#/definitions/callouts" } |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 710 | }, |
| 711 | "additionalProperties": false, |
| 712 | "required": ["ADValue", "Callouts"] |
| 713 | }, |
| 714 | "minItems": 1, |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 715 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 716 | "examples": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 717 | [ |
| 718 | { |
| 719 | "ADValue": "0", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 720 | "Callouts": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 721 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 722 | "CalloutList": [ |
| 723 | { "Priority": "high", "LocCode": "P1" } |
| 724 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 725 | } |
| 726 | ] |
| 727 | }, |
| 728 | { |
| 729 | "ADValue": "1", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 730 | "Callouts": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 731 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 732 | "CalloutList": [ |
| 733 | { "Priority": "high", "LocCode": "P2" } |
| 734 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 735 | } |
| 736 | ] |
| 737 | } |
| 738 | ] |
| 739 | ] |
| 740 | }, |
| 741 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 742 | "calloutsUsingAD": { |
Matt Spinler | 3d92331 | 2022-08-01 09:52:55 -0500 | [diff] [blame] | 743 | "description": "This contains the callouts that can be specified based on a value in the AdditionalData property.", |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 744 | "type": "object", |
| 745 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 746 | "properties": { |
| 747 | "ADName": { "$ref": "#/definitions/adName" }, |
| 748 | "CalloutsWithTheirADValues": { |
| 749 | "$ref": "#/definitions/calloutsWithTheirADValues" |
| 750 | }, |
| 751 | "CalloutsWhenNoADMatch": { |
| 752 | "$ref": "#/definitions/calloutsWhenNoADMatch" |
| 753 | } |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 754 | }, |
| 755 | "additionalProperties": false, |
| 756 | "required": ["ADName", "CalloutsWithTheirADValues"], |
| 757 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 758 | "examples": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 759 | { |
| 760 | "ADName": "PROC_NUM", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 761 | "CalloutsWithTheirADValues": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 762 | { |
| 763 | "ADValue": "0", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 764 | "Callouts": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 765 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 766 | "CalloutList": [ |
| 767 | { "Priority": "high", "LocCode": "P1" } |
| 768 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 769 | } |
| 770 | ] |
| 771 | }, |
| 772 | { |
| 773 | "ADValue": "1", |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 774 | "Callouts": [ |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 775 | { |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 776 | "CalloutList": [ |
| 777 | { "Priority": "high", "LocCode": "P2" } |
| 778 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 779 | } |
| 780 | ] |
| 781 | } |
| 782 | ] |
| 783 | } |
| 784 | ] |
Matt Spinler | 3d92331 | 2022-08-01 09:52:55 -0500 | [diff] [blame] | 785 | }, |
| 786 | |
Patrick Williams | 26919f0 | 2022-12-08 06:12:43 -0600 | [diff] [blame] | 787 | "calloutsWhenNoADMatch": { |
Matt Spinler | 3d92331 | 2022-08-01 09:52:55 -0500 | [diff] [blame] | 788 | "description": "This contains the callouts to use when a match in the 'CalloutsWithTheirADValues array isn't found.", |
| 789 | "$ref": "#/definitions/callouts" |
Matt Spinler | f22b4a1 | 2022-12-15 11:20:35 -0600 | [diff] [blame] | 790 | }, |
| 791 | |
| 792 | "numLines": { |
| 793 | "description": "The number of lines of the journal to capture.", |
| 794 | "type": "integer", |
| 795 | "minimum": 1, |
| 796 | "maximum": 100 |
| 797 | }, |
| 798 | |
| 799 | "syslogID": { |
| 800 | "description": "SYSLOG_IDENTIFIER value from the journal whose entries to capture.", |
| 801 | "type": "string", |
| 802 | "minLength": 1 |
| 803 | }, |
| 804 | |
| 805 | "journalSection": { |
| 806 | "type": "object", |
| 807 | "properties": { |
| 808 | "SyslogID": { "$ref": "#/definitions/syslogID" }, |
| 809 | "NumLines": { "$ref": "#/definitions/numLines" } |
| 810 | }, |
| 811 | "additionalProperties": false, |
| 812 | "required": ["SyslogID", "NumLines"] |
| 813 | }, |
| 814 | |
| 815 | "journalSectionList": { |
| 816 | "description": "Describes which syslog IDs and how many journal lines to capture", |
| 817 | "type": "array", |
| 818 | "items": { |
| 819 | "$ref": "#/definitions/journalSection" |
| 820 | }, |
| 821 | "minItems": 1, |
| 822 | "uniqueItems": true, |
| 823 | "examples": [ |
| 824 | { |
| 825 | "Sections": [ |
| 826 | { |
| 827 | "SyslogID": "phosphor-bmc-state-manager", |
| 828 | "NumLines": 20 |
| 829 | } |
| 830 | ] |
| 831 | } |
| 832 | ] |
| 833 | }, |
| 834 | |
| 835 | "journalCapture": { |
| 836 | "description": "Allows a PEL to capture journal data in UserData sections.", |
| 837 | "type": "object", |
| 838 | "properties": { |
| 839 | "NumLines": { "$ref": "#/definitions/numLines" }, |
| 840 | "Sections": { "$ref": "#/definitions/journalSectionList" } |
| 841 | }, |
| 842 | "oneOf": [ |
| 843 | { |
| 844 | "required": ["NumLines"] |
| 845 | }, |
| 846 | { |
| 847 | "required": ["Sections"] |
| 848 | } |
| 849 | ], |
| 850 | "additionalProperties": false, |
| 851 | "examples": [ |
| 852 | { |
| 853 | "JournalCapture": { |
| 854 | "NumLines": 30 |
| 855 | } |
| 856 | }, |
| 857 | { |
| 858 | "JournalCapture": { |
| 859 | "Sections": [ |
| 860 | { |
| 861 | "SyslogID": "phosphor-bmc-state-manager", |
| 862 | "NumLines": 20 |
| 863 | }, |
| 864 | { |
| 865 | "SyslogID": "phosphor-log-manager", |
| 866 | "NumLines": 15 |
| 867 | } |
| 868 | ] |
| 869 | } |
| 870 | } |
| 871 | ] |
Matt Spinler | 9e819c7 | 2020-02-12 16:44:16 -0600 | [diff] [blame] | 872 | } |
Matt Spinler | 10f3d93 | 2019-09-26 16:24:14 -0500 | [diff] [blame] | 873 | } |
| 874 | } |