@@ -59,6 +59,40 @@ def create(
5959 data = data
6060 )
6161 return Datasource (** response .json ())
62+
63+ def update (
64+ self ,
65+ name : str ,
66+ new_name : Optional [str ] = None ,
67+ description : Optional [str ] = None ,
68+ connection_data : Optional [dict ] = None ,
69+ ):
70+ """
71+ Update existing datasource.
72+
73+ :param name: name of datasource to update.
74+ :param new_name: new name of datasource.
75+ :param description: str, optional, description of the database. Used by mind to know what data can be got from it.
76+ :param connection_data: dict, optional, credentials to connect to database.
77+ :return: Datasource object.
78+ """
79+ utils .validate_datasource_name (name )
80+ if new_name is not None :
81+ utils .validate_datasource_name (new_name )
82+
83+ data = {}
84+ if new_name is not None :
85+ data ['name' ] = new_name
86+ if connection_data is not None :
87+ data ['connection_data' ] = connection_data
88+ if description is not None :
89+ data ['description' ] = description
90+
91+ response = self .api .put (
92+ f'/datasources/{ name } ' ,
93+ data = data
94+ )
95+ return Datasource (** response .json ())
6296
6397 def list (self ) -> List [Datasource ]:
6498 """
0 commit comments