{
  "$ref": "#/definitions/Component",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Component": {
      "additionalProperties": false,
      "properties": {
        "configuration": {
          "additionalProperties": false,
          "properties": {
            "addPreset": {
              "type": "boolean"
            },
            "clickToCenter": {
              "type": "boolean"
            },
            "deletePreset": {
              "type": "boolean"
            },
            "home": {
              "type": "boolean"
            },
            "joystick": {
              "type": "boolean"
            },
            "pan": {
              "type": "boolean"
            },
            "presets": {
              "type": "boolean"
            },
            "settings": {
              "type": "boolean"
            },
            "switchPreset": {
              "type": "boolean"
            },
            "tilt": {
              "type": "boolean"
            },
            "zoom": {
              "additionalProperties": false,
              "properties": {
                "in": {
                  "type": "boolean"
                },
                "out": {
                  "type": "boolean"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "current_preset": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "is_home": {
          "type": "boolean"
        },
        "is_ptz_connected": {
          "type": "boolean"
        },
        "is_ptz_panel_opened": {
          "type": "boolean"
        },
        "live_uri": {
          "type": "string"
        },
        "media_type": {
          "enum": [
            "hls",
            "webrtc",
            "auto",
            "whep",
            ""
          ],
          "type": "string"
        },
        "position": {
          "enum": [
            "top",
            "right-bottom",
            "left-bottom",
            "bottom",
            "right-top",
            "left-top"
          ],
          "type": "string"
        },
        "presets": {
          "items": {
            "$ref": "#/definitions/TPreset"
          },
          "type": "array"
        },
        "style": {
          "type": "string"
        }
      },
      "required": [
        "live_uri"
      ],
      "type": "object"
    },
    "TPreset": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "token",
        "name",
        "x",
        "y",
        "z"
      ],
      "type": "object"
    }
  }
}
