skrashevich

Untitled

Jul 6th, 2023
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 44.21 KB | None | 0 0
  1. {
  2.   "title": "FrigateConfig",
  3.   "type": "object",
  4.   "properties": {
  5.     "mqtt": {
  6.       "title": "MQTT Configuration.",
  7.       "allOf": [
  8.         {
  9.           "$ref": "#/definitions/MqttConfig"
  10.         }
  11.       ]
  12.     },
  13.     "database": {
  14.       "title": "Database configuration.",
  15.       "allOf": [
  16.         {
  17.           "$ref": "#/definitions/DatabaseConfig"
  18.         }
  19.       ]
  20.     },
  21.     "environment_vars": {
  22.       "title": "Frigate environment variables.",
  23.       "type": "object",
  24.       "additionalProperties": {
  25.         "type": "string"
  26.       }
  27.     },
  28.     "ui": {
  29.       "title": "UI configuration.",
  30.       "allOf": [
  31.         {
  32.           "$ref": "#/definitions/UIConfig"
  33.         }
  34.       ]
  35.     },
  36.     "telemetry": {
  37.       "title": "Telemetry configuration.",
  38.       "allOf": [
  39.         {
  40.           "$ref": "#/definitions/TelemetryConfig"
  41.         }
  42.       ]
  43.     },
  44.     "model": {
  45.       "title": "Detection model configuration.",
  46.       "allOf": [
  47.         {
  48.           "$ref": "#/definitions/ModelConfig"
  49.         }
  50.       ]
  51.     },
  52.     "detectors": {
  53.       "title": "Detector hardware configuration.",
  54.       "default": {
  55.         "cpu": {
  56.           "type": "cpu"
  57.         }
  58.       },
  59.       "type": "object",
  60.       "additionalProperties": {
  61.         "$ref": "#/definitions/BaseDetectorConfig"
  62.       }
  63.     },
  64.     "logger": {
  65.       "title": "Logging configuration.",
  66.       "allOf": [
  67.         {
  68.           "$ref": "#/definitions/LoggerConfig"
  69.         }
  70.       ]
  71.     },
  72.     "record": {
  73.       "title": "Global record configuration.",
  74.       "allOf": [
  75.         {
  76.           "$ref": "#/definitions/RecordConfig"
  77.         }
  78.       ]
  79.     },
  80.     "snapshots": {
  81.       "title": "Global snapshots configuration.",
  82.       "allOf": [
  83.         {
  84.           "$ref": "#/definitions/SnapshotsConfig"
  85.         }
  86.       ]
  87.     },
  88.     "rtmp": {
  89.       "title": "Global RTMP restreaming configuration.",
  90.       "allOf": [
  91.         {
  92.           "$ref": "#/definitions/RtmpConfig"
  93.         }
  94.       ]
  95.     },
  96.     "live": {
  97.       "title": "Live playback settings.",
  98.       "allOf": [
  99.         {
  100.           "$ref": "#/definitions/CameraLiveConfig"
  101.         }
  102.       ]
  103.     },
  104.     "go2rtc": {
  105.       "title": "Global restream configuration.",
  106.       "allOf": [
  107.         {
  108.           "$ref": "#/definitions/RestreamConfig"
  109.         }
  110.       ]
  111.     },
  112.     "birdseye": {
  113.       "title": "Birdseye configuration.",
  114.       "allOf": [
  115.         {
  116.           "$ref": "#/definitions/BirdseyeConfig"
  117.         }
  118.       ]
  119.     },
  120.     "ffmpeg": {
  121.       "title": "Global FFmpeg configuration.",
  122.       "allOf": [
  123.         {
  124.           "$ref": "#/definitions/FfmpegConfig"
  125.         }
  126.       ]
  127.     },
  128.     "objects": {
  129.       "title": "Global object configuration.",
  130.       "allOf": [
  131.         {
  132.           "$ref": "#/definitions/ObjectConfig"
  133.         }
  134.       ]
  135.     },
  136.     "audio": {
  137.       "title": "Global Audio events configuration.",
  138.       "allOf": [
  139.         {
  140.           "$ref": "#/definitions/AudioConfig"
  141.         }
  142.       ]
  143.     },
  144.     "motion": {
  145.       "title": "Global motion detection configuration.",
  146.       "allOf": [
  147.         {
  148.           "$ref": "#/definitions/MotionConfig"
  149.         }
  150.       ]
  151.     },
  152.     "detect": {
  153.       "title": "Global object tracking configuration.",
  154.       "allOf": [
  155.         {
  156.           "$ref": "#/definitions/DetectConfig"
  157.         }
  158.       ]
  159.     },
  160.     "cameras": {
  161.       "title": "Camera configuration.",
  162.       "type": "object",
  163.       "additionalProperties": {
  164.         "$ref": "#/definitions/CameraConfig"
  165.       }
  166.     },
  167.     "timestamp_style": {
  168.       "title": "Global timestamp style configuration.",
  169.       "allOf": [
  170.         {
  171.           "$ref": "#/definitions/TimestampStyleConfig"
  172.         }
  173.       ]
  174.     }
  175.   },
  176.   "required": [
  177.     "mqtt",
  178.     "cameras"
  179.   ],
  180.   "additionalProperties": false,
  181.   "definitions": {
  182.     "MqttConfig": {
  183.       "title": "MqttConfig",
  184.       "type": "object",
  185.       "properties": {
  186.         "enabled": {
  187.           "title": "Enable MQTT Communication.",
  188.           "default": true,
  189.           "type": "boolean"
  190.         },
  191.         "host": {
  192.           "title": "MQTT Host",
  193.           "default": "",
  194.           "type": "string"
  195.         },
  196.         "port": {
  197.           "title": "MQTT Port",
  198.           "default": 1883,
  199.           "type": "integer"
  200.         },
  201.         "topic_prefix": {
  202.           "title": "MQTT Topic Prefix",
  203.           "default": "frigate",
  204.           "type": "string"
  205.         },
  206.         "client_id": {
  207.           "title": "MQTT Client ID",
  208.           "default": "frigate",
  209.           "type": "string"
  210.         },
  211.         "stats_interval": {
  212.           "title": "MQTT Camera Stats Interval",
  213.           "default": 60,
  214.           "type": "integer"
  215.         },
  216.         "user": {
  217.           "title": "MQTT Username",
  218.           "type": "string"
  219.         },
  220.         "password": {
  221.           "title": "MQTT Password",
  222.           "type": "string"
  223.         },
  224.         "tls_ca_certs": {
  225.           "title": "MQTT TLS CA Certificates",
  226.           "type": "string"
  227.         },
  228.         "tls_client_cert": {
  229.           "title": "MQTT TLS Client Certificate",
  230.           "type": "string"
  231.         },
  232.         "tls_client_key": {
  233.           "title": "MQTT TLS Client Key",
  234.           "type": "string"
  235.         },
  236.         "tls_insecure": {
  237.           "title": "MQTT TLS Insecure",
  238.           "type": "boolean"
  239.         }
  240.       },
  241.       "additionalProperties": false
  242.     },
  243.     "DatabaseConfig": {
  244.       "title": "DatabaseConfig",
  245.       "type": "object",
  246.       "properties": {
  247.         "path": {
  248.           "title": "Database path.",
  249.           "default": "/config/frigate.db",
  250.           "type": "string"
  251.         }
  252.       },
  253.       "additionalProperties": false
  254.     },
  255.     "LiveModeEnum": {
  256.       "title": "LiveModeEnum",
  257.       "description": "An enumeration.",
  258.       "enum": [
  259.         "jsmpeg",
  260.         "mse",
  261.         "webrtc"
  262.       ],
  263.       "type": "string"
  264.     },
  265.     "TimeFormatEnum": {
  266.       "title": "TimeFormatEnum",
  267.       "description": "An enumeration.",
  268.       "enum": [
  269.         "browser",
  270.         "12hour",
  271.         "24hour"
  272.       ],
  273.       "type": "string"
  274.     },
  275.     "DateTimeStyleEnum": {
  276.       "title": "DateTimeStyleEnum",
  277.       "description": "An enumeration.",
  278.       "enum": [
  279.         "full",
  280.         "long",
  281.         "medium",
  282.         "short"
  283.       ],
  284.       "type": "string"
  285.     },
  286.     "UIConfig": {
  287.       "title": "UIConfig",
  288.       "type": "object",
  289.       "properties": {
  290.         "live_mode": {
  291.           "title": "Default Live Mode.",
  292.           "default": "mse",
  293.           "allOf": [
  294.             {
  295.               "$ref": "#/definitions/LiveModeEnum"
  296.             }
  297.           ]
  298.         },
  299.         "timezone": {
  300.           "title": "Override UI timezone.",
  301.           "type": "string"
  302.         },
  303.         "use_experimental": {
  304.           "title": "Experimental UI",
  305.           "default": false,
  306.           "type": "boolean"
  307.         },
  308.         "time_format": {
  309.           "title": "Override UI time format.",
  310.           "default": "browser",
  311.           "allOf": [
  312.             {
  313.               "$ref": "#/definitions/TimeFormatEnum"
  314.             }
  315.           ]
  316.         },
  317.         "date_style": {
  318.           "title": "Override UI dateStyle.",
  319.           "default": "short",
  320.           "allOf": [
  321.             {
  322.               "$ref": "#/definitions/DateTimeStyleEnum"
  323.             }
  324.           ]
  325.         },
  326.         "time_style": {
  327.           "title": "Override UI timeStyle.",
  328.           "default": "medium",
  329.           "allOf": [
  330.             {
  331.               "$ref": "#/definitions/DateTimeStyleEnum"
  332.             }
  333.           ]
  334.         },
  335.         "strftime_fmt": {
  336.           "title": "Override date and time format using strftime syntax.",
  337.           "type": "string"
  338.         }
  339.       },
  340.       "additionalProperties": false
  341.     },
  342.     "StatsConfig": {
  343.       "title": "StatsConfig",
  344.       "type": "object",
  345.       "properties": {
  346.         "amd_gpu_stats": {
  347.           "title": "Enable AMD GPU stats.",
  348.           "default": true,
  349.           "type": "boolean"
  350.         },
  351.         "intel_gpu_stats": {
  352.           "title": "Enable Intel GPU stats.",
  353.           "default": true,
  354.           "type": "boolean"
  355.         },
  356.         "network_bandwidth": {
  357.           "title": "Enable network bandwidth for ffmpeg processes.",
  358.           "default": false,
  359.           "type": "boolean"
  360.         }
  361.       },
  362.       "additionalProperties": false
  363.     },
  364.     "TelemetryConfig": {
  365.       "title": "TelemetryConfig",
  366.       "type": "object",
  367.       "properties": {
  368.         "network_interfaces": {
  369.           "title": "Enabled network interfaces for bandwidth calculation.",
  370.           "default": [
  371.             "eth",
  372.             "enp",
  373.             "eno",
  374.             "ens",
  375.             "wl",
  376.             "lo"
  377.           ],
  378.           "type": "array",
  379.           "items": {
  380.             "type": "string"
  381.           }
  382.         },
  383.         "stats": {
  384.           "title": "System Stats Configuration",
  385.           "allOf": [
  386.             {
  387.               "$ref": "#/definitions/StatsConfig"
  388.             }
  389.           ]
  390.         },
  391.         "version_check": {
  392.           "title": "Enable latest version check.",
  393.           "default": true,
  394.           "type": "boolean"
  395.         }
  396.       },
  397.       "additionalProperties": false
  398.     },
  399.     "InputTensorEnum": {
  400.       "title": "InputTensorEnum",
  401.       "description": "An enumeration.",
  402.       "enum": [
  403.         "nchw",
  404.         "nhwc"
  405.       ],
  406.       "type": "string"
  407.     },
  408.     "PixelFormatEnum": {
  409.       "title": "PixelFormatEnum",
  410.       "description": "An enumeration.",
  411.       "enum": [
  412.         "rgb",
  413.         "bgr",
  414.         "yuv"
  415.       ],
  416.       "type": "string"
  417.     },
  418.     "ModelTypeEnum": {
  419.       "title": "ModelTypeEnum",
  420.       "description": "An enumeration.",
  421.       "enum": [
  422.         "ssd",
  423.         "yolox",
  424.         "yolov5",
  425.         "yolov8"
  426.       ],
  427.       "type": "string"
  428.     },
  429.     "ModelConfig": {
  430.       "title": "ModelConfig",
  431.       "type": "object",
  432.       "properties": {
  433.         "path": {
  434.           "title": "Custom Object detection model path.",
  435.           "type": "string"
  436.         },
  437.         "labelmap_path": {
  438.           "title": "Label map for custom object detector.",
  439.           "type": "string"
  440.         },
  441.         "width": {
  442.           "title": "Object detection model input width.",
  443.           "default": 320,
  444.           "type": "integer"
  445.         },
  446.         "height": {
  447.           "title": "Object detection model input height.",
  448.           "default": 320,
  449.           "type": "integer"
  450.         },
  451.         "labelmap": {
  452.           "title": "Labelmap customization.",
  453.           "type": "object",
  454.           "additionalProperties": {
  455.             "type": "string"
  456.           }
  457.         },
  458.         "input_tensor": {
  459.           "title": "Model Input Tensor Shape",
  460.           "default": "nhwc",
  461.           "allOf": [
  462.             {
  463.               "$ref": "#/definitions/InputTensorEnum"
  464.             }
  465.           ]
  466.         },
  467.         "input_pixel_format": {
  468.           "title": "Model Input Pixel Color Format",
  469.           "default": "rgb",
  470.           "allOf": [
  471.             {
  472.               "$ref": "#/definitions/PixelFormatEnum"
  473.             }
  474.           ]
  475.         },
  476.         "model_type": {
  477.           "title": "Object Detection Model Type",
  478.           "default": "ssd",
  479.           "allOf": [
  480.             {
  481.               "$ref": "#/definitions/ModelTypeEnum"
  482.             }
  483.           ]
  484.         }
  485.       },
  486.       "additionalProperties": false
  487.     },
  488.     "BaseDetectorConfig": {
  489.       "title": "BaseDetectorConfig",
  490.       "type": "object",
  491.       "properties": {
  492.         "type": {
  493.           "title": "Detector Type",
  494.           "default": "cpu",
  495.           "type": "string"
  496.         },
  497.         "model": {
  498.           "title": "Detector specific model configuration.",
  499.           "allOf": [
  500.             {
  501.               "$ref": "#/definitions/ModelConfig"
  502.             }
  503.           ]
  504.         }
  505.       }
  506.     },
  507.     "LogLevelEnum": {
  508.       "title": "LogLevelEnum",
  509.       "description": "An enumeration.",
  510.       "enum": [
  511.         "debug",
  512.         "info",
  513.         "warning",
  514.         "error",
  515.         "critical"
  516.       ],
  517.       "type": "string"
  518.     },
  519.     "LoggerConfig": {
  520.       "title": "LoggerConfig",
  521.       "type": "object",
  522.       "properties": {
  523.         "default": {
  524.           "title": "Default logging level.",
  525.           "default": "info",
  526.           "allOf": [
  527.             {
  528.               "$ref": "#/definitions/LogLevelEnum"
  529.             }
  530.           ]
  531.         },
  532.         "logs": {
  533.           "title": "Log level for specified processes.",
  534.           "type": "object",
  535.           "additionalProperties": {
  536.             "$ref": "#/definitions/LogLevelEnum"
  537.           }
  538.         }
  539.       },
  540.       "additionalProperties": false
  541.     },
  542.     "RetainModeEnum": {
  543.       "title": "RetainModeEnum",
  544.       "description": "An enumeration.",
  545.       "enum": [
  546.         "all",
  547.         "motion",
  548.         "active_objects"
  549.       ],
  550.       "type": "string"
  551.     },
  552.     "RecordRetainConfig": {
  553.       "title": "RecordRetainConfig",
  554.       "type": "object",
  555.       "properties": {
  556.         "days": {
  557.           "title": "Default retention period.",
  558.           "default": 0,
  559.           "type": "number"
  560.         },
  561.         "mode": {
  562.           "title": "Retain mode.",
  563.           "default": "all",
  564.           "allOf": [
  565.             {
  566.               "$ref": "#/definitions/RetainModeEnum"
  567.             }
  568.           ]
  569.         }
  570.       },
  571.       "additionalProperties": false
  572.     },
  573.     "RetainConfig": {
  574.       "title": "RetainConfig",
  575.       "type": "object",
  576.       "properties": {
  577.         "default": {
  578.           "title": "Default retention period.",
  579.           "default": 10,
  580.           "type": "number"
  581.         },
  582.         "mode": {
  583.           "title": "Retain mode.",
  584.           "default": "motion",
  585.           "allOf": [
  586.             {
  587.               "$ref": "#/definitions/RetainModeEnum"
  588.             }
  589.           ]
  590.         },
  591.         "objects": {
  592.           "title": "Object retention period.",
  593.           "type": "object",
  594.           "additionalProperties": {
  595.             "type": "number"
  596.           }
  597.         }
  598.       },
  599.       "additionalProperties": false
  600.     },
  601.     "EventsConfig": {
  602.       "title": "EventsConfig",
  603.       "type": "object",
  604.       "properties": {
  605.         "pre_capture": {
  606.           "title": "Seconds to retain before event starts.",
  607.           "default": 5,
  608.           "type": "integer"
  609.         },
  610.         "post_capture": {
  611.           "title": "Seconds to retain after event ends.",
  612.           "default": 5,
  613.           "type": "integer"
  614.         },
  615.         "required_zones": {
  616.           "title": "List of required zones to be entered in order to save the event.",
  617.           "type": "array",
  618.           "items": {
  619.             "type": "string"
  620.           }
  621.         },
  622.         "objects": {
  623.           "title": "List of objects to be detected in order to save the event.",
  624.           "type": "array",
  625.           "items": {
  626.             "type": "string"
  627.           }
  628.         },
  629.         "retain": {
  630.           "title": "Event retention settings.",
  631.           "allOf": [
  632.             {
  633.               "$ref": "#/definitions/RetainConfig"
  634.             }
  635.           ]
  636.         }
  637.       },
  638.       "additionalProperties": false
  639.     },
  640.     "RecordConfig": {
  641.       "title": "RecordConfig",
  642.       "type": "object",
  643.       "properties": {
  644.         "enabled": {
  645.           "title": "Enable record on all cameras.",
  646.           "default": false,
  647.           "type": "boolean"
  648.         },
  649.         "expire_interval": {
  650.           "title": "Number of minutes to wait between cleanup runs.",
  651.           "default": 60,
  652.           "type": "integer"
  653.         },
  654.         "retain": {
  655.           "title": "Record retention settings.",
  656.           "allOf": [
  657.             {
  658.               "$ref": "#/definitions/RecordRetainConfig"
  659.             }
  660.           ]
  661.         },
  662.         "events": {
  663.           "title": "Event specific settings.",
  664.           "allOf": [
  665.             {
  666.               "$ref": "#/definitions/EventsConfig"
  667.             }
  668.           ]
  669.         },
  670.         "enabled_in_config": {
  671.           "title": "Keep track of original state of recording.",
  672.           "type": "boolean"
  673.         }
  674.       },
  675.       "additionalProperties": false
  676.     },
  677.     "SnapshotsConfig": {
  678.       "title": "SnapshotsConfig",
  679.       "type": "object",
  680.       "properties": {
  681.         "enabled": {
  682.           "title": "Snapshots enabled.",
  683.           "default": false,
  684.           "type": "boolean"
  685.         },
  686.         "clean_copy": {
  687.           "title": "Create a clean copy of the snapshot image.",
  688.           "default": true,
  689.           "type": "boolean"
  690.         },
  691.         "timestamp": {
  692.           "title": "Add a timestamp overlay on the snapshot.",
  693.           "default": false,
  694.           "type": "boolean"
  695.         },
  696.         "bounding_box": {
  697.           "title": "Add a bounding box overlay on the snapshot.",
  698.           "default": true,
  699.           "type": "boolean"
  700.         },
  701.         "crop": {
  702.           "title": "Crop the snapshot to the detected object.",
  703.           "default": false,
  704.           "type": "boolean"
  705.         },
  706.         "required_zones": {
  707.           "title": "List of required zones to be entered in order to save a snapshot.",
  708.           "type": "array",
  709.           "items": {
  710.             "type": "string"
  711.           }
  712.         },
  713.         "height": {
  714.           "title": "Snapshot image height.",
  715.           "type": "integer"
  716.         },
  717.         "retain": {
  718.           "title": "Snapshot retention.",
  719.           "allOf": [
  720.             {
  721.               "$ref": "#/definitions/RetainConfig"
  722.             }
  723.           ]
  724.         },
  725.         "quality": {
  726.           "title": "Quality of the encoded jpeg (0-100).",
  727.           "default": 70,
  728.           "minimum": 0,
  729.           "maximum": 100,
  730.           "type": "integer"
  731.         }
  732.       },
  733.       "additionalProperties": false
  734.     },
  735.     "RtmpConfig": {
  736.       "title": "RtmpConfig",
  737.       "type": "object",
  738.       "properties": {
  739.         "enabled": {
  740.           "title": "RTMP restreaming enabled.",
  741.           "default": false,
  742.           "type": "boolean"
  743.         }
  744.       },
  745.       "additionalProperties": false
  746.     },
  747.     "CameraLiveConfig": {
  748.       "title": "CameraLiveConfig",
  749.       "type": "object",
  750.       "properties": {
  751.         "stream_name": {
  752.           "title": "Name of restream to use as live view.",
  753.           "default": "",
  754.           "type": "string"
  755.         },
  756.         "height": {
  757.           "title": "Live camera view height",
  758.           "default": 720,
  759.           "type": "integer"
  760.         },
  761.         "quality": {
  762.           "title": "Live camera view quality",
  763.           "default": 8,
  764.           "minimum": 1,
  765.           "maximum": 31,
  766.           "type": "integer"
  767.         }
  768.       },
  769.       "additionalProperties": false
  770.     },
  771.     "RestreamConfig": {
  772.       "title": "RestreamConfig",
  773.       "type": "object",
  774.       "properties": {}
  775.     },
  776.     "BirdseyeModeEnum": {
  777.       "title": "BirdseyeModeEnum",
  778.       "description": "An enumeration.",
  779.       "enum": [
  780.         "objects",
  781.         "motion",
  782.         "continuous"
  783.       ],
  784.       "type": "string"
  785.     },
  786.     "BirdseyeConfig": {
  787.       "title": "BirdseyeConfig",
  788.       "type": "object",
  789.       "properties": {
  790.         "enabled": {
  791.           "title": "Enable birdseye view.",
  792.           "default": true,
  793.           "type": "boolean"
  794.         },
  795.         "restream": {
  796.           "title": "Restream birdseye via RTSP.",
  797.           "default": false,
  798.           "type": "boolean"
  799.         },
  800.         "width": {
  801.           "title": "Birdseye width.",
  802.           "default": 1280,
  803.           "type": "integer"
  804.         },
  805.         "height": {
  806.           "title": "Birdseye height.",
  807.           "default": 720,
  808.           "type": "integer"
  809.         },
  810.         "quality": {
  811.           "title": "Encoding quality.",
  812.           "default": 8,
  813.           "minimum": 1,
  814.           "maximum": 31,
  815.           "type": "integer"
  816.         },
  817.         "mode": {
  818.           "title": "Tracking mode.",
  819.           "default": "objects",
  820.           "allOf": [
  821.             {
  822.               "$ref": "#/definitions/BirdseyeModeEnum"
  823.             }
  824.           ]
  825.         }
  826.       },
  827.       "additionalProperties": false
  828.     },
  829.     "FfmpegOutputArgsConfig": {
  830.       "title": "FfmpegOutputArgsConfig",
  831.       "type": "object",
  832.       "properties": {
  833.         "detect": {
  834.           "title": "Detect role FFmpeg output arguments.",
  835.           "default": [
  836.             "-threads",
  837.             "2",
  838.             "-f",
  839.             "rawvideo",
  840.             "-pix_fmt",
  841.             "yuv420p"
  842.           ],
  843.           "anyOf": [
  844.             {
  845.               "type": "string"
  846.             },
  847.             {
  848.               "type": "array",
  849.               "items": {
  850.                 "type": "string"
  851.               }
  852.             }
  853.           ]
  854.         },
  855.         "record": {
  856.           "title": "Record role FFmpeg output arguments.",
  857.           "default": "preset-record-generic",
  858.           "anyOf": [
  859.             {
  860.               "type": "string"
  861.             },
  862.             {
  863.               "type": "array",
  864.               "items": {
  865.                 "type": "string"
  866.               }
  867.             }
  868.           ]
  869.         },
  870.         "rtmp": {
  871.           "title": "RTMP role FFmpeg output arguments.",
  872.           "default": "preset-rtmp-generic",
  873.           "anyOf": [
  874.             {
  875.               "type": "string"
  876.             },
  877.             {
  878.               "type": "array",
  879.               "items": {
  880.                 "type": "string"
  881.               }
  882.             }
  883.           ]
  884.         }
  885.       },
  886.       "additionalProperties": false
  887.     },
  888.     "FfmpegConfig": {
  889.       "title": "FfmpegConfig",
  890.       "type": "object",
  891.       "properties": {
  892.         "global_args": {
  893.           "title": "Global FFmpeg arguments.",
  894.           "default": [
  895.             "-hide_banner",
  896.             "-loglevel",
  897.             "warning",
  898.             "-threads",
  899.             "2"
  900.           ],
  901.           "anyOf": [
  902.             {
  903.               "type": "string"
  904.             },
  905.             {
  906.               "type": "array",
  907.               "items": {
  908.                 "type": "string"
  909.               }
  910.             }
  911.           ]
  912.         },
  913.         "hwaccel_args": {
  914.           "title": "FFmpeg hardware acceleration arguments.",
  915.           "anyOf": [
  916.             {
  917.               "type": "string"
  918.             },
  919.             {
  920.               "type": "array",
  921.               "items": {
  922.                 "type": "string"
  923.               }
  924.             }
  925.           ]
  926.         },
  927.         "input_args": {
  928.           "title": "FFmpeg input arguments.",
  929.           "default": "preset-rtsp-generic",
  930.           "anyOf": [
  931.             {
  932.               "type": "string"
  933.             },
  934.             {
  935.               "type": "array",
  936.               "items": {
  937.                 "type": "string"
  938.               }
  939.             }
  940.           ]
  941.         },
  942.         "output_args": {
  943.           "title": "FFmpeg output arguments per role.",
  944.           "allOf": [
  945.             {
  946.               "$ref": "#/definitions/FfmpegOutputArgsConfig"
  947.             }
  948.           ]
  949.         },
  950.         "retry_interval": {
  951.           "title": "Time in seconds to wait before FFmpeg retries connecting to the camera.",
  952.           "default": 10,
  953.           "type": "number"
  954.         }
  955.       },
  956.       "additionalProperties": false
  957.     },
  958.     "FilterConfig": {
  959.       "title": "FilterConfig",
  960.       "type": "object",
  961.       "properties": {
  962.         "min_area": {
  963.           "title": "Minimum area of bounding box for object to be counted.",
  964.           "default": 0,
  965.           "type": "integer"
  966.         },
  967.         "max_area": {
  968.           "title": "Maximum area of bounding box for object to be counted.",
  969.           "default": 24000000,
  970.           "type": "integer"
  971.         },
  972.         "min_ratio": {
  973.           "title": "Minimum ratio of bounding box's width/height for object to be counted.",
  974.           "default": 0,
  975.           "type": "number"
  976.         },
  977.         "max_ratio": {
  978.           "title": "Maximum ratio of bounding box's width/height for object to be counted.",
  979.           "default": 24000000,
  980.           "type": "number"
  981.         },
  982.         "threshold": {
  983.           "title": "Average detection confidence threshold for object to be counted.",
  984.           "default": 0.7,
  985.           "type": "number"
  986.         },
  987.         "min_score": {
  988.           "title": "Minimum detection confidence for object to be counted.",
  989.           "default": 0.5,
  990.           "type": "number"
  991.         },
  992.         "mask": {
  993.           "title": "Detection area polygon mask for this filter configuration.",
  994.           "anyOf": [
  995.             {
  996.               "type": "string"
  997.             },
  998.             {
  999.               "type": "array",
  1000.               "items": {
  1001.                 "type": "string"
  1002.               }
  1003.             }
  1004.           ]
  1005.         }
  1006.       },
  1007.       "additionalProperties": false
  1008.     },
  1009.     "ObjectConfig": {
  1010.       "title": "ObjectConfig",
  1011.       "type": "object",
  1012.       "properties": {
  1013.         "track": {
  1014.           "title": "Objects to track.",
  1015.           "default": [
  1016.             "person"
  1017.           ],
  1018.           "type": "array",
  1019.           "items": {
  1020.             "type": "string"
  1021.           }
  1022.         },
  1023.         "filters": {
  1024.           "title": "Object filters.",
  1025.           "type": "object",
  1026.           "additionalProperties": {
  1027.             "$ref": "#/definitions/FilterConfig"
  1028.           }
  1029.         },
  1030.         "mask": {
  1031.           "title": "Object mask.",
  1032.           "default": "",
  1033.           "anyOf": [
  1034.             {
  1035.               "type": "string"
  1036.             },
  1037.             {
  1038.               "type": "array",
  1039.               "items": {
  1040.                 "type": "string"
  1041.               }
  1042.             }
  1043.           ]
  1044.         }
  1045.       },
  1046.       "additionalProperties": false
  1047.     },
  1048.     "AudioConfig": {
  1049.       "title": "AudioConfig",
  1050.       "type": "object",
  1051.       "properties": {
  1052.         "enabled": {
  1053.           "title": "Enable audio events.",
  1054.           "default": false,
  1055.           "type": "boolean"
  1056.         },
  1057.         "max_not_heard": {
  1058.           "title": "Seconds of not hearing the type of audio to end the event.",
  1059.           "default": 30,
  1060.           "type": "integer"
  1061.         },
  1062.         "listen": {
  1063.           "title": "Audio to listen for.",
  1064.           "default": [
  1065.             "bark",
  1066.             "speech",
  1067.             "yell",
  1068.             "scream"
  1069.           ],
  1070.           "type": "array",
  1071.           "items": {
  1072.             "type": "string"
  1073.           }
  1074.         },
  1075.         "enabled_in_config": {
  1076.           "title": "Keep track of original state of audio detection.",
  1077.           "type": "boolean"
  1078.         }
  1079.       },
  1080.       "additionalProperties": false
  1081.     },
  1082.     "MotionConfig": {
  1083.       "title": "MotionConfig",
  1084.       "type": "object",
  1085.       "properties": {
  1086.         "threshold": {
  1087.           "title": "Motion detection threshold (1-255).",
  1088.           "default": 30,
  1089.           "minimum": 1,
  1090.           "maximum": 255,
  1091.           "type": "integer"
  1092.         },
  1093.         "lightning_threshold": {
  1094.           "title": "Lightning detection threshold (0.3-1.0).",
  1095.           "default": 0.8,
  1096.           "minimum": 0.3,
  1097.           "maximum": 1,
  1098.           "type": "number"
  1099.         },
  1100.         "improve_contrast": {
  1101.           "title": "Improve Contrast",
  1102.           "default": true,
  1103.           "type": "boolean"
  1104.         },
  1105.         "contour_area": {
  1106.           "title": "Contour Area",
  1107.           "default": 10,
  1108.           "type": "integer"
  1109.         },
  1110.         "delta_alpha": {
  1111.           "title": "Delta Alpha",
  1112.           "default": 0.2,
  1113.           "type": "number"
  1114.         },
  1115.         "frame_alpha": {
  1116.           "title": "Frame Alpha",
  1117.           "default": 0.01,
  1118.           "type": "number"
  1119.         },
  1120.         "frame_height": {
  1121.           "title": "Frame Height",
  1122.           "default": 100,
  1123.           "type": "integer"
  1124.         },
  1125.         "mask": {
  1126.           "title": "Coordinates polygon for the motion mask.",
  1127.           "default": "",
  1128.           "anyOf": [
  1129.             {
  1130.               "type": "string"
  1131.             },
  1132.             {
  1133.               "type": "array",
  1134.               "items": {
  1135.                 "type": "string"
  1136.               }
  1137.             }
  1138.           ]
  1139.         },
  1140.         "mqtt_off_delay": {
  1141.           "title": "Delay for updating MQTT with no motion detected.",
  1142.           "default": 30,
  1143.           "type": "integer"
  1144.         }
  1145.       },
  1146.       "additionalProperties": false
  1147.     },
  1148.     "StationaryMaxFramesConfig": {
  1149.       "title": "StationaryMaxFramesConfig",
  1150.       "type": "object",
  1151.       "properties": {
  1152.         "default": {
  1153.           "title": "Default max frames.",
  1154.           "minimum": 1,
  1155.           "type": "integer"
  1156.         },
  1157.         "objects": {
  1158.           "title": "Object specific max frames.",
  1159.           "type": "object",
  1160.           "additionalProperties": {
  1161.             "type": "integer"
  1162.           }
  1163.         }
  1164.       },
  1165.       "additionalProperties": false
  1166.     },
  1167.     "StationaryConfig": {
  1168.       "title": "StationaryConfig",
  1169.       "type": "object",
  1170.       "properties": {
  1171.         "interval": {
  1172.           "title": "Frame interval for checking stationary objects.",
  1173.           "exclusiveMinimum": 0,
  1174.           "type": "integer"
  1175.         },
  1176.         "threshold": {
  1177.           "title": "Number of frames without a position change for an object to be considered stationary",
  1178.           "minimum": 1,
  1179.           "type": "integer"
  1180.         },
  1181.         "max_frames": {
  1182.           "title": "Max frames for stationary objects.",
  1183.           "allOf": [
  1184.             {
  1185.               "$ref": "#/definitions/StationaryMaxFramesConfig"
  1186.             }
  1187.           ]
  1188.         }
  1189.       },
  1190.       "additionalProperties": false
  1191.     },
  1192.     "DetectConfig": {
  1193.       "title": "DetectConfig",
  1194.       "type": "object",
  1195.       "properties": {
  1196.         "height": {
  1197.           "title": "Height of the stream for the detect role.",
  1198.           "default": 720,
  1199.           "type": "integer"
  1200.         },
  1201.         "width": {
  1202.           "title": "Width of the stream for the detect role.",
  1203.           "default": 1280,
  1204.           "type": "integer"
  1205.         },
  1206.         "fps": {
  1207.           "title": "Number of frames per second to process through detection.",
  1208.           "default": 5,
  1209.           "type": "integer"
  1210.         },
  1211.         "enabled": {
  1212.           "title": "Detection Enabled.",
  1213.           "default": true,
  1214.           "type": "boolean"
  1215.         },
  1216.         "max_disappeared": {
  1217.           "title": "Maximum number of frames the object can dissapear before detection ends.",
  1218.           "type": "integer"
  1219.         },
  1220.         "stationary": {
  1221.           "title": "Stationary objects config.",
  1222.           "allOf": [
  1223.             {
  1224.               "$ref": "#/definitions/StationaryConfig"
  1225.             }
  1226.           ]
  1227.         },
  1228.         "annotation_offset": {
  1229.           "title": "Milliseconds to offset detect annotations by.",
  1230.           "default": 0,
  1231.           "type": "integer"
  1232.         }
  1233.       },
  1234.       "additionalProperties": false
  1235.     },
  1236.     "CameraRoleEnum": {
  1237.       "title": "CameraRoleEnum",
  1238.       "description": "An enumeration.",
  1239.       "enum": [
  1240.         "audio",
  1241.         "record",
  1242.         "rtmp",
  1243.         "detect"
  1244.       ],
  1245.       "type": "string"
  1246.     },
  1247.     "CameraInput": {
  1248.       "title": "CameraInput",
  1249.       "type": "object",
  1250.       "properties": {
  1251.         "path": {
  1252.           "title": "Camera input path.",
  1253.           "type": "string"
  1254.         },
  1255.         "roles": {
  1256.           "title": "Roles assigned to this input.",
  1257.           "type": "array",
  1258.           "items": {
  1259.             "$ref": "#/definitions/CameraRoleEnum"
  1260.           }
  1261.         },
  1262.         "global_args": {
  1263.           "title": "FFmpeg global arguments.",
  1264.           "anyOf": [
  1265.             {
  1266.               "type": "string"
  1267.             },
  1268.             {
  1269.               "type": "array",
  1270.               "items": {
  1271.                 "type": "string"
  1272.               }
  1273.             }
  1274.           ]
  1275.         },
  1276.         "hwaccel_args": {
  1277.           "title": "FFmpeg hardware acceleration arguments.",
  1278.           "anyOf": [
  1279.             {
  1280.               "type": "string"
  1281.             },
  1282.             {
  1283.               "type": "array",
  1284.               "items": {
  1285.                 "type": "string"
  1286.               }
  1287.             }
  1288.           ]
  1289.         },
  1290.         "input_args": {
  1291.           "title": "FFmpeg input arguments.",
  1292.           "anyOf": [
  1293.             {
  1294.               "type": "string"
  1295.             },
  1296.             {
  1297.               "type": "array",
  1298.               "items": {
  1299.                 "type": "string"
  1300.               }
  1301.             }
  1302.           ]
  1303.         }
  1304.       },
  1305.       "required": [
  1306.         "path",
  1307.         "roles"
  1308.       ],
  1309.       "additionalProperties": false
  1310.     },
  1311.     "CameraFfmpegConfig": {
  1312.       "title": "CameraFfmpegConfig",
  1313.       "type": "object",
  1314.       "properties": {
  1315.         "global_args": {
  1316.           "title": "Global FFmpeg arguments.",
  1317.           "default": [
  1318.             "-hide_banner",
  1319.             "-loglevel",
  1320.             "warning",
  1321.             "-threads",
  1322.             "2"
  1323.           ],
  1324.           "anyOf": [
  1325.             {
  1326.               "type": "string"
  1327.             },
  1328.             {
  1329.               "type": "array",
  1330.               "items": {
  1331.                 "type": "string"
  1332.               }
  1333.             }
  1334.           ]
  1335.         },
  1336.         "hwaccel_args": {
  1337.           "title": "FFmpeg hardware acceleration arguments.",
  1338.           "anyOf": [
  1339.             {
  1340.               "type": "string"
  1341.             },
  1342.             {
  1343.               "type": "array",
  1344.               "items": {
  1345.                 "type": "string"
  1346.               }
  1347.             }
  1348.           ]
  1349.         },
  1350.         "input_args": {
  1351.           "title": "FFmpeg input arguments.",
  1352.           "default": "preset-rtsp-generic",
  1353.           "anyOf": [
  1354.             {
  1355.               "type": "string"
  1356.             },
  1357.             {
  1358.               "type": "array",
  1359.               "items": {
  1360.                 "type": "string"
  1361.               }
  1362.             }
  1363.           ]
  1364.         },
  1365.         "output_args": {
  1366.           "title": "FFmpeg output arguments per role.",
  1367.           "allOf": [
  1368.             {
  1369.               "$ref": "#/definitions/FfmpegOutputArgsConfig"
  1370.             }
  1371.           ]
  1372.         },
  1373.         "retry_interval": {
  1374.           "title": "Time in seconds to wait before FFmpeg retries connecting to the camera.",
  1375.           "default": 10,
  1376.           "type": "number"
  1377.         },
  1378.         "inputs": {
  1379.           "title": "Camera inputs.",
  1380.           "type": "array",
  1381.           "items": {
  1382.             "$ref": "#/definitions/CameraInput"
  1383.           }
  1384.         }
  1385.       },
  1386.       "required": [
  1387.         "inputs"
  1388.       ],
  1389.       "additionalProperties": false
  1390.     },
  1391.     "ZoneConfig": {
  1392.       "title": "ZoneConfig",
  1393.       "type": "object",
  1394.       "properties": {
  1395.         "filters": {
  1396.           "title": "Zone filters.",
  1397.           "type": "object",
  1398.           "additionalProperties": {
  1399.             "$ref": "#/definitions/FilterConfig"
  1400.           }
  1401.         },
  1402.         "coordinates": {
  1403.           "title": "Coordinates polygon for the defined zone.",
  1404.           "anyOf": [
  1405.             {
  1406.               "type": "string"
  1407.             },
  1408.             {
  1409.               "type": "array",
  1410.               "items": {
  1411.                 "type": "string"
  1412.               }
  1413.             }
  1414.           ]
  1415.         },
  1416.         "inertia": {
  1417.           "title": "Number of consecutive frames required for object to be considered present in the zone.",
  1418.           "default": 3,
  1419.           "exclusiveMinimum": 0,
  1420.           "maximum": 10,
  1421.           "type": "integer"
  1422.         },
  1423.         "objects": {
  1424.           "title": "List of objects that can trigger the zone.",
  1425.           "type": "array",
  1426.           "items": {
  1427.             "type": "string"
  1428.           }
  1429.         }
  1430.       },
  1431.       "required": [
  1432.         "coordinates"
  1433.       ]
  1434.     },
  1435.     "CameraMqttConfig": {
  1436.       "title": "CameraMqttConfig",
  1437.       "type": "object",
  1438.       "properties": {
  1439.         "enabled": {
  1440.           "title": "Send image over MQTT.",
  1441.           "default": true,
  1442.           "type": "boolean"
  1443.         },
  1444.         "timestamp": {
  1445.           "title": "Add timestamp to MQTT image.",
  1446.           "default": true,
  1447.           "type": "boolean"
  1448.         },
  1449.         "bounding_box": {
  1450.           "title": "Add bounding box to MQTT image.",
  1451.           "default": true,
  1452.           "type": "boolean"
  1453.         },
  1454.         "crop": {
  1455.           "title": "Crop MQTT image to detected object.",
  1456.           "default": true,
  1457.           "type": "boolean"
  1458.         },
  1459.         "height": {
  1460.           "title": "MQTT image height.",
  1461.           "default": 270,
  1462.           "type": "integer"
  1463.         },
  1464.         "required_zones": {
  1465.           "title": "List of required zones to be entered in order to send the image.",
  1466.           "type": "array",
  1467.           "items": {
  1468.             "type": "string"
  1469.           }
  1470.         },
  1471.         "quality": {
  1472.           "title": "Quality of the encoded jpeg (0-100).",
  1473.           "default": 70,
  1474.           "minimum": 0,
  1475.           "maximum": 100,
  1476.           "type": "integer"
  1477.         }
  1478.       },
  1479.       "additionalProperties": false
  1480.     },
  1481.     "OnvifConfig": {
  1482.       "title": "OnvifConfig",
  1483.       "type": "object",
  1484.       "properties": {
  1485.         "host": {
  1486.           "title": "Onvif Host",
  1487.           "default": "",
  1488.           "type": "string"
  1489.         },
  1490.         "port": {
  1491.           "title": "Onvif Port",
  1492.           "default": 8000,
  1493.           "type": "integer"
  1494.         },
  1495.         "user": {
  1496.           "title": "Onvif Username",
  1497.           "type": "string"
  1498.         },
  1499.         "password": {
  1500.           "title": "Onvif Password",
  1501.           "type": "string"
  1502.         }
  1503.       },
  1504.       "additionalProperties": false
  1505.     },
  1506.     "CameraUiConfig": {
  1507.       "title": "CameraUiConfig",
  1508.       "type": "object",
  1509.       "properties": {
  1510.         "order": {
  1511.           "title": "Order of camera in UI.",
  1512.           "default": 0,
  1513.           "type": "integer"
  1514.         },
  1515.         "dashboard": {
  1516.           "title": "Show this camera in Frigate dashboard UI.",
  1517.           "default": true,
  1518.           "type": "boolean"
  1519.         }
  1520.       },
  1521.       "additionalProperties": false
  1522.     },
  1523.     "BirdseyeCameraConfig": {
  1524.       "title": "BirdseyeCameraConfig",
  1525.       "type": "object",
  1526.       "properties": {
  1527.         "enabled": {
  1528.           "title": "Enable birdseye view for camera.",
  1529.           "default": true,
  1530.           "type": "boolean"
  1531.         },
  1532.         "order": {
  1533.           "title": "Position of the camera in the birdseye view.",
  1534.           "default": 0,
  1535.           "type": "integer"
  1536.         },
  1537.         "mode": {
  1538.           "title": "Tracking mode for camera.",
  1539.           "default": "objects",
  1540.           "allOf": [
  1541.             {
  1542.               "$ref": "#/definitions/BirdseyeModeEnum"
  1543.             }
  1544.           ]
  1545.         }
  1546.       }
  1547.     },
  1548.     "TimestampPositionEnum": {
  1549.       "title": "TimestampPositionEnum",
  1550.       "description": "An enumeration.",
  1551.       "enum": [
  1552.         "tl",
  1553.         "tr",
  1554.         "bl",
  1555.         "br"
  1556.       ],
  1557.       "type": "string"
  1558.     },
  1559.     "ColorConfig": {
  1560.       "title": "ColorConfig",
  1561.       "type": "object",
  1562.       "properties": {
  1563.         "red": {
  1564.           "title": "Red",
  1565.           "default": 255,
  1566.           "minimum": 0,
  1567.           "maximum": 255,
  1568.           "type": "integer"
  1569.         },
  1570.         "green": {
  1571.           "title": "Green",
  1572.           "default": 255,
  1573.           "minimum": 0,
  1574.           "maximum": 255,
  1575.           "type": "integer"
  1576.         },
  1577.         "blue": {
  1578.           "title": "Blue",
  1579.           "default": 255,
  1580.           "minimum": 0,
  1581.           "maximum": 255,
  1582.           "type": "integer"
  1583.         }
  1584.       },
  1585.       "additionalProperties": false
  1586.     },
  1587.     "TimestampEffectEnum": {
  1588.       "title": "TimestampEffectEnum",
  1589.       "description": "An enumeration.",
  1590.       "enum": [
  1591.         "solid",
  1592.         "shadow"
  1593.       ],
  1594.       "type": "string"
  1595.     },
  1596.     "TimestampStyleConfig": {
  1597.       "title": "TimestampStyleConfig",
  1598.       "type": "object",
  1599.       "properties": {
  1600.         "position": {
  1601.           "title": "Timestamp position.",
  1602.           "default": "tl",
  1603.           "allOf": [
  1604.             {
  1605.               "$ref": "#/definitions/TimestampPositionEnum"
  1606.             }
  1607.           ]
  1608.         },
  1609.         "format": {
  1610.           "title": "Timestamp format.",
  1611.           "default": "%m/%d/%Y %H:%M:%S",
  1612.           "type": "string"
  1613.         },
  1614.         "color": {
  1615.           "title": "Timestamp color.",
  1616.           "allOf": [
  1617.             {
  1618.               "$ref": "#/definitions/ColorConfig"
  1619.             }
  1620.           ]
  1621.         },
  1622.         "thickness": {
  1623.           "title": "Timestamp thickness.",
  1624.           "default": 2,
  1625.           "type": "integer"
  1626.         },
  1627.         "effect": {
  1628.           "title": "Timestamp effect.",
  1629.           "allOf": [
  1630.             {
  1631.               "$ref": "#/definitions/TimestampEffectEnum"
  1632.             }
  1633.           ]
  1634.         }
  1635.       },
  1636.       "additionalProperties": false
  1637.     },
  1638.     "CameraConfig": {
  1639.       "title": "CameraConfig",
  1640.       "type": "object",
  1641.       "properties": {
  1642.         "name": {
  1643.           "title": "Camera name.",
  1644.           "pattern": "^[a-zA-Z0-9_-]+$",
  1645.           "type": "string"
  1646.         },
  1647.         "enabled": {
  1648.           "title": "Enable camera.",
  1649.           "default": true,
  1650.           "type": "boolean"
  1651.         },
  1652.         "ffmpeg": {
  1653.           "title": "FFmpeg configuration for the camera.",
  1654.           "allOf": [
  1655.             {
  1656.               "$ref": "#/definitions/CameraFfmpegConfig"
  1657.             }
  1658.           ]
  1659.         },
  1660.         "best_image_timeout": {
  1661.           "title": "How long to wait for the image with the highest confidence score.",
  1662.           "default": 60,
  1663.           "type": "integer"
  1664.         },
  1665.         "zones": {
  1666.           "title": "Zone configuration.",
  1667.           "type": "object",
  1668.           "additionalProperties": {
  1669.             "$ref": "#/definitions/ZoneConfig"
  1670.           }
  1671.         },
  1672.         "record": {
  1673.           "title": "Record configuration.",
  1674.           "allOf": [
  1675.             {
  1676.               "$ref": "#/definitions/RecordConfig"
  1677.             }
  1678.           ]
  1679.         },
  1680.         "rtmp": {
  1681.           "title": "RTMP restreaming configuration.",
  1682.           "allOf": [
  1683.             {
  1684.               "$ref": "#/definitions/RtmpConfig"
  1685.             }
  1686.           ]
  1687.         },
  1688.         "live": {
  1689.           "title": "Live playback settings.",
  1690.           "allOf": [
  1691.             {
  1692.               "$ref": "#/definitions/CameraLiveConfig"
  1693.             }
  1694.           ]
  1695.         },
  1696.         "snapshots": {
  1697.           "title": "Snapshot configuration.",
  1698.           "allOf": [
  1699.             {
  1700.               "$ref": "#/definitions/SnapshotsConfig"
  1701.             }
  1702.           ]
  1703.         },
  1704.         "mqtt": {
  1705.           "title": "MQTT configuration.",
  1706.           "allOf": [
  1707.             {
  1708.               "$ref": "#/definitions/CameraMqttConfig"
  1709.             }
  1710.           ]
  1711.         },
  1712.         "objects": {
  1713.           "title": "Object configuration.",
  1714.           "allOf": [
  1715.             {
  1716.               "$ref": "#/definitions/ObjectConfig"
  1717.             }
  1718.           ]
  1719.         },
  1720.         "audio": {
  1721.           "title": "Audio events configuration.",
  1722.           "allOf": [
  1723.             {
  1724.               "$ref": "#/definitions/AudioConfig"
  1725.             }
  1726.           ]
  1727.         },
  1728.         "motion": {
  1729.           "title": "Motion detection configuration.",
  1730.           "allOf": [
  1731.             {
  1732.               "$ref": "#/definitions/MotionConfig"
  1733.             }
  1734.           ]
  1735.         },
  1736.         "detect": {
  1737.           "title": "Object detection configuration.",
  1738.           "allOf": [
  1739.             {
  1740.               "$ref": "#/definitions/DetectConfig"
  1741.             }
  1742.           ]
  1743.         },
  1744.         "onvif": {
  1745.           "title": "Camera Onvif Configuration.",
  1746.           "allOf": [
  1747.             {
  1748.               "$ref": "#/definitions/OnvifConfig"
  1749.             }
  1750.           ]
  1751.         },
  1752.         "ui": {
  1753.           "title": "Camera UI Modifications.",
  1754.           "allOf": [
  1755.             {
  1756.               "$ref": "#/definitions/CameraUiConfig"
  1757.             }
  1758.           ]
  1759.         },
  1760.         "birdseye": {
  1761.           "title": "Birdseye camera configuration.",
  1762.           "allOf": [
  1763.             {
  1764.               "$ref": "#/definitions/BirdseyeCameraConfig"
  1765.             }
  1766.           ]
  1767.         },
  1768.         "timestamp_style": {
  1769.           "title": "Timestamp style configuration.",
  1770.           "allOf": [
  1771.             {
  1772.               "$ref": "#/definitions/TimestampStyleConfig"
  1773.             }
  1774.           ]
  1775.         }
  1776.       },
  1777.       "required": [
  1778.         "ffmpeg"
  1779.       ],
  1780.       "additionalProperties": false
  1781.     }
  1782.   }
  1783. }
Advertisement
Add Comment
Please, Sign In to add comment