@@ -431,7 +431,12 @@ 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 (
435+ self ,
436+ resource_name : str ,
437+ order_column : str = "changed_on_delta_humanized" ,
438+ ** kwargs : Any ,
439+ ) -> List [Any ]:
435440 """
436441 Return one or more of a resource, possibly filtered.
437442 """
@@ -449,7 +454,7 @@ def get_resources(self, resource_name: str, **kwargs: Any) -> List[Any]:
449454 dict (col = col , opr = value .operator , value = value .value )
450455 for col , value in operations .items ()
451456 ],
452- "order_column" : "changed_on_delta_humanized" ,
457+ "order_column" : order_column ,
453458 "order_direction" : "desc" ,
454459 "page" : page ,
455460 "page_size" : MAX_PAGE_SIZE ,
@@ -507,6 +512,15 @@ def update_resource(
507512
508513 return resource
509514
515+ def delete_resource (self , resource_name : str , resource_id : int ):
516+ """
517+ Delete a resource.
518+ """
519+ url = self .baseurl / "api/v1" / resource_name / str (resource_id )
520+
521+ response = self .session .delete (url )
522+ validate_response (response )
523+
510524 def get_resource_endpoint_info (self , resource_name : str , ** kwargs : Any ) -> Any :
511525 """
512526 Get resource endpoint info (such as available columns) possibly filtered.
@@ -679,6 +693,18 @@ def get_charts(self, **kwargs: str) -> List[Any]:
679693 """
680694 return self .get_resources ("chart" , ** kwargs )
681695
696+ def update_chart (self , chart_id : int , ** kwargs : Any ) -> Any :
697+ """
698+ Update a chart.
699+ """
700+ return self .update_resource ("chart" , chart_id , ** kwargs )
701+
702+ def delete_chart (self , chart_id ):
703+ """
704+ delete a chart.
705+ """
706+ self .delete_resource ("chart" , chart_id )
707+
682708 def get_dashboard (self , dashboard_id : int ) -> Any :
683709 """
684710 Return a single dashboard.
@@ -703,6 +729,42 @@ def update_dashboard(self, dashboard_id: int, **kwargs: Any) -> Any:
703729 """
704730 return self .update_resource ("dashboard" , dashboard_id , ** kwargs )
705731
732+ def delete_dashboard (self , dashboard_id : int ) -> Any :
733+ """
734+ Delete a dashboard.
735+ """
736+ self .delete_resource ("dashboard" , dashboard_id )
737+
738+ def get_users (self , ** kwargs : str ) -> List [Any ]:
739+ """
740+ Return users, possibly filtered.
741+ """
742+ return self .get_resources ("security/users" , "id" , ** kwargs )
743+
744+ def get_report (self , report_id : int ) -> Any :
745+ """
746+ Return a single report.
747+ """
748+ return self .get_resource ("report" , report_id )
749+
750+ def get_reports (self , ** kwargs : str ) -> List [Any ]:
751+ """
752+ Return reports, possibly filtered.
753+ """
754+ return self .get_resources ("report" , ** kwargs )
755+
756+ def create_report (self , ** kwargs : Any ) -> Any :
757+ """
758+ Create a report.
759+ """
760+ return self .create_resource ("report" , ** kwargs )
761+
762+ def update_report (self , report_id : int , ** kwargs : Any ) -> Any :
763+ """
764+ Update a report.
765+ """
766+ return self .update_resource ("report" , report_id , ** kwargs )
767+
706768 def export_zip (self , resource_name : str , ids : List [int ]) -> BytesIO :
707769 """
708770 Export one or more of a resource.
0 commit comments