{
  "$id": "sevone_alert",
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "translate": true,
  "dynamicfields": true,
  "properties": {
    "ph_request_type": {
      "type": "string",
      "description": "type of request (internal to adapter)",
      "default": "getAlerts",
      "enum": [
        "getAlerts",
        "getAlertsFiltered",
        "getAlertsForDevice",
        "getAlertsForMapConnection",
        "getAlertsForMapNode",
        "createAlert",
        "updateAlert",
        "assignAlert",
        "ignoreAlert",
        "clearAlert",
        "deleteAlert",
        "createAlertForced",
        "getFlowFalconDeviceAlerts",
        "getMaxSeverityAlertForObjects",
        "patchAlert"
      ],
      "external_name": "ph_request_type"
    },
    "id": {
      "type": "integer",
      "description": "id of the alert in sevone",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "minimum": 0,
      "maximum": 999999999999,
      "external_name": "id"
    },
    "acknowledgedBy": {
      "type": "string",
      "description": "who the alert was acknowledged by",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "acknowledgedBy"
    },
    "assignedTo": {
      "type": "integer",
      "description": "id of the person currently assigned the alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "assignedTo"
    },
    "assignedName": {
      "type": "string",
      "description": "name of the person currently assigned the alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "assignedName"
    },
    "clearMessage": {
      "type": "string",
      "description": "the message for why this alert has been cleared",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "clearMessage"
    },
    "closed": {
      "type": "integer",
      "description": "whether this alert has been closed",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "closed"
    },
    "closedKey": {
      "type": "integer",
      "description": "the key used to close the alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "closedKey"
    },
    "comments": {
      "type": "string",
      "description": "comments on the alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "comments"
    },
    "deviceId": {
      "type": "integer",
      "description": "the id of the device this alert originated on",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "deviceId"
    },
    "deviceName": {
      "type": "string",
      "description": "the name of the device this alert originated on",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "deviceName"
    },
    "endTime": {
      "type": "integer",
      "description": "time in milliseconds when this alert was closed",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "endTime"
    },
    "ignoreComment": {
      "type": "string",
      "description": "the message for why this alert should be ignored for now",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "ignoreComment"
    },
    "ignoreUid": {
      "type": "integer",
      "description": "id of the person saying to ignore the alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "ignoreUid"
    },
    "ignoreUntil": {
      "type": "integer",
      "description": "time in milliseconds when this alert should be ignored until",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "ignoreUntil"
    },
    "indicatorId": {
      "type": "integer",
      "description": "the id of the device this alert originated on",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "indicatorId"
    },
    "lastProcessed": {
      "type": "integer",
      "description": "time in milliseconds when this alert was last changed",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "lastProcessed"
    },
    "message": {
      "type": "string",
      "description": "the message providing information about this alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "message"
    },
    "number": {
      "type": "integer",
      "description": "the number of this alert in sevone",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "number"
    },
    "componentId": {
      "type": "integer",
      "description": "the id of the object/device componenet this alert originated on",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "objectId"
    },
    "occurrences": {
      "type": "integer",
      "description": "the number of occurrences for this alert in sevone",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "occurrences"
    },
    "origin": {
      "type": "string",
      "description": "where this alert was originated from",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "origin"
    },
    "pluginName": {
      "type": "string",
      "description": "the name of the plugin that generated this alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "pluginName"
    },
    "pollId": {
      "type": "integer",
      "description": "the id of the poller this alert came from",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "pollId"
    },
    "severity": {
      "type": "integer",
      "description": "the severity of this alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "minimum": 0,
      "maximum": 10,
      "external_name": "severity"
    },
    "startTime": {
      "type": "integer",
      "description": "time in milliseconds when this alert was generated",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "startTime"
    },
    "thresholdId": {
      "type": "integer",
      "description": "the id of the threshold that was violated to generate this alert",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "thresholdId"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "createAlert"
            ]
          }
        }
      },
      "then": {
        "required": [
          "message",
          "origin"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "createAlert"
            ]
          }
        }
      },
      "then": {
        "oneOf": [
          {
            "required": [
              "deviceId"
            ]
          },
          {
            "required": [
              "objectId"
            ]
          }
        ]
      }
    },
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "updateAlert"
            ]
          }
        }
      },
      "then": {
        "required": [
          "message",
          "origin"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "updateAlert"
            ]
          }
        }
      },
      "then": {
        "oneOf": [
          {
            "required": [
              "deviceId"
            ]
          },
          {
            "required": [
              "objectId"
            ]
          }
        ]
      }
    },
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "clearAlert"
            ]
          }
        }
      },
      "then": {
        "required": [
          "message"
        ]
      }
    }
  ],
  "definitions": {}
}