1dcb4b3b3SBob King{ 2dcb4b3b3SBob King "$schema": "http://json-schema.org/schema#", 3dcb4b3b3SBob King "title": "JSON schema for the phosphor-regulators config file", 4dcb4b3b3SBob King "$id": "https://github.com/openbmc/phosphor-power/tree/master/phosphor-regulators/schema/config_schema.json", 5dcb4b3b3SBob King "description": "This schema describes the JSON format for the phosphor-regulators configuration file.", 6dcb4b3b3SBob King "type": "object", 7*0dbce568SPatrick Williams "properties": { 84dc9a300SShawn McCarney "comments": { "$ref": "#/definitions/comments" }, 94dc9a300SShawn McCarney "rules": { "$ref": "#/definitions/rules" }, 104dc9a300SShawn McCarney "chassis": { "$ref": "#/definitions/chassis" } 11dcb4b3b3SBob King }, 12dcb4b3b3SBob King "required": ["chassis"], 13dcb4b3b3SBob King "additionalProperties": false, 14*0dbce568SPatrick Williams "definitions": { 15*0dbce568SPatrick Williams "rule": { 16dcb4b3b3SBob King "type": "object", 17*0dbce568SPatrick Williams "properties": { 18dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 19dcb4b3b3SBob King "id": { "$ref": "#/definitions/id" }, 20dcb4b3b3SBob King "actions": { "$ref": "#/definitions/actions" } 21dcb4b3b3SBob King }, 22dcb4b3b3SBob King "required": ["id", "actions"], 23dcb4b3b3SBob King "additionalProperties": false 24dcb4b3b3SBob King }, 254dc9a300SShawn McCarney 26*0dbce568SPatrick Williams "rules": { 274dc9a300SShawn McCarney "type": "array", 284dc9a300SShawn McCarney "items": { "$ref": "#/definitions/rule" }, 29dcb4b3b3SBob King "minItems": 1 30dcb4b3b3SBob King }, 31dcb4b3b3SBob King 32*0dbce568SPatrick Williams "comments": { 33dcb4b3b3SBob King "type": "array", 344dc9a300SShawn McCarney "items": { "type": "string" }, 35dcb4b3b3SBob King "minItems": 1 36dcb4b3b3SBob King }, 37dcb4b3b3SBob King 38*0dbce568SPatrick Williams "id": { 39dcb4b3b3SBob King "type": "string", 40dcb4b3b3SBob King "pattern": "^[A-Za-z0-9_]+$" 41dcb4b3b3SBob King }, 42dcb4b3b3SBob King 43*0dbce568SPatrick Williams "action": { 44dcb4b3b3SBob King "type": "object", 45*0dbce568SPatrick Williams "properties": { 46dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 47dcb4b3b3SBob King "and": { "$ref": "#/definitions/actions" }, 48*0dbce568SPatrick Williams "compare_presence": { 49*0dbce568SPatrick Williams "$ref": "#/definitions/compare_presence" 50*0dbce568SPatrick Williams }, 51dcb4b3b3SBob King "compare_vpd": { "$ref": "#/definitions/compare_vpd" }, 52*0dbce568SPatrick Williams "i2c_capture_bytes": { 53*0dbce568SPatrick Williams "$ref": "#/definitions/i2c_capture_bytes" 54*0dbce568SPatrick Williams }, 55dcb4b3b3SBob King "i2c_compare_bit": { "$ref": "#/definitions/i2c_bit" }, 56dcb4b3b3SBob King "i2c_compare_byte": { "$ref": "#/definitions/i2c_byte" }, 57dcb4b3b3SBob King "i2c_compare_bytes": { "$ref": "#/definitions/i2c_bytes" }, 58dcb4b3b3SBob King "i2c_write_bit": { "$ref": "#/definitions/i2c_bit" }, 59dcb4b3b3SBob King "i2c_write_byte": { "$ref": "#/definitions/i2c_byte" }, 60dcb4b3b3SBob King "i2c_write_bytes": { "$ref": "#/definitions/i2c_bytes" }, 61dcb4b3b3SBob King "if": { "$ref": "#/definitions/if" }, 62846dde5dSShawn McCarney "log_phase_fault": { "$ref": "#/definitions/log_phase_fault" }, 63dcb4b3b3SBob King "not": { "$ref": "#/definitions/action" }, 64dcb4b3b3SBob King "or": { "$ref": "#/definitions/actions" }, 65*0dbce568SPatrick Williams "pmbus_read_sensor": { 66*0dbce568SPatrick Williams "$ref": "#/definitions/pmbus_read_sensor" 67*0dbce568SPatrick Williams }, 68*0dbce568SPatrick Williams "pmbus_write_vout_command": { 69*0dbce568SPatrick Williams "$ref": "#/definitions/pmbus_write_vout_command" 70*0dbce568SPatrick Williams }, 71dcb4b3b3SBob King "run_rule": { "$ref": "#/definitions/id" }, 72dcb4b3b3SBob King "set_device": { "$ref": "#/definitions/id" } 73dcb4b3b3SBob King }, 74dcb4b3b3SBob King "additionalProperties": false, 75dcb4b3b3SBob King "oneOf": [ 76dcb4b3b3SBob King { "required": ["and"] }, 77dcb4b3b3SBob King { "required": ["compare_presence"] }, 78dcb4b3b3SBob King { "required": ["compare_vpd"] }, 79846dde5dSShawn McCarney { "required": ["i2c_capture_bytes"] }, 80dcb4b3b3SBob King { "required": ["i2c_compare_bit"] }, 81dcb4b3b3SBob King { "required": ["i2c_compare_byte"] }, 82dcb4b3b3SBob King { "required": ["i2c_compare_bytes"] }, 83dcb4b3b3SBob King { "required": ["i2c_write_bit"] }, 84dcb4b3b3SBob King { "required": ["i2c_write_byte"] }, 85dcb4b3b3SBob King { "required": ["i2c_write_bytes"] }, 86dcb4b3b3SBob King { "required": ["if"] }, 87846dde5dSShawn McCarney { "required": ["log_phase_fault"] }, 88dcb4b3b3SBob King { "required": ["not"] }, 89dcb4b3b3SBob King { "required": ["or"] }, 90dcb4b3b3SBob King { "required": ["pmbus_write_vout_command"] }, 91dcb4b3b3SBob King { "required": ["pmbus_read_sensor"] }, 92dcb4b3b3SBob King { "required": ["run_rule"] }, 93dcb4b3b3SBob King { "required": ["set_device"] } 94dcb4b3b3SBob King ] 95dcb4b3b3SBob King }, 96dcb4b3b3SBob King 97*0dbce568SPatrick Williams "actions": { 98dcb4b3b3SBob King "type": "array", 99dcb4b3b3SBob King "items": { "$ref": "#/definitions/action" }, 100dcb4b3b3SBob King "minItems": 1 101dcb4b3b3SBob King }, 102dcb4b3b3SBob King 103*0dbce568SPatrick Williams "compare_presence": { 104dcb4b3b3SBob King "type": "object", 105*0dbce568SPatrick Williams "properties": { 106ecbeeea7SShawn McCarney "fru": { "$ref": "#/definitions/inventory_path" }, 107dcb4b3b3SBob King "value": { "$ref": "#/definitions/boolean_value" } 108dcb4b3b3SBob King }, 109dcb4b3b3SBob King "required": ["fru", "value"], 110dcb4b3b3SBob King "additionalProperties": false 111dcb4b3b3SBob King }, 112dcb4b3b3SBob King 113*0dbce568SPatrick Williams "inventory_path": { 114dcb4b3b3SBob King "type": "string", 115dcb4b3b3SBob King "minLength": 1 116dcb4b3b3SBob King }, 117dcb4b3b3SBob King 118*0dbce568SPatrick Williams "boolean_value": { 119dcb4b3b3SBob King "type": "boolean" 120dcb4b3b3SBob King }, 121dcb4b3b3SBob King 122*0dbce568SPatrick Williams "compare_vpd": { 123dcb4b3b3SBob King "type": "object", 124*0dbce568SPatrick Williams "properties": { 125ecbeeea7SShawn McCarney "fru": { "$ref": "#/definitions/inventory_path" }, 126dcb4b3b3SBob King "keyword": { "$ref": "#/definitions/keyword" }, 127aacc2aafSMatt Spinler "value": { "$ref": "#/definitions/string_value" }, 128a2a830b1SShawn McCarney "byte_values": { "$ref": "#/definitions/byte_values_min0" } 129dcb4b3b3SBob King }, 130aacc2aafSMatt Spinler "required": ["fru", "keyword"], 131aacc2aafSMatt Spinler "oneOf": [ 132aacc2aafSMatt Spinler { "required": ["value"] }, 133aacc2aafSMatt Spinler { "required": ["byte_values"] } 134aacc2aafSMatt Spinler ], 135dcb4b3b3SBob King "additionalProperties": false 136dcb4b3b3SBob King }, 137dcb4b3b3SBob King 138*0dbce568SPatrick Williams "keyword": { 139dcb4b3b3SBob King "type": "string", 140aacc2aafSMatt Spinler "enum": ["CCIN", "Manufacturer", "Model", "PartNumber", "HW"] 141dcb4b3b3SBob King }, 142dcb4b3b3SBob King 143*0dbce568SPatrick Williams "string_value": { 144dcb4b3b3SBob King "type": "string" 145dcb4b3b3SBob King }, 146dcb4b3b3SBob King 147*0dbce568SPatrick Williams "i2c_capture_bytes": { 148846dde5dSShawn McCarney "type": "object", 149*0dbce568SPatrick Williams "properties": { 150846dde5dSShawn McCarney "register": { "$ref": "#/definitions/register" }, 151846dde5dSShawn McCarney "count": { "$ref": "#/definitions/byte_count" } 152846dde5dSShawn McCarney }, 153846dde5dSShawn McCarney "required": ["register", "count"], 154846dde5dSShawn McCarney "additionalProperties": false 155846dde5dSShawn McCarney }, 156846dde5dSShawn McCarney 157*0dbce568SPatrick Williams "i2c_bit": { 158dcb4b3b3SBob King "type": "object", 159*0dbce568SPatrick Williams "properties": { 160dcb4b3b3SBob King "register": { "$ref": "#/definitions/register" }, 161dcb4b3b3SBob King "position": { "$ref": "#/definitions/position" }, 162dcb4b3b3SBob King "value": { "$ref": "#/definitions/bit_value" } 163dcb4b3b3SBob King }, 164dcb4b3b3SBob King "required": ["register", "position", "value"], 165dcb4b3b3SBob King "additionalProperties": false 166dcb4b3b3SBob King }, 167dcb4b3b3SBob King 168*0dbce568SPatrick Williams "register": { 169dcb4b3b3SBob King "type": "string", 170dcb4b3b3SBob King "pattern": "^0x[0-9A-Fa-f]{2}$" 171dcb4b3b3SBob King }, 172dcb4b3b3SBob King 173*0dbce568SPatrick Williams "position": { 174dcb4b3b3SBob King "type": "integer", 175dcb4b3b3SBob King "minimum": 0, 176dcb4b3b3SBob King "maximum": 7 177dcb4b3b3SBob King }, 178dcb4b3b3SBob King 179*0dbce568SPatrick Williams "bit_value": { 180dcb4b3b3SBob King "type": "integer", 181dcb4b3b3SBob King "minimum": 0, 182dcb4b3b3SBob King "maximum": 1 183dcb4b3b3SBob King }, 184dcb4b3b3SBob King 185*0dbce568SPatrick Williams "i2c_byte": { 186dcb4b3b3SBob King "type": "object", 187*0dbce568SPatrick Williams "properties": { 188dcb4b3b3SBob King "register": { "$ref": "#/definitions/register" }, 189dcb4b3b3SBob King "value": { "$ref": "#/definitions/byte_value" }, 190dcb4b3b3SBob King "mask": { "$ref": "#/definitions/byte_mask" } 191dcb4b3b3SBob King }, 192dcb4b3b3SBob King "required": ["register", "value"], 193dcb4b3b3SBob King "additionalProperties": false 194dcb4b3b3SBob King }, 195dcb4b3b3SBob King 196*0dbce568SPatrick Williams "byte_value": { 197dcb4b3b3SBob King "type": "string", 198dcb4b3b3SBob King "pattern": "^0x[0-9A-Fa-f]{2}$" 199dcb4b3b3SBob King }, 200dcb4b3b3SBob King 201*0dbce568SPatrick Williams "byte_mask": { 202dcb4b3b3SBob King "type": "string", 203dcb4b3b3SBob King "pattern": "^0x[0-9A-Fa-f]{2}$" 204dcb4b3b3SBob King }, 205dcb4b3b3SBob King 206*0dbce568SPatrick Williams "byte_count": { 207846dde5dSShawn McCarney "type": "integer", 208846dde5dSShawn McCarney "minimum": 1 209846dde5dSShawn McCarney }, 210846dde5dSShawn McCarney 211*0dbce568SPatrick Williams "i2c_bytes": { 212dcb4b3b3SBob King "type": "object", 213*0dbce568SPatrick Williams "properties": { 214dcb4b3b3SBob King "register": { "$ref": "#/definitions/register" }, 215a2a830b1SShawn McCarney "values": { "$ref": "#/definitions/byte_values" }, 216a2a830b1SShawn McCarney "masks": { "$ref": "#/definitions/byte_masks" } 217dcb4b3b3SBob King }, 218dcb4b3b3SBob King "required": ["register", "values"], 219dcb4b3b3SBob King "additionalProperties": false 220dcb4b3b3SBob King }, 221dcb4b3b3SBob King 222*0dbce568SPatrick Williams "byte_values": { 223dcb4b3b3SBob King "type": "array", 224dcb4b3b3SBob King "items": { "$ref": "#/definitions/byte_value" }, 225dcb4b3b3SBob King "minItems": 1 226dcb4b3b3SBob King }, 227dcb4b3b3SBob King 228*0dbce568SPatrick Williams "byte_values_min0": { 229a2a830b1SShawn McCarney "type": "array", 230a2a830b1SShawn McCarney "items": { "$ref": "#/definitions/byte_value" }, 231a2a830b1SShawn McCarney "minItems": 0 232a2a830b1SShawn McCarney }, 233a2a830b1SShawn McCarney 234*0dbce568SPatrick Williams "byte_masks": { 235dcb4b3b3SBob King "type": "array", 236dcb4b3b3SBob King "items": { "$ref": "#/definitions/byte_mask" }, 237dcb4b3b3SBob King "minItems": 1 238dcb4b3b3SBob King }, 239dcb4b3b3SBob King 240*0dbce568SPatrick Williams "if": { 241dcb4b3b3SBob King "type": "object", 242*0dbce568SPatrick Williams "properties": { 243dcb4b3b3SBob King "condition": { "$ref": "#/definitions/action" }, 244dcb4b3b3SBob King "then": { "$ref": "#/definitions/actions" }, 245dcb4b3b3SBob King "else": { "$ref": "#/definitions/actions" } 246dcb4b3b3SBob King }, 247dcb4b3b3SBob King "required": ["condition", "then"], 248dcb4b3b3SBob King "additionalProperties": false 249dcb4b3b3SBob King }, 250dcb4b3b3SBob King 251*0dbce568SPatrick Williams "log_phase_fault": { 252846dde5dSShawn McCarney "type": "object", 253*0dbce568SPatrick Williams "properties": { 254846dde5dSShawn McCarney "type": { "$ref": "#/definitions/phase_fault_type" } 255846dde5dSShawn McCarney }, 256846dde5dSShawn McCarney "required": ["type"], 257846dde5dSShawn McCarney "additionalProperties": false 258846dde5dSShawn McCarney }, 259846dde5dSShawn McCarney 260*0dbce568SPatrick Williams "phase_fault_type": { 261846dde5dSShawn McCarney "type": "string", 262846dde5dSShawn McCarney "enum": ["n+1", "n"] 263846dde5dSShawn McCarney }, 264846dde5dSShawn McCarney 265*0dbce568SPatrick Williams "pmbus_write_vout_command": { 266dcb4b3b3SBob King "type": "object", 267*0dbce568SPatrick Williams "properties": { 268dcb4b3b3SBob King "volts": { "$ref": "#/definitions/volts" }, 269dcb4b3b3SBob King "format": { "$ref": "#/definitions/write_vout_format" }, 270dcb4b3b3SBob King "exponent": { "$ref": "#/definitions/exponent" }, 271dcb4b3b3SBob King "is_verified": { "$ref": "#/definitions/is_verified" } 272dcb4b3b3SBob King }, 273dcb4b3b3SBob King "required": ["format"], 274dcb4b3b3SBob King "additionalProperties": false 275dcb4b3b3SBob King }, 276dcb4b3b3SBob King 277*0dbce568SPatrick Williams "volts": { 278dcb4b3b3SBob King "type": "number" 279dcb4b3b3SBob King }, 280dcb4b3b3SBob King 281*0dbce568SPatrick Williams "write_vout_format": { 282dcb4b3b3SBob King "type": "string", 283dcb4b3b3SBob King "enum": ["linear"] 284dcb4b3b3SBob King }, 285dcb4b3b3SBob King 286*0dbce568SPatrick Williams "exponent": { 287dcb4b3b3SBob King "type": "integer" 288dcb4b3b3SBob King }, 289dcb4b3b3SBob King 290*0dbce568SPatrick Williams "is_verified": { 291dcb4b3b3SBob King "type": "boolean" 292dcb4b3b3SBob King }, 293dcb4b3b3SBob King 294*0dbce568SPatrick Williams "pmbus_read_sensor": { 295dcb4b3b3SBob King "type": "object", 296*0dbce568SPatrick Williams "properties": { 297dcb4b3b3SBob King "type": { "$ref": "#/definitions/pmbus_read_sensor_type" }, 298*0dbce568SPatrick Williams "command": { 299*0dbce568SPatrick Williams "$ref": "#/definitions/pmbus_read_sensor_command" 300*0dbce568SPatrick Williams }, 301dcb4b3b3SBob King "format": { "$ref": "#/definitions/read_sensor_format" }, 302dcb4b3b3SBob King "exponent": { "$ref": "#/definitions/exponent" } 303dcb4b3b3SBob King }, 304dcb4b3b3SBob King "required": ["type", "command", "format"], 305dcb4b3b3SBob King "additionalProperties": false 306dcb4b3b3SBob King }, 307dcb4b3b3SBob King 308*0dbce568SPatrick Williams "pmbus_read_sensor_type": { 309dcb4b3b3SBob King "type": "string", 310*0dbce568SPatrick Williams "enum": [ 311*0dbce568SPatrick Williams "iout", 312*0dbce568SPatrick Williams "iout_peak", 313*0dbce568SPatrick Williams "iout_valley", 314*0dbce568SPatrick Williams "pout", 315*0dbce568SPatrick Williams "temperature", 316*0dbce568SPatrick Williams "temperature_peak", 317*0dbce568SPatrick Williams "vout", 318*0dbce568SPatrick Williams "vout_peak", 319*0dbce568SPatrick Williams "vout_valley" 320*0dbce568SPatrick Williams ] 321dcb4b3b3SBob King }, 322dcb4b3b3SBob King 323*0dbce568SPatrick Williams "pmbus_read_sensor_command": { 324dcb4b3b3SBob King "type": "string", 325dcb4b3b3SBob King "pattern": "^0x[0-9a-fA-F]{2}$" 326dcb4b3b3SBob King }, 327dcb4b3b3SBob King 328*0dbce568SPatrick Williams "read_sensor_format": { 329dcb4b3b3SBob King "type": "string", 330dcb4b3b3SBob King "enum": ["linear_11", "linear_16"] 331dcb4b3b3SBob King }, 332dcb4b3b3SBob King 333*0dbce568SPatrick Williams "chassis_object": { 334dcb4b3b3SBob King "type": "object", 335*0dbce568SPatrick Williams "properties": { 336dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 337dcb4b3b3SBob King "number": { "$ref": "#/definitions/number" }, 338ecbeeea7SShawn McCarney "inventory_path": { "$ref": "#/definitions/inventory_path" }, 339dcb4b3b3SBob King "devices": { "$ref": "#/definitions/devices" } 340dcb4b3b3SBob King }, 3414c88a4c2SShawn McCarney "required": ["number", "inventory_path"], 342dcb4b3b3SBob King "additionalProperties": false 343dcb4b3b3SBob King }, 3444dc9a300SShawn McCarney 345*0dbce568SPatrick Williams "chassis": { 3464dc9a300SShawn McCarney "type": "array", 3474dc9a300SShawn McCarney "items": { "$ref": "#/definitions/chassis_object" }, 348dcb4b3b3SBob King "minItems": 1 349dcb4b3b3SBob King }, 350dcb4b3b3SBob King 351*0dbce568SPatrick Williams "number": { 352dcb4b3b3SBob King "type": "integer", 353dcb4b3b3SBob King "minimum": 1 354dcb4b3b3SBob King }, 355dcb4b3b3SBob King 356*0dbce568SPatrick Williams "device": { 357dcb4b3b3SBob King "type": "object", 358*0dbce568SPatrick Williams "properties": { 359dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 360dcb4b3b3SBob King "id": { "$ref": "#/definitions/id" }, 361dcb4b3b3SBob King "is_regulator": { "$ref": "#/definitions/is_regulator" }, 362ecbeeea7SShawn McCarney "fru": { "$ref": "#/definitions/inventory_path" }, 363dcb4b3b3SBob King "i2c_interface": { "$ref": "#/definitions/i2c_interface" }, 364*0dbce568SPatrick Williams "presence_detection": { 365*0dbce568SPatrick Williams "$ref": "#/definitions/presence_detection" 366*0dbce568SPatrick Williams }, 367dcb4b3b3SBob King "configuration": { "$ref": "#/definitions/configuration" }, 368*0dbce568SPatrick Williams "phase_fault_detection": { 369*0dbce568SPatrick Williams "$ref": "#/definitions/phase_fault_detection" 370*0dbce568SPatrick Williams }, 371dcb4b3b3SBob King "rails": { "$ref": "#/definitions/rails" } 372dcb4b3b3SBob King }, 373dcb4b3b3SBob King "required": ["id", "is_regulator", "fru", "i2c_interface"], 374*0dbce568SPatrick Williams "if": { 375dcb4b3b3SBob King "properties": { "is_regulator": { "const": false } } 376dcb4b3b3SBob King }, 377*0dbce568SPatrick Williams "then": { 378846dde5dSShawn McCarney "not": { 379846dde5dSShawn McCarney "anyOf": [ 380846dde5dSShawn McCarney { "required": ["phase_fault_detection"] }, 381846dde5dSShawn McCarney { "required": ["rails"] } 382846dde5dSShawn McCarney ] 383846dde5dSShawn McCarney } 384dcb4b3b3SBob King }, 385dcb4b3b3SBob King "additionalProperties": false 386dcb4b3b3SBob King }, 3874dc9a300SShawn McCarney 388*0dbce568SPatrick Williams "devices": { 3894dc9a300SShawn McCarney "type": "array", 3904dc9a300SShawn McCarney "items": { "$ref": "#/definitions/device" }, 391dcb4b3b3SBob King "minItems": 1 392dcb4b3b3SBob King }, 393dcb4b3b3SBob King 394*0dbce568SPatrick Williams "is_regulator": { 395dcb4b3b3SBob King "type": "boolean" 396dcb4b3b3SBob King }, 397dcb4b3b3SBob King 398*0dbce568SPatrick Williams "i2c_interface": { 399dcb4b3b3SBob King "type": "object", 400*0dbce568SPatrick Williams "properties": { 401dcb4b3b3SBob King "bus": { "$ref": "#/definitions/bus" }, 402dcb4b3b3SBob King "address": { "$ref": "#/definitions/address" } 403dcb4b3b3SBob King }, 404dcb4b3b3SBob King "required": ["bus", "address"], 405dcb4b3b3SBob King "additionalProperties": false 406dcb4b3b3SBob King }, 407dcb4b3b3SBob King 408*0dbce568SPatrick Williams "bus": { 409dcb4b3b3SBob King "type": "integer", 410dcb4b3b3SBob King "minimum": 0 411dcb4b3b3SBob King }, 412dcb4b3b3SBob King 413*0dbce568SPatrick Williams "address": { 414dcb4b3b3SBob King "type": "string", 415dcb4b3b3SBob King "pattern": "^0x[0-9A-Fa-f]{2}$" 416dcb4b3b3SBob King }, 417dcb4b3b3SBob King 418*0dbce568SPatrick Williams "presence_detection": { 419dcb4b3b3SBob King "type": "object", 420*0dbce568SPatrick Williams "properties": { 421dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 422dcb4b3b3SBob King "rule_id": { "$ref": "#/definitions/id" }, 423dcb4b3b3SBob King "actions": { "$ref": "#/definitions/actions" } 424dcb4b3b3SBob King }, 425dcb4b3b3SBob King "additionalProperties": false, 426*0dbce568SPatrick Williams "oneOf": [{ "required": ["rule_id"] }, { "required": ["actions"] }] 427dcb4b3b3SBob King }, 428dcb4b3b3SBob King 429*0dbce568SPatrick Williams "configuration": { 430dcb4b3b3SBob King "type": "object", 431*0dbce568SPatrick Williams "properties": { 432dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 433dcb4b3b3SBob King "volts": { "$ref": "#/definitions/volts" }, 434dcb4b3b3SBob King "rule_id": { "$ref": "#/definitions/id" }, 435dcb4b3b3SBob King "actions": { "$ref": "#/definitions/actions" } 436dcb4b3b3SBob King }, 437dcb4b3b3SBob King "additionalProperties": false, 438*0dbce568SPatrick Williams "oneOf": [{ "required": ["rule_id"] }, { "required": ["actions"] }] 439dcb4b3b3SBob King }, 440dcb4b3b3SBob King 441*0dbce568SPatrick Williams "phase_fault_detection": { 442846dde5dSShawn McCarney "type": "object", 443*0dbce568SPatrick Williams "properties": { 444846dde5dSShawn McCarney "comments": { "$ref": "#/definitions/comments" }, 445846dde5dSShawn McCarney "device_id": { "$ref": "#/definitions/id" }, 446846dde5dSShawn McCarney "rule_id": { "$ref": "#/definitions/id" }, 447846dde5dSShawn McCarney "actions": { "$ref": "#/definitions/actions" } 448846dde5dSShawn McCarney }, 449846dde5dSShawn McCarney "additionalProperties": false, 450*0dbce568SPatrick Williams "oneOf": [{ "required": ["rule_id"] }, { "required": ["actions"] }] 451846dde5dSShawn McCarney }, 452846dde5dSShawn McCarney 453*0dbce568SPatrick Williams "rail": { 454dcb4b3b3SBob King "type": "object", 455*0dbce568SPatrick Williams "properties": { 456dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 457dcb4b3b3SBob King "id": { "$ref": "#/definitions/id" }, 458dcb4b3b3SBob King "configuration": { "$ref": "#/definitions/configuration" }, 459*0dbce568SPatrick Williams "sensor_monitoring": { 460*0dbce568SPatrick Williams "$ref": "#/definitions/sensor_monitoring" 461*0dbce568SPatrick Williams } 462dcb4b3b3SBob King }, 463dcb4b3b3SBob King "required": ["id"], 464dcb4b3b3SBob King "additionalProperties": false 465dcb4b3b3SBob King }, 466dcb4b3b3SBob King 467*0dbce568SPatrick Williams "rails": { 468dcb4b3b3SBob King "type": "array", 469dcb4b3b3SBob King "items": { "$ref": "#/definitions/rail" }, 470dcb4b3b3SBob King "minItems": 1 471dcb4b3b3SBob King }, 472dcb4b3b3SBob King 473*0dbce568SPatrick Williams "sensor_monitoring": { 474dcb4b3b3SBob King "type": "object", 475*0dbce568SPatrick Williams "properties": { 476dcb4b3b3SBob King "comments": { "$ref": "#/definitions/comments" }, 477dcb4b3b3SBob King "rule_id": { "$ref": "#/definitions/id" }, 478dcb4b3b3SBob King "actions": { "$ref": "#/definitions/actions" } 479dcb4b3b3SBob King }, 480dcb4b3b3SBob King "additionalProperties": false, 481*0dbce568SPatrick Williams "oneOf": [{ "required": ["rule_id"] }, { "required": ["actions"] }] 482dcb4b3b3SBob King } 483dcb4b3b3SBob King } 484dcb4b3b3SBob King} 485