diff --git a/docs/static/frigate-api.yaml b/docs/static/frigate-api.yaml index bf493cad1..d44da7cda 100644 --- a/docs/static/frigate-api.yaml +++ b/docs/static/frigate-api.yaml @@ -5263,6 +5263,1154 @@ components: - type title: ValidationError + parameters: + - name: event_id + in: path + required: true + schema: + type: string + title: Event Id + - name: padding + in: query + required: false + schema: + type: integer + description: Padding to apply to clip. + default: 0 + title: Padding + description: Padding to apply to clip. + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /events/{event_id}/preview.gif: + get: + tags: + - Media + summary: Event Preview + operationId: event_preview_events__event_id__preview_gif_get + parameters: + - name: event_id + in: path + required: true + schema: + type: string + title: Event Id + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /{camera_name}/start/{start_ts}/end/{end_ts}/preview.gif: + get: + tags: + - Media + summary: Preview Gif + operationId: preview_gif__camera_name__start__start_ts__end__end_ts__preview_gif_get + parameters: + - name: camera_name + in: path + required: true + schema: + anyOf: + - type: string + - type: 'null' + title: Camera Name + - name: start_ts + in: path + required: true + schema: + type: number + title: Start Ts + - name: end_ts + in: path + required: true + schema: + type: number + title: End Ts + - name: max_cache_age + in: query + required: false + schema: + type: integer + description: Max cache age in seconds. Default 30 days in seconds. + default: 2592000 + title: Max Cache Age + description: Max cache age in seconds. Default 30 days in seconds. + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /{camera_name}/start/{start_ts}/end/{end_ts}/preview.mp4: + get: + tags: + - Media + summary: Preview Mp4 + operationId: preview_mp4__camera_name__start__start_ts__end__end_ts__preview_mp4_get + parameters: + - name: camera_name + in: path + required: true + schema: + anyOf: + - type: string + - type: 'null' + title: Camera Name + - name: start_ts + in: path + required: true + schema: + type: number + title: Start Ts + - name: end_ts + in: path + required: true + schema: + type: number + title: End Ts + - name: max_cache_age + in: query + required: false + schema: + type: integer + description: Max cache age in seconds. Default 7 days in seconds. + default: 604800 + title: Max Cache Age + description: Max cache age in seconds. Default 7 days in seconds. + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /review/{event_id}/preview: + get: + tags: + - Media + summary: Review Preview + operationId: review_preview_review__event_id__preview_get + parameters: + - name: event_id + in: path + required: true + schema: + type: string + title: Event Id + - name: format + in: query + required: false + schema: + type: string + enum: + - gif + - mp4 + default: gif + title: Format + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /preview/{file_name}/thumbnail.webp: + get: + tags: + - Media + summary: Preview Thumbnail + description: Get a thumbnail from the cached preview frames. + operationId: preview_thumbnail_preview__file_name__thumbnail_webp_get + parameters: + - name: file_name + in: path + required: true + schema: + type: string + title: File Name + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /preview/{file_name}/thumbnail.jpg: + get: + tags: + - Media + summary: Preview Thumbnail + description: Get a thumbnail from the cached preview frames. + operationId: preview_thumbnail_preview__file_name__thumbnail_jpg_get + parameters: + - name: file_name + in: path + required: true + schema: + type: string + title: File Name + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /{camera_name}/{label}/thumbnail.jpg: + get: + tags: + - Media + summary: Label Thumbnail + operationId: label_thumbnail__camera_name___label__thumbnail_jpg_get + parameters: + - name: camera_name + in: path + required: true + schema: + anyOf: + - type: string + - type: 'null' + title: Camera Name + - name: label + in: path + required: true + schema: + type: string + title: Label + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /{camera_name}/{label}/best.jpg: + get: + tags: + - Media + summary: Label Thumbnail + operationId: label_thumbnail__camera_name___label__best_jpg_get + parameters: + - name: camera_name + in: path + required: true + schema: + anyOf: + - type: string + - type: 'null' + title: Camera Name + - name: label + in: path + required: true + schema: + type: string + title: Label + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /{camera_name}/{label}/clip.mp4: + get: + tags: + - Media + summary: Label Clip + operationId: label_clip__camera_name___label__clip_mp4_get + parameters: + - name: camera_name + in: path + required: true + schema: + anyOf: + - type: string + - type: 'null' + title: Camera Name + - name: label + in: path + required: true + schema: + type: string + title: Label + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /{camera_name}/{label}/snapshot.jpg: + get: + tags: + - Media + summary: Label Snapshot + description: >- + Returns the snapshot image from the latest event for the given camera + and label combo + operationId: label_snapshot__camera_name___label__snapshot_jpg_get + parameters: + - name: camera_name + in: path + required: true + schema: + anyOf: + - type: string + - type: 'null' + title: Camera Name + - name: label + in: path + required: true + schema: + type: string + title: Label + responses: + '200': + description: Successful Response + content: + application/json: + schema: {} + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' +components: + schemas: + AppConfigSetBody: + properties: + requires_restart: + type: integer + title: Requires Restart + default: 1 + update_topic: + anyOf: + - type: string + - type: 'null' + title: Update Topic + config_data: + anyOf: + - type: object + - type: 'null' + title: Config Data + type: object + title: AppConfigSetBody + AppPostLoginBody: + properties: + user: + type: string + title: User + password: + type: string + title: Password + type: object + required: + - user + - password + title: AppPostLoginBody + AppPostUsersBody: + properties: + username: + type: string + title: Username + password: + type: string + title: Password + role: + anyOf: + - type: string + - type: 'null' + title: Role + default: viewer + type: object + required: + - username + - password + title: AppPostUsersBody + AppPutPasswordBody: + properties: + password: + type: string + title: Password + type: object + required: + - password + title: AppPutPasswordBody + AppPutRoleBody: + properties: + role: + type: string + title: Role + type: object + required: + - role + title: AppPutRoleBody + AudioTranscriptionBody: + properties: + event_id: + type: string + title: Event Id + type: object + required: + - event_id + title: AudioTranscriptionBody + Body_recognize_face_faces_recognize_post: + properties: + file: + type: string + format: binary + title: File + type: object + required: + - file + title: Body_recognize_face_faces_recognize_post + Body_register_face_faces__name__register_post: + properties: + file: + type: string + format: binary + title: File + type: object + required: + - file + title: Body_register_face_faces__name__register_post + DayReview: + properties: + day: + type: string + format: date-time + title: Day + reviewed_alert: + type: integer + title: Reviewed Alert + reviewed_detection: + type: integer + title: Reviewed Detection + total_alert: + type: integer + title: Total Alert + total_detection: + type: integer + title: Total Detection + type: object + required: + - day + - reviewed_alert + - reviewed_detection + - total_alert + - total_detection + title: DayReview + DeleteFaceImagesBody: + properties: + ids: + items: + type: string + type: array + title: Ids + description: List of image filenames to delete from the face folder + type: object + required: + - ids + title: DeleteFaceImagesBody + EventCreateResponse: + properties: + success: + type: boolean + title: Success + message: + type: string + title: Message + event_id: + type: string + title: Event Id + type: object + required: + - success + - message + - event_id + title: EventCreateResponse + EventMultiDeleteResponse: + properties: + success: + type: boolean + title: Success + deleted_events: + items: + type: string + type: array + title: Deleted Events + not_found_events: + items: + type: string + type: array + title: Not Found Events + type: object + required: + - success + - deleted_events + - not_found_events + title: EventMultiDeleteResponse + EventResponse: + properties: + id: + type: string + title: Id + label: + type: string + title: Label + sub_label: + anyOf: + - type: string + - type: 'null' + title: Sub Label + camera: + type: string + title: Camera + start_time: + type: number + title: Start Time + end_time: + anyOf: + - type: number + - type: 'null' + title: End Time + false_positive: + anyOf: + - type: boolean + - type: 'null' + title: False Positive + zones: + items: + type: string + type: array + title: Zones + thumbnail: + anyOf: + - type: string + - type: 'null' + title: Thumbnail + has_clip: + type: boolean + title: Has Clip + has_snapshot: + type: boolean + title: Has Snapshot + retain_indefinitely: + type: boolean + title: Retain Indefinitely + plus_id: + anyOf: + - type: string + - type: 'null' + title: Plus Id + model_hash: + anyOf: + - type: string + - type: 'null' + title: Model Hash + detector_type: + anyOf: + - type: string + - type: 'null' + title: Detector Type + model_type: + anyOf: + - type: string + - type: 'null' + title: Model Type + data: + type: object + title: Data + type: object + required: + - id + - label + - sub_label + - camera + - start_time + - end_time + - false_positive + - zones + - thumbnail + - has_clip + - has_snapshot + - retain_indefinitely + - plus_id + - model_hash + - detector_type + - model_type + - data + title: EventResponse + EventUploadPlusResponse: + properties: + success: + type: boolean + title: Success + plus_id: + type: string + title: Plus Id + type: object + required: + - success + - plus_id + title: EventUploadPlusResponse + EventsCreateBody: + properties: + source_type: + anyOf: + - type: string + - type: 'null' + title: Source Type + default: api + sub_label: + anyOf: + - type: string + - type: 'null' + title: Sub Label + score: + anyOf: + - type: number + - type: 'null' + title: Score + default: 0 + duration: + anyOf: + - type: integer + - type: 'null' + title: Duration + default: 30 + include_recording: + anyOf: + - type: boolean + - type: 'null' + title: Include Recording + default: true + draw: + anyOf: + - type: object + - type: 'null' + title: Draw + default: {} + type: object + title: EventsCreateBody + EventsDeleteBody: + properties: + event_ids: + items: + type: string + type: array + title: The event IDs to delete + type: object + required: + - event_ids + title: EventsDeleteBody + EventsDescriptionBody: + properties: + description: + anyOf: + - type: string + - type: 'null' + title: The description of the event + type: object + required: + - description + title: EventsDescriptionBody + EventsEndBody: + properties: + end_time: + anyOf: + - type: number + - type: 'null' + title: End Time + type: object + title: EventsEndBody + EventsLPRBody: + properties: + recognizedLicensePlate: + type: string + maxLength: 100 + title: Recognized License Plate + recognizedLicensePlateScore: + anyOf: + - type: number + maximum: 1 + exclusiveMinimum: 0 + - type: 'null' + title: Score for recognized license plate + type: object + required: + - recognizedLicensePlate + title: EventsLPRBody + EventsSubLabelBody: + properties: + subLabel: + type: string + maxLength: 100 + title: Sub label + subLabelScore: + anyOf: + - type: number + maximum: 1 + exclusiveMinimum: 0 + - type: 'null' + title: Score for sub label + camera: + anyOf: + - type: string + - type: 'null' + title: Camera this object is detected on. + type: object + required: + - subLabel + title: EventsSubLabelBody + ExportModel: + properties: + id: + type: string + title: Id + description: Unique identifier for the export + camera: + type: string + title: Camera + description: Camera name associated with this export + name: + type: string + title: Name + description: Friendly name of the export + date: + type: number + title: Date + description: Unix timestamp when the export was created + video_path: + type: string + title: Video Path + description: File path to the exported video + thumb_path: + type: string + title: Thumb Path + description: File path to the export thumbnail + in_progress: + type: boolean + title: In Progress + description: Whether the export is currently being processed + type: object + required: + - id + - camera + - name + - date + - video_path + - thumb_path + - in_progress + title: ExportModel + description: Model representing a single export. + ExportRecordingsBody: + properties: + playback: + $ref: '#/components/schemas/PlaybackFactorEnum' + title: Playback factor + default: realtime + source: + $ref: '#/components/schemas/PlaybackSourceEnum' + title: Playback source + default: recordings + name: + type: string + maxLength: 256 + title: Friendly name + image_path: + type: string + title: Image Path + type: object + title: ExportRecordingsBody + ExportRenameBody: + properties: + name: + type: string + maxLength: 256 + title: Friendly name + type: object + required: + - name + title: ExportRenameBody + Extension: + type: string + enum: + - webp + - png + - jpg + - jpeg + title: Extension + FaceRecognitionResponse: + properties: + success: + type: boolean + title: Success + description: Whether the face recognition was successful + score: + anyOf: + - type: number + - type: 'null' + title: Score + description: Confidence score of the recognition (0-1) + face_name: + anyOf: + - type: string + - type: 'null' + title: Face Name + description: The recognized face name if successful + type: object + required: + - success + title: FaceRecognitionResponse + description: >- + Response model for face recognition endpoint. + + + Returns the result of attempting to recognize a face from an uploaded + image. + FacesResponse: + additionalProperties: + items: + type: string + type: array + type: object + title: FacesResponse + description: |- + Response model for the get_faces endpoint. + + Returns a mapping of face names to lists of image filenames. + Each face name corresponds to a directory in the faces folder, + and the list contains the names of image files for that face. + + Example: + { + "john_doe": ["face1.webp", "face2.jpg"], + "jane_smith": ["face3.png"] + } + GenericResponse: + properties: + success: + type: boolean + title: Success + message: + type: string + title: Message + type: object + required: + - success + - message + title: GenericResponse + HTTPValidationError: + properties: + detail: + items: + $ref: '#/components/schemas/ValidationError' + type: array + title: Detail + type: object + title: HTTPValidationError + Last24HoursReview: + properties: + reviewed_alert: + type: integer + title: Reviewed Alert + reviewed_detection: + type: integer + title: Reviewed Detection + total_alert: + type: integer + title: Total Alert + total_detection: + type: integer + title: Total Detection + type: object + required: + - reviewed_alert + - reviewed_detection + - total_alert + - total_detection + title: Last24HoursReview + PlaybackFactorEnum: + type: string + enum: + - realtime + - timelapse_25x + title: PlaybackFactorEnum + PlaybackSourceEnum: + type: string + enum: + - recordings + - preview + title: PlaybackSourceEnum + PreviewModel: + properties: + camera: + type: string + title: Camera + description: Camera name for this preview + src: + type: string + title: Src + description: Path to the preview video file + type: + type: string + title: Type + description: MIME type of the preview video (video/mp4) + start: + type: number + title: Start + description: Unix timestamp when the preview starts + end: + type: number + title: End + description: Unix timestamp when the preview ends + type: object + required: + - camera + - src + - type + - start + - end + title: PreviewModel + description: Model representing a single preview clip. + RegenerateDescriptionEnum: + type: string + enum: + - thumbnails + - snapshot + title: RegenerateDescriptionEnum + RenameFaceBody: + properties: + new_name: + type: string + title: New Name + type: object + required: + - new_name + title: RenameFaceBody + ReviewActivityMotionResponse: + properties: + start_time: + type: integer + title: Start Time + motion: + type: number + title: Motion + camera: + type: string + title: Camera + type: object + required: + - start_time + - motion + - camera + title: ReviewActivityMotionResponse + ReviewModifyMultipleBody: + properties: + ids: + items: + type: string + minLength: 1 + type: array + minItems: 1 + title: Ids + type: object + required: + - ids + title: ReviewModifyMultipleBody + ReviewSegmentResponse: + properties: + id: + type: string + title: Id + camera: + type: string + title: Camera + start_time: + type: string + format: date-time + title: Start Time + end_time: + type: string + format: date-time + title: End Time + has_been_reviewed: + type: boolean + title: Has Been Reviewed + severity: + $ref: '#/components/schemas/SeverityEnum' + thumb_path: + type: string + title: Thumb Path + data: + title: Data + type: object + required: + - id + - camera + - start_time + - end_time + - has_been_reviewed + - severity + - thumb_path + - data + title: ReviewSegmentResponse + ReviewSummaryResponse: + properties: + last24Hours: + $ref: '#/components/schemas/Last24HoursReview' + root: + additionalProperties: + $ref: '#/components/schemas/DayReview' + type: object + title: Root + type: object + required: + - last24Hours + - root + title: ReviewSummaryResponse + SeverityEnum: + type: string + enum: + - alert + - detection + title: SeverityEnum + StartExportResponse: + properties: + success: + type: boolean + title: Success + description: Whether the export was started successfully + message: + type: string + title: Message + description: Status or error message + export_id: + anyOf: + - type: string + - type: 'null' + title: Export Id + description: The export ID if successfully started + type: object + required: + - success + - message + title: StartExportResponse + description: Response model for starting an export. + SubmitPlusBody: + properties: + include_annotation: + type: integer + title: Include Annotation + default: 1 + type: object + title: SubmitPlusBody + TriggerEmbeddingBody: + properties: + type: + $ref: '#/components/schemas/TriggerType' + data: + type: string + title: Data + threshold: + type: number + maximum: 1 + minimum: 0 + title: Threshold + default: 0.5 + type: object + required: + - type + - data + title: TriggerEmbeddingBody + TriggerType: + type: string + enum: + - thumbnail + - description + title: TriggerType + ValidationError: + properties: + loc: + items: + anyOf: + - type: string + - type: integer + type: array + title: Location + msg: + type: string + title: Message + type: + type: string + title: Error Type + type: object + required: + - loc + - msg + - type + title: ValidationError + type: object required: - id