mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-12-11 23:56:46 +03:00
Add information to events api
This commit is contained in:
parent
a1d9147abb
commit
6ed16bbc13
117
docs/static/frigate-api.yaml
vendored
117
docs/static/frigate-api.yaml
vendored
@ -1938,7 +1938,8 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Events
|
summary: Get events
|
||||||
|
description: Returns a list of events.
|
||||||
operationId: events_events_get
|
operationId: events_events_get
|
||||||
parameters:
|
parameters:
|
||||||
- name: camera
|
- name: camera
|
||||||
@ -2198,7 +2199,10 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Events Explore
|
summary: Get summary of objects.
|
||||||
|
description: |-
|
||||||
|
Gets a summary of objects from the database.
|
||||||
|
Returns a list of objects with a max of `limit` objects for each label.
|
||||||
operationId: events_explore_events_explore_get
|
operationId: events_explore_events_explore_get
|
||||||
parameters:
|
parameters:
|
||||||
- name: limit
|
- name: limit
|
||||||
@ -2228,7 +2232,10 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Event Ids
|
summary: Get events by ids.
|
||||||
|
description: |-
|
||||||
|
Gets events by a list of ids.
|
||||||
|
Returns a list of events.
|
||||||
operationId: event_ids_event_ids_get
|
operationId: event_ids_event_ids_get
|
||||||
parameters:
|
parameters:
|
||||||
- name: ids
|
- name: ids
|
||||||
@ -2257,7 +2264,10 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Events Search
|
summary: Search events.
|
||||||
|
description: |-
|
||||||
|
Searches for events in the database.
|
||||||
|
Returns a list of events.
|
||||||
operationId: events_search_events_search_get
|
operationId: events_search_events_search_get
|
||||||
parameters:
|
parameters:
|
||||||
- name: query
|
- name: query
|
||||||
@ -2497,7 +2507,8 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Event
|
summary: Get event by id.
|
||||||
|
description: Gets an event by its id.
|
||||||
operationId: event_events__event_id__get
|
operationId: event_events__event_id__get
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2522,7 +2533,10 @@ paths:
|
|||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Delete Event
|
summary: Delete event.
|
||||||
|
description: |-
|
||||||
|
Deletes an event from the database.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: delete_event_events__event_id__delete
|
operationId: delete_event_events__event_id__delete
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2548,7 +2562,11 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Set Retain
|
summary: Set event retain indefinitely.
|
||||||
|
description: |-
|
||||||
|
Sets an event to retain indefinitely.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTE: This is a legacy endpoint and is not supported in the frontend.
|
||||||
operationId: set_retain_events__event_id__retain_post
|
operationId: set_retain_events__event_id__retain_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2573,7 +2591,11 @@ paths:
|
|||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Delete Retain
|
summary: Stop event from being retained indefinitely.
|
||||||
|
description: |-
|
||||||
|
Stops an event from being retained indefinitely.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTE: This is a legacy endpoint and is not supported in the frontend.
|
||||||
operationId: delete_retain_events__event_id__retain_delete
|
operationId: delete_retain_events__event_id__retain_delete
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2599,7 +2621,10 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Send To Plus
|
summary: Send event to Frigate+.
|
||||||
|
description: |-
|
||||||
|
Sends an event to Frigate+.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: send_to_plus_events__event_id__plus_post
|
operationId: send_to_plus_events__event_id__plus_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2630,7 +2655,11 @@ paths:
|
|||||||
put:
|
put:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: False Positive
|
summary: Submit false positive to Frigate+
|
||||||
|
description: |-
|
||||||
|
Submit an event as a false positive to Frigate+.
|
||||||
|
This endpoint is the same as the standard Frigate+ submission endpoint,
|
||||||
|
but is specifically for marking an event as a false positive.
|
||||||
operationId: false_positive_events__event_id__false_positive_put
|
operationId: false_positive_events__event_id__false_positive_put
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2656,7 +2685,10 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Set Sub Label
|
summary: Set event sub label.
|
||||||
|
description: |-
|
||||||
|
Sets an event's sub label.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: set_sub_label_events__event_id__sub_label_post
|
operationId: set_sub_label_events__event_id__sub_label_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2688,7 +2720,10 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Set Plate
|
summary: Set event license plate.
|
||||||
|
description: |-
|
||||||
|
Sets an event's license plate.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: set_plate_events__event_id__recognized_license_plate_post
|
operationId: set_plate_events__event_id__recognized_license_plate_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2720,7 +2755,10 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Set Description
|
summary: Set event description.
|
||||||
|
description: |-
|
||||||
|
Sets an event's description.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: set_description_events__event_id__description_post
|
operationId: set_description_events__event_id__description_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2752,7 +2790,10 @@ paths:
|
|||||||
put:
|
put:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Regenerate Description
|
summary: Regenerate event description.
|
||||||
|
description: |-
|
||||||
|
Regenerates an event's description.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: regenerate_description_events__event_id__description_regenerate_put
|
operationId: regenerate_description_events__event_id__description_regenerate_put
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2796,7 +2837,10 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Generate Description Embedding
|
summary: Generate description embedding.
|
||||||
|
description: |-
|
||||||
|
Generates an embedding for an event's description.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
operationId: generate_description_embedding_description_generate_post
|
operationId: generate_description_embedding_description_generate_post
|
||||||
requestBody:
|
requestBody:
|
||||||
required: true
|
required: true
|
||||||
@ -2821,7 +2865,10 @@ paths:
|
|||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Delete Events
|
summary: Delete events.
|
||||||
|
description: |-
|
||||||
|
Deletes a list of events from the database.
|
||||||
|
Returns a success message or an error if the events are not found.
|
||||||
operationId: delete_events_events__delete
|
operationId: delete_events_events__delete
|
||||||
requestBody:
|
requestBody:
|
||||||
required: true
|
required: true
|
||||||
@ -2846,7 +2893,13 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Create Event
|
summary: Create manual event.
|
||||||
|
description: |-
|
||||||
|
Creates a manual event in the database.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTES:
|
||||||
|
- Creating a manual event does not trigger an update to /events MQTT topic.
|
||||||
|
- If a duration is set to null, the event will need to be ended manually by calling /events/{event_id}/end.
|
||||||
operationId: create_event_events__camera_name___label__create_post
|
operationId: create_event_events__camera_name___label__create_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: camera_name
|
- name: camera_name
|
||||||
@ -2889,7 +2942,11 @@ paths:
|
|||||||
put:
|
put:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: End Event
|
summary: End manual event.
|
||||||
|
description: |-
|
||||||
|
Ends a manual event.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTE: This should only be used for manual events.
|
||||||
operationId: end_event_events__event_id__end_put
|
operationId: end_event_events__event_id__end_put
|
||||||
parameters:
|
parameters:
|
||||||
- name: event_id
|
- name: event_id
|
||||||
@ -2921,7 +2978,10 @@ paths:
|
|||||||
post:
|
post:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Create Trigger Embedding
|
summary: Create trigger embedding.
|
||||||
|
description: |-
|
||||||
|
Creates a trigger embedding for a specific trigger.
|
||||||
|
Returns a success message or an error if the trigger is not found.
|
||||||
operationId: create_trigger_embedding_trigger_embedding_post
|
operationId: create_trigger_embedding_trigger_embedding_post
|
||||||
parameters:
|
parameters:
|
||||||
- name: camera_name
|
- name: camera_name
|
||||||
@ -2960,7 +3020,10 @@ paths:
|
|||||||
put:
|
put:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Update Trigger Embedding
|
summary: Update trigger embedding.
|
||||||
|
description: |-
|
||||||
|
Updates a trigger embedding for a specific trigger.
|
||||||
|
Returns a success message or an error if the trigger is not found.
|
||||||
operationId: update_trigger_embedding_trigger_embedding__camera_name___name__put
|
operationId: update_trigger_embedding_trigger_embedding__camera_name___name__put
|
||||||
parameters:
|
parameters:
|
||||||
- name: camera_name
|
- name: camera_name
|
||||||
@ -3000,7 +3063,10 @@ paths:
|
|||||||
delete:
|
delete:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Delete Trigger Embedding
|
summary: Delete trigger embedding.
|
||||||
|
description: |-
|
||||||
|
Deletes a trigger embedding for a specific trigger.
|
||||||
|
Returns a success message or an error if the trigger is not found.
|
||||||
operationId: delete_trigger_embedding_trigger_embedding__camera_name___name__delete
|
operationId: delete_trigger_embedding_trigger_embedding__camera_name___name__delete
|
||||||
parameters:
|
parameters:
|
||||||
- name: camera_name
|
- name: camera_name
|
||||||
@ -3035,7 +3101,10 @@ paths:
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Events
|
- Events
|
||||||
summary: Get Triggers Status
|
summary: Get triggers status.
|
||||||
|
description: |-
|
||||||
|
Gets the status of all triggers for a specific camera.
|
||||||
|
Returns a success message or an error if the camera is not found.
|
||||||
operationId: get_triggers_status_triggers_status__camera_name__get
|
operationId: get_triggers_status_triggers_status__camera_name__get
|
||||||
parameters:
|
parameters:
|
||||||
- name: camera_name
|
- name: camera_name
|
||||||
@ -3475,14 +3544,14 @@ paths:
|
|||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: number
|
type: number
|
||||||
default: 1759925464.421221
|
default: 1759928397.31333
|
||||||
title: After
|
title: After
|
||||||
- name: before
|
- name: before
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: number
|
type: number
|
||||||
default: 1759929064.421228
|
default: 1759931997.313336
|
||||||
title: Before
|
title: Before
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
|
|||||||
@ -65,7 +65,12 @@ logger = logging.getLogger(__name__)
|
|||||||
router = APIRouter(tags=[Tags.events])
|
router = APIRouter(tags=[Tags.events])
|
||||||
|
|
||||||
|
|
||||||
@router.get("/events", response_model=list[EventResponse])
|
@router.get(
|
||||||
|
"/events",
|
||||||
|
response_model=list[EventResponse],
|
||||||
|
summary="Get events",
|
||||||
|
description="Returns a list of events.",
|
||||||
|
)
|
||||||
def events(
|
def events(
|
||||||
params: EventsQueryParams = Depends(),
|
params: EventsQueryParams = Depends(),
|
||||||
allowed_cameras: List[str] = Depends(get_allowed_cameras_for_filter),
|
allowed_cameras: List[str] = Depends(get_allowed_cameras_for_filter),
|
||||||
@ -334,7 +339,14 @@ def events(
|
|||||||
return JSONResponse(content=list(events))
|
return JSONResponse(content=list(events))
|
||||||
|
|
||||||
|
|
||||||
@router.get("/events/explore", response_model=list[EventResponse])
|
@router.get(
|
||||||
|
"/events/explore",
|
||||||
|
response_model=list[EventResponse],
|
||||||
|
summary="Get summary of objects.",
|
||||||
|
description="""Gets a summary of objects from the database.
|
||||||
|
Returns a list of objects with a max of `limit` objects for each label.
|
||||||
|
""",
|
||||||
|
)
|
||||||
def events_explore(
|
def events_explore(
|
||||||
limit: int = 10,
|
limit: int = 10,
|
||||||
allowed_cameras: List[str] = Depends(get_allowed_cameras_for_filter),
|
allowed_cameras: List[str] = Depends(get_allowed_cameras_for_filter),
|
||||||
@ -419,7 +431,14 @@ def events_explore(
|
|||||||
return JSONResponse(content=processed_events)
|
return JSONResponse(content=processed_events)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/event_ids", response_model=list[EventResponse])
|
@router.get(
|
||||||
|
"/event_ids",
|
||||||
|
response_model=list[EventResponse],
|
||||||
|
summary="Get events by ids.",
|
||||||
|
description="""Gets events by a list of ids.
|
||||||
|
Returns a list of events.
|
||||||
|
""",
|
||||||
|
)
|
||||||
async def event_ids(ids: str, request: Request):
|
async def event_ids(ids: str, request: Request):
|
||||||
ids = ids.split(",")
|
ids = ids.split(",")
|
||||||
|
|
||||||
@ -446,7 +465,13 @@ async def event_ids(ids: str, request: Request):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/events/search")
|
@router.get(
|
||||||
|
"/events/search",
|
||||||
|
summary="Search events.",
|
||||||
|
description="""Searches for events in the database.
|
||||||
|
Returns a list of events.
|
||||||
|
""",
|
||||||
|
)
|
||||||
def events_search(
|
def events_search(
|
||||||
request: Request,
|
request: Request,
|
||||||
params: EventsSearchQueryParams = Depends(),
|
params: EventsSearchQueryParams = Depends(),
|
||||||
@ -832,7 +857,12 @@ def events_summary(
|
|||||||
return JSONResponse(content=[e for e in groups.dicts()])
|
return JSONResponse(content=[e for e in groups.dicts()])
|
||||||
|
|
||||||
|
|
||||||
@router.get("/events/{event_id}", response_model=EventResponse)
|
@router.get(
|
||||||
|
"/events/{event_id}",
|
||||||
|
response_model=EventResponse,
|
||||||
|
summary="Get event by id.",
|
||||||
|
description="Gets an event by its id.",
|
||||||
|
)
|
||||||
async def event(event_id: str, request: Request):
|
async def event(event_id: str, request: Request):
|
||||||
try:
|
try:
|
||||||
event = Event.get(Event.id == event_id)
|
event = Event.get(Event.id == event_id)
|
||||||
@ -846,6 +876,11 @@ async def event(event_id: str, request: Request):
|
|||||||
"/events/{event_id}/retain",
|
"/events/{event_id}/retain",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Set event retain indefinitely.",
|
||||||
|
description="""Sets an event to retain indefinitely.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTE: This is a legacy endpoint and is not supported in the frontend.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def set_retain(event_id: str):
|
def set_retain(event_id: str):
|
||||||
try:
|
try:
|
||||||
@ -865,7 +900,14 @@ def set_retain(event_id: str):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/events/{event_id}/plus", response_model=EventUploadPlusResponse)
|
@router.post(
|
||||||
|
"/events/{event_id}/plus",
|
||||||
|
response_model=EventUploadPlusResponse,
|
||||||
|
summary="Send event to Frigate+.",
|
||||||
|
description="""Sends an event to Frigate+.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
|
)
|
||||||
async def send_to_plus(request: Request, event_id: str, body: SubmitPlusBody = None):
|
async def send_to_plus(request: Request, event_id: str, body: SubmitPlusBody = None):
|
||||||
if not request.app.frigate_config.plus_api.is_active():
|
if not request.app.frigate_config.plus_api.is_active():
|
||||||
message = "PLUS_API_KEY environment variable is not set"
|
message = "PLUS_API_KEY environment variable is not set"
|
||||||
@ -978,7 +1020,14 @@ async def send_to_plus(request: Request, event_id: str, body: SubmitPlusBody = N
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.put("/events/{event_id}/false_positive", response_model=EventUploadPlusResponse)
|
@router.put(
|
||||||
|
"/events/{event_id}/false_positive",
|
||||||
|
response_model=EventUploadPlusResponse,
|
||||||
|
summary="Submit false positive to Frigate+",
|
||||||
|
description="""Submit an event as a false positive to Frigate+.
|
||||||
|
This endpoint is the same as the standard Frigate+ submission endpoint,
|
||||||
|
but is specifically for marking an event as a false positive.""",
|
||||||
|
)
|
||||||
async def false_positive(request: Request, event_id: str):
|
async def false_positive(request: Request, event_id: str):
|
||||||
if not request.app.frigate_config.plus_api.is_active():
|
if not request.app.frigate_config.plus_api.is_active():
|
||||||
message = "PLUS_API_KEY environment variable is not set"
|
message = "PLUS_API_KEY environment variable is not set"
|
||||||
@ -1072,6 +1121,11 @@ async def false_positive(request: Request, event_id: str):
|
|||||||
"/events/{event_id}/retain",
|
"/events/{event_id}/retain",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Stop event from being retained indefinitely.",
|
||||||
|
description="""Stops an event from being retained indefinitely.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTE: This is a legacy endpoint and is not supported in the frontend.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def delete_retain(event_id: str, request: Request):
|
async def delete_retain(event_id: str, request: Request):
|
||||||
try:
|
try:
|
||||||
@ -1096,6 +1150,10 @@ async def delete_retain(event_id: str, request: Request):
|
|||||||
"/events/{event_id}/sub_label",
|
"/events/{event_id}/sub_label",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Set event sub label.",
|
||||||
|
description="""Sets an event's sub label.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def set_sub_label(
|
async def set_sub_label(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1151,6 +1209,10 @@ async def set_sub_label(
|
|||||||
"/events/{event_id}/recognized_license_plate",
|
"/events/{event_id}/recognized_license_plate",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Set event license plate.",
|
||||||
|
description="""Sets an event's license plate.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def set_plate(
|
async def set_plate(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1207,6 +1269,10 @@ async def set_plate(
|
|||||||
"/events/{event_id}/description",
|
"/events/{event_id}/description",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Set event description.",
|
||||||
|
description="""Sets an event's description.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def set_description(
|
async def set_description(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1259,6 +1325,10 @@ async def set_description(
|
|||||||
"/events/{event_id}/description/regenerate",
|
"/events/{event_id}/description/regenerate",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Regenerate event description.",
|
||||||
|
description="""Regenerates an event's description.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def regenerate_description(
|
async def regenerate_description(
|
||||||
request: Request, event_id: str, params: RegenerateQueryParameters = Depends()
|
request: Request, event_id: str, params: RegenerateQueryParameters = Depends()
|
||||||
@ -1308,6 +1378,10 @@ async def regenerate_description(
|
|||||||
"/description/generate",
|
"/description/generate",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
# dependencies=[Depends(require_role(["admin"]))],
|
# dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Generate description embedding.",
|
||||||
|
description="""Generates an embedding for an event's description.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def generate_description_embedding(
|
def generate_description_embedding(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1368,6 +1442,10 @@ async def delete_single_event(event_id: str, request: Request) -> dict:
|
|||||||
"/events/{event_id}",
|
"/events/{event_id}",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Delete event.",
|
||||||
|
description="""Deletes an event from the database.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def delete_event(request: Request, event_id: str):
|
async def delete_event(request: Request, event_id: str):
|
||||||
result = await delete_single_event(event_id, request)
|
result = await delete_single_event(event_id, request)
|
||||||
@ -1379,6 +1457,10 @@ async def delete_event(request: Request, event_id: str):
|
|||||||
"/events/",
|
"/events/",
|
||||||
response_model=EventMultiDeleteResponse,
|
response_model=EventMultiDeleteResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Delete events.",
|
||||||
|
description="""Deletes a list of events from the database.
|
||||||
|
Returns a success message or an error if the events are not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def delete_events(request: Request, body: EventsDeleteBody):
|
async def delete_events(request: Request, body: EventsDeleteBody):
|
||||||
if not body.event_ids:
|
if not body.event_ids:
|
||||||
@ -1409,6 +1491,13 @@ async def delete_events(request: Request, body: EventsDeleteBody):
|
|||||||
"/events/{camera_name}/{label}/create",
|
"/events/{camera_name}/{label}/create",
|
||||||
response_model=EventCreateResponse,
|
response_model=EventCreateResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Create manual event.",
|
||||||
|
description="""Creates a manual event in the database.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTES:
|
||||||
|
- Creating a manual event does not trigger an update to /events MQTT topic.
|
||||||
|
- If a duration is set to null, the event will need to be ended manually by calling /events/{event_id}/end.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def create_event(
|
def create_event(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1466,6 +1555,11 @@ def create_event(
|
|||||||
"/events/{event_id}/end",
|
"/events/{event_id}/end",
|
||||||
response_model=GenericResponse,
|
response_model=GenericResponse,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="End manual event.",
|
||||||
|
description="""Ends a manual event.
|
||||||
|
Returns a success message or an error if the event is not found.
|
||||||
|
NOTE: This should only be used for manual events.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
async def end_event(request: Request, event_id: str, body: EventsEndBody):
|
async def end_event(request: Request, event_id: str, body: EventsEndBody):
|
||||||
try:
|
try:
|
||||||
@ -1493,6 +1587,10 @@ async def end_event(request: Request, event_id: str, body: EventsEndBody):
|
|||||||
"/trigger/embedding",
|
"/trigger/embedding",
|
||||||
response_model=dict,
|
response_model=dict,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Create trigger embedding.",
|
||||||
|
description="""Creates a trigger embedding for a specific trigger.
|
||||||
|
Returns a success message or an error if the trigger is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def create_trigger_embedding(
|
def create_trigger_embedding(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1645,6 +1743,10 @@ def create_trigger_embedding(
|
|||||||
"/trigger/embedding/{camera_name}/{name}",
|
"/trigger/embedding/{camera_name}/{name}",
|
||||||
response_model=dict,
|
response_model=dict,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Update trigger embedding.",
|
||||||
|
description="""Updates a trigger embedding for a specific trigger.
|
||||||
|
Returns a success message or an error if the trigger is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def update_trigger_embedding(
|
def update_trigger_embedding(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1806,6 +1908,10 @@ def update_trigger_embedding(
|
|||||||
"/trigger/embedding/{camera_name}/{name}",
|
"/trigger/embedding/{camera_name}/{name}",
|
||||||
response_model=dict,
|
response_model=dict,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Delete trigger embedding.",
|
||||||
|
description="""Deletes a trigger embedding for a specific trigger.
|
||||||
|
Returns a success message or an error if the trigger is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def delete_trigger_embedding(
|
def delete_trigger_embedding(
|
||||||
request: Request,
|
request: Request,
|
||||||
@ -1877,6 +1983,10 @@ def delete_trigger_embedding(
|
|||||||
"/triggers/status/{camera_name}",
|
"/triggers/status/{camera_name}",
|
||||||
response_model=dict,
|
response_model=dict,
|
||||||
dependencies=[Depends(require_role(["admin"]))],
|
dependencies=[Depends(require_role(["admin"]))],
|
||||||
|
summary="Get triggers status.",
|
||||||
|
description="""Gets the status of all triggers for a specific camera.
|
||||||
|
Returns a success message or an error if the camera is not found.
|
||||||
|
""",
|
||||||
)
|
)
|
||||||
def get_triggers_status(
|
def get_triggers_status(
|
||||||
camera_name: str,
|
camera_name: str,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user