112 lines
3.5 KiB
Go
112 lines
3.5 KiB
Go
package generate
|
|
|
|
type Request struct {
|
|
MainStream string `json:"mainStream"`
|
|
SubStream string `json:"subStream,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
ExistingConfig string `json:"existingConfig,omitempty"`
|
|
|
|
Go2RTC *Go2RTCOverride `json:"go2rtc,omitempty"`
|
|
Frigate *FrigateOverride `json:"frigate,omitempty"`
|
|
|
|
Objects []string `json:"objects,omitempty"`
|
|
Record *RecordConfig `json:"record,omitempty"`
|
|
Detect *DetectConfig `json:"detect,omitempty"`
|
|
Snapshots *BoolConfig `json:"snapshots,omitempty"`
|
|
Motion *MotionConfig `json:"motion,omitempty"`
|
|
|
|
FFmpeg *FFmpegConfig `json:"ffmpeg,omitempty"`
|
|
Live *LiveConfig `json:"live,omitempty"`
|
|
Audio *AudioConfig `json:"audio,omitempty"`
|
|
Birdseye *BirdseyeConfig `json:"birdseye,omitempty"`
|
|
ONVIF *ONVIFConfig `json:"onvif,omitempty"`
|
|
PTZ *PTZConfig `json:"ptz,omitempty"`
|
|
Notifications *BoolConfig `json:"notifications,omitempty"`
|
|
UI *UIConfig `json:"ui,omitempty"`
|
|
}
|
|
|
|
type Go2RTCOverride struct {
|
|
MainStreamName string `json:"mainStreamName,omitempty"`
|
|
SubStreamName string `json:"subStreamName,omitempty"`
|
|
MainStreamSource string `json:"mainStreamSource,omitempty"`
|
|
SubStreamSource string `json:"subStreamSource,omitempty"`
|
|
}
|
|
|
|
type FrigateOverride struct {
|
|
MainStreamPath string `json:"mainStreamPath,omitempty"`
|
|
SubStreamPath string `json:"subStreamPath,omitempty"`
|
|
MainStreamInputArgs string `json:"mainStreamInputArgs,omitempty"`
|
|
SubStreamInputArgs string `json:"subStreamInputArgs,omitempty"`
|
|
}
|
|
|
|
type RecordConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
RetainDays float64 `json:"retain_days,omitempty"`
|
|
Mode string `json:"mode,omitempty"`
|
|
AlertsDays float64 `json:"alerts_days,omitempty"`
|
|
DetectionDays float64 `json:"detections_days,omitempty"`
|
|
PreCapture int `json:"pre_capture,omitempty"`
|
|
PostCapture int `json:"post_capture,omitempty"`
|
|
}
|
|
|
|
type DetectConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
FPS int `json:"fps,omitempty"`
|
|
Width int `json:"width,omitempty"`
|
|
Height int `json:"height,omitempty"`
|
|
}
|
|
|
|
type MotionConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
Threshold int `json:"threshold,omitempty"`
|
|
ContourArea int `json:"contour_area,omitempty"`
|
|
}
|
|
|
|
type FFmpegConfig struct {
|
|
HWAccel string `json:"hwaccel,omitempty"`
|
|
GPU int `json:"gpu,omitempty"`
|
|
}
|
|
|
|
type LiveConfig struct {
|
|
Height int `json:"height,omitempty"`
|
|
Quality int `json:"quality,omitempty"`
|
|
}
|
|
|
|
type AudioConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
Filters []string `json:"filters,omitempty"`
|
|
}
|
|
|
|
type BirdseyeConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
Mode string `json:"mode,omitempty"`
|
|
}
|
|
|
|
type ONVIFConfig struct {
|
|
Host string `json:"host,omitempty"`
|
|
Port int `json:"port,omitempty"`
|
|
User string `json:"user,omitempty"`
|
|
Password string `json:"password,omitempty"`
|
|
AutoTracking bool `json:"autotracking,omitempty"`
|
|
RequiredZones []string `json:"required_zones,omitempty"`
|
|
}
|
|
|
|
type PTZConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
Presets map[string]string `json:"presets,omitempty"`
|
|
}
|
|
|
|
type BoolConfig struct {
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
type UIConfig struct {
|
|
Order int `json:"order,omitempty"`
|
|
Dashboard bool `json:"dashboard"`
|
|
}
|
|
|
|
type Response struct {
|
|
Config string `json:"config"`
|
|
Added []int `json:"added"` // 1-based line numbers of added lines
|
|
}
|