@@ -218,6 +218,139 @@ def _use_cases(args) -> None: # noqa: ANN001
218218 output (args , result , text = "\n " .join (lines ))
219219
220220
221+ # ---------------------------------------------------------------------------
222+ # create-use-case
223+ # ---------------------------------------------------------------------------
224+
225+
226+ @vision_events_app .command ("create-use-case" )
227+ def create_use_case (
228+ ctx : typer .Context ,
229+ name : Annotated [str , typer .Argument (help = "Name for the new use case" )],
230+ ) -> None :
231+ """Create a new vision event use case."""
232+ args = ctx_to_args (ctx , name = name )
233+ _create_use_case (args )
234+
235+
236+ def _create_use_case (args ) -> None : # noqa: ANN001
237+ from roboflow .adapters import vision_events_api
238+ from roboflow .adapters .rfapi import RoboflowError
239+ from roboflow .cli ._output import output , output_error
240+
241+ api_key = _resolve (args )
242+ if api_key is None :
243+ return
244+
245+ try :
246+ result = vision_events_api .create_use_case (api_key , args .name )
247+ except RoboflowError as exc :
248+ output_error (args , str (exc ))
249+ return
250+
251+ output (args , result , text = f"Created use case { result .get ('id' , '' )} ({ result .get ('name' , '' )} )" )
252+
253+
254+ # ---------------------------------------------------------------------------
255+ # rename-use-case
256+ # ---------------------------------------------------------------------------
257+
258+
259+ @vision_events_app .command ("rename-use-case" )
260+ def rename_use_case (
261+ ctx : typer .Context ,
262+ use_case : Annotated [str , typer .Argument (help = "Use case identifier" )],
263+ name : Annotated [str , typer .Option ("-n" , "--name" , help = "New name for the use case" )],
264+ ) -> None :
265+ """Rename an existing vision event use case."""
266+ args = ctx_to_args (ctx , use_case = use_case , name = name )
267+ _rename_use_case (args )
268+
269+
270+ def _rename_use_case (args ) -> None : # noqa: ANN001
271+ from roboflow .adapters import vision_events_api
272+ from roboflow .adapters .rfapi import RoboflowError
273+ from roboflow .cli ._output import output , output_error
274+
275+ api_key = _resolve (args )
276+ if api_key is None :
277+ return
278+
279+ try :
280+ result = vision_events_api .rename_use_case (api_key , args .use_case , args .name )
281+ except RoboflowError as exc :
282+ output_error (args , str (exc ))
283+ return
284+
285+ output (args , result , text = f"Renamed use case { result .get ('id' , '' )} to { result .get ('name' , '' )} " )
286+
287+
288+ # ---------------------------------------------------------------------------
289+ # archive-use-case
290+ # ---------------------------------------------------------------------------
291+
292+
293+ @vision_events_app .command ("archive-use-case" )
294+ def archive_use_case (
295+ ctx : typer .Context ,
296+ use_case : Annotated [str , typer .Argument (help = "Use case identifier" )],
297+ ) -> None :
298+ """Archive a vision event use case."""
299+ args = ctx_to_args (ctx , use_case = use_case )
300+ _archive_use_case (args )
301+
302+
303+ def _archive_use_case (args ) -> None : # noqa: ANN001
304+ from roboflow .adapters import vision_events_api
305+ from roboflow .adapters .rfapi import RoboflowError
306+ from roboflow .cli ._output import output , output_error
307+
308+ api_key = _resolve (args )
309+ if api_key is None :
310+ return
311+
312+ try :
313+ result = vision_events_api .archive_use_case (api_key , args .use_case )
314+ except RoboflowError as exc :
315+ output_error (args , str (exc ))
316+ return
317+
318+ output (args , result , text = f"Archived use case { args .use_case } " )
319+
320+
321+ # ---------------------------------------------------------------------------
322+ # unarchive-use-case
323+ # ---------------------------------------------------------------------------
324+
325+
326+ @vision_events_app .command ("unarchive-use-case" )
327+ def unarchive_use_case (
328+ ctx : typer .Context ,
329+ use_case : Annotated [str , typer .Argument (help = "Use case identifier" )],
330+ ) -> None :
331+ """Unarchive a vision event use case."""
332+ args = ctx_to_args (ctx , use_case = use_case )
333+ _unarchive_use_case (args )
334+
335+
336+ def _unarchive_use_case (args ) -> None : # noqa: ANN001
337+ from roboflow .adapters import vision_events_api
338+ from roboflow .adapters .rfapi import RoboflowError
339+ from roboflow .cli ._output import output , output_error
340+
341+ api_key = _resolve (args )
342+ if api_key is None :
343+ return
344+
345+ try :
346+ result = vision_events_api .unarchive_use_case (api_key , args .use_case )
347+ except RoboflowError as exc :
348+ output_error (args , str (exc ))
349+ return
350+
351+ output (args , result , text = f"Unarchived use case { args .use_case } " )
352+
353+
221354# ---------------------------------------------------------------------------
222355# metadata-schema
223356# ---------------------------------------------------------------------------
0 commit comments