@@ -431,7 +431,7 @@ def get_resource(self, resource_name: str, resource_id: int) -> Any:
431431
432432 return resource
433433
434- def get_resources (self , resource_name : str , ** kwargs : Any ) -> List [Any ]:
434+ def get_resources (self , resource_name : str , order_column : str = "changed_on_delta_humanized" , ** kwargs : Any ) -> List [Any ]:
435435 """
436436 Return one or more of a resource, possibly filtered.
437437 """
@@ -449,7 +449,7 @@ def get_resources(self, resource_name: str, **kwargs: Any) -> List[Any]:
449449 dict (col = col , opr = value .operator , value = value .value )
450450 for col , value in operations .items ()
451451 ],
452- "order_column" : "changed_on_delta_humanized" ,
452+ "order_column" : order_column ,
453453 "order_direction" : "desc" ,
454454 "page" : page ,
455455 "page_size" : MAX_PAGE_SIZE ,
@@ -507,6 +507,19 @@ def update_resource(
507507
508508 return resource
509509
510+ def delete_resource (
511+ self ,
512+ resource_name : str ,
513+ resource_id : int
514+ ):
515+ """
516+ Delete a resource.
517+ """
518+ url = self .baseurl / "api/v1" / resource_name / str (resource_id )
519+
520+ response = self .session .delete (url )
521+ validate_response (response )
522+
510523 def get_resource_endpoint_info (self , resource_name : str , ** kwargs : Any ) -> Any :
511524 """
512525 Get resource endpoint info (such as available columns) possibly filtered.
@@ -679,6 +692,18 @@ def get_charts(self, **kwargs: str) -> List[Any]:
679692 """
680693 return self .get_resources ("chart" , ** kwargs )
681694
695+ def update_chart (self , chart_id : int , ** kwargs : Any ) -> Any :
696+ """
697+ Update a chart.
698+ """
699+ return self .update_resource ("chart" , chart_id , ** kwargs )
700+
701+ def delete_chart (self , chart_id ):
702+ """
703+ delete a chart.
704+ """
705+ self .delete_resource ("chart" , chart_id )
706+
682707 def get_dashboard (self , dashboard_id : int ) -> Any :
683708 """
684709 Return a single dashboard.
@@ -703,6 +728,42 @@ def update_dashboard(self, dashboard_id: int, **kwargs: Any) -> Any:
703728 """
704729 return self .update_resource ("dashboard" , dashboard_id , ** kwargs )
705730
731+ def delete_dashboard (self , dashboard_id : int ) -> Any :
732+ """
733+ Delete a dashboard.
734+ """
735+ self .delete_resource ("dashboard" , dashboard_id )
736+
737+ def get_users (self , ** kwargs : str ) -> List [Any ]:
738+ """
739+ Return users, possibly filtered.
740+ """
741+ return self .get_resources ("security/users" , "id" , ** kwargs )
742+
743+ def get_report (self , report_id : int ) -> Any :
744+ """
745+ Return a single report.
746+ """
747+ return self .get_resource ("report" , report_id )
748+
749+ def get_reports (self , ** kwargs : str ) -> List [Any ]:
750+ """
751+ Return reports, possibly filtered.
752+ """
753+ return self .get_resources ("report" , ** kwargs )
754+
755+ def create_report (self , ** kwargs : Any ) -> Any :
756+ """
757+ Create a report.
758+ """
759+ return self .create_resource ("report" , ** kwargs )
760+
761+ def update_report (self , report_id : int , ** kwargs : Any ) -> Any :
762+ """
763+ Update a report.
764+ """
765+ return self .update_resource ("report" , report_id , ** kwargs )
766+
706767 def export_zip (self , resource_name : str , ids : List [int ]) -> BytesIO :
707768 """
708769 Export one or more of a resource.
0 commit comments