cfg/app/frigate/schema/schema.cue

144 lines
2.1 KiB
Plaintext

package schema
#Frigate: {
env?: [string]: string
config: #FrigateConfig
caddy: {
server_name: string
forward_auth: {
url: string
path: string | *"/api/verify"
}
acme: {
email: string
}
}
}
#FrigateConfig: {
ffmpeg?: #FfmpegConfig
cameras: [string]: #CameraConfig
go2rtc?: #Go2RtcConfig
detectors?: [string]: #DetectorConfig
birdseye?: #BirdseyeConfig
mqtt: #MqttConfig
}
#FfmpegConfig: {
hwaccel_args?: string
}
#CameraConfig: {
detect?: {
height: int
width: int
}
ffmpeg: {
inputs: [...#FfmpegInput]
}
objects?: {
track: [...string]
filters?: [string]: #ObjectFilter
}
record?: #RecordConfig
rtmp?: {
enabled?: bool
}
snapshots?: #SnapshotsConfig
zones?: [string]: #ZoneConfig
motion?: {
mask: [...string]
}
}
#FfmpegInput: {
path: string
input_args?: string
roles: [...string]
}
#ObjectFilter: {
threshold?: float
}
#RecordConfig: {
enabled?: bool
retain?: {
days: int
mode?: #RetainMode
}
events: {
pre_capture?: int
post_capture?: int
objects?: [...string]
required_zones?: [...string]
retain?: {
default?: int
mode?: #RetainMode
objects?: [string]: int
}
}
}
#SnapshotsConfig: {
enabled?: bool
required_zones?: [...string]
retain?: {
default?: int
objects?: [string]: int
}
}
#RetainMode: "all" | "motion" | "active_objects"
#ZoneConfig: {
coordinates: string
inertia?: int
objects?: [...string]
filters?: [string]: {
min_area?: int
maax_area?: int
threshold?: float
}
}
#Go2RtcConfig: {
streams: [string]: [...string]
}
#DetectorConfig: #CpuDetector | #EdgeTpuDetector
#CpuDetector: {
type: "cpu"
num_threads?: int
}
#EdgeTpuDetector: {
type: "edgetpu"
device: string
}
#BirdseyeConfig: {
enabled?: bool
restream?: bool
width?: int
height?: int
quality?: int
mode?: "objects" | "motion" | "continuous"
inactivity_threshold?: int
layout?: {
scaling_factor?: float
max_cameras?: int
}
}
#MqttConfig: {
host: string
password?: string
port?: int
tls_ca_certs?: string
user?: string
}