@@ -181,30 +181,30 @@ def features(self) -> dict:
181181 def banner (self ) -> dict :
182182 return self .get (f'{ self .base_url } /banner' )
183183
184- def get (self , url , params = None ) -> dict :
184+ def get (self , url , params : dict = None , headers : dict = None ) -> dict :
185185 """Internal use only."""
186186
187- return self .__request ('get' , url , params = params )
187+ return self .__request ('get' , url , params = params , headers = headers )
188188
189- def post (self , url , params = None , data = None , json = None ) -> dict :
189+ def post (self , url , params : dict = None , data : dict = None , json : dict = None , headers : dict = None ) -> dict :
190190 """Internal use only."""
191191
192- return self .__request ('post' , url , params = params , data = data , json = json )
192+ return self .__request ('post' , url , params = params , data = data , json = json , headers = headers )
193193
194- def patch (self , url , params = None , data = None , json = None ) -> dict :
194+ def patch (self , url , params : dict = None , data : dict = None , json : dict = None , headers : dict = None ) -> dict :
195195 """Internal use only."""
196196
197- return self .__request ('patch' , url , params = params , data = data , json = json )
197+ return self .__request ('patch' , url , params = params , data = data , json = json , headers = headers )
198198
199- def put (self , url , params = None , data = None , json = None ) -> dict :
199+ def put (self , url , params : dict = None , data : dict = None , json : dict = None , headers : dict = None ) -> dict :
200200 """Internal use only."""
201201
202- return self .__request ('put' , url , params = params , data = data , json = json )
202+ return self .__request ('put' , url , params = params , data = data , json = json , headers = headers )
203203
204- def delete (self , url , params = None , data = None , json = None ) -> dict :
204+ def delete (self , url , params : dict = None , data : dict = None , json : dict = None , headers : dict = None ) -> dict :
205205 """Internal use only."""
206206
207- return self .__request ('delete' , url , params = params , data = data , json = json )
207+ return self .__request ('delete' , url , params = params , data = data , json = json , headers = headers )
208208
209209 # note - this method could be iffy in the future if the app changes the way it handles
210210 # file uploads. As of 2022-01-26 it is working fine with the "Upload SAML Metadata" action
@@ -223,11 +223,13 @@ def post_upload(self, url, params=None, files=None) -> dict:
223223 response = self .session .post (url , params = params , files = files , headers = {'Content-Type' : None })
224224 return handle_response (response )
225225
226- def __request_with_exponential_backoff_and_retry (self , method , url , params , data , json ) -> dict :
226+ def __request_with_exponential_backoff_and_retry (self , method , url , params , data , json , headers ) -> dict :
227227 num_retries = 0
228228
229229 while num_retries <= self .retry_max_times :
230- response = self .session .request (method , url , params = params , data = data , json = json )
230+ response = self .session .request (
231+ method , url , params = params , data = data , json = json , headers = {** self .session .headers , ** headers }
232+ )
231233
232234 # handle the use case of a tenant being in maintenance mode
233235 # which means we should break out of this loop early and
@@ -244,15 +246,17 @@ def __request_with_exponential_backoff_and_retry(self, method, url, params, data
244246
245247 return response
246248
247- def __request (self , method , url , params = None , data = None , json = None ) -> dict :
249+ def __request (self , method , url , params = None , data = None , json = None , headers = None ) -> dict :
248250 return_data = []
249251 _pagination_type = None
250252
251253 if params is None :
252254 params = {}
255+ if headers is None :
256+ headers = {}
253257
254258 while True :
255- response = self .__request_with_exponential_backoff_and_retry (method , url , params , data , json )
259+ response = self .__request_with_exponential_backoff_and_retry (method , url , params , data , json , headers )
256260 if response_has_no_content (response ):
257261 return None
258262
0 commit comments