1010from globus_sdk .services .transfer .errors import TransferAPIError
1111from globus_sdk .transport import RetryConfig
1212
13- from .data import TunnelCreateDocument , TunnelUpdateDocument
13+ from .data import (
14+ BookmarkCreateDocument ,
15+ BookmarkUpdateDocument ,
16+ TunnelCreateDocument ,
17+ TunnelUpdateDocument ,
18+ )
1419from .transport import TRANSFER_V2_DEFAULT_RETRY_CHECKS
1520
1621log = logging .getLogger (__name__ )
@@ -72,7 +77,7 @@ def create_tunnel(
7277
7378 .. code-block:: python
7479
75- tc = globus_sdk.experimental.TrasferClientV2 (...)
80+ tc = globus_sdk.experimental.TransferClientV2 (...)
7681 data = globus_sdk.experimental.TunnelCreateDocument(...)
7782 result = tc.create_tunnel(data)
7883 print(result["data"]["id"])
@@ -81,7 +86,7 @@ def create_tunnel(
8186
8287 ``POST /v2/tunnels``
8388 """
84- log .debug ("TransferClientV2 .create_tunnel(...)" )
89+ log .debug (f" { self . __class__ . __name__ } .create_tunnel(...)" )
8590 r = self .post ("/v2/tunnels" , data = data )
8691 return r
8792
@@ -100,7 +105,7 @@ def update_tunnel(
100105
101106 .. code-block:: python
102107
103- tc = globus_sdk.experimental.TrasferClientV2 (...)
108+ tc = globus_sdk.experimental.TransferClientV2 (...)
104109 data = globus_sdk.experimental.TunnelUpdateDocument(...)
105110 result = tc.update_tunnel(tunnel_id, data)
106111 print(result["data"])
@@ -109,7 +114,7 @@ def update_tunnel(
109114
110115 ``PATCH /v2/tunnels/<tunnel_id>``
111116 """
112- log .debug (f"TransferClientV2 .update_tunnel({ tunnel_id } , { update_doc } )" )
117+ log .debug (f"{ self . __class__ . __name__ } .update_tunnel({ tunnel_id } , { update_doc } )" )
113118 r = self .patch (f"/v2/tunnels/{ tunnel_id } " , data = update_doc )
114119 return r
115120
@@ -130,15 +135,15 @@ def get_tunnel(
130135
131136 .. code-block:: python
132137
133- tc = globus_sdk.experimental.TrasferClientV2 (...)
134- result = tc.show_tunnel (tunnel_id)
138+ tc = globus_sdk.experimental.TransferClientV2 (...)
139+ result = tc.get_tunnel (tunnel_id)
135140 print(result["data"])
136141
137142 .. tab-item:: API Info
138143
139144 ``GET /v2/tunnels/<tunnel_id>``
140145 """
141- log .debug ("TransferClientV2 .get_tunnel({tunnel_id}, {query_params})" )
146+ log .debug (f" { self . __class__ . __name__ } .get_tunnel({ tunnel_id } , { query_params } )" )
142147 r = self .get (f"/v2/tunnels/{ tunnel_id } " , query_params = query_params )
143148 return r
144149
@@ -158,14 +163,14 @@ def delete_tunnel(
158163
159164 .. code-block:: python
160165
161- tc = globus_sdk.experimental.TrasferClientV2 (...)
166+ tc = globus_sdk.experimental.TransferClientV2 (...)
162167 tc.delete_tunnel(tunnel_id)
163168
164169 .. tab-item:: API Info
165170
166171 ``DELETE /v2/tunnels/<tunnel_id>``
167172 """
168- log .debug (f"TransferClientV2 .delete_tunnel({ tunnel_id } )" )
173+ log .debug (f"{ self . __class__ . __name__ } .delete_tunnel({ tunnel_id } )" )
169174 r = self .delete (f"/v2/tunnels/{ tunnel_id } " )
170175 return r
171176
@@ -186,14 +191,14 @@ def list_tunnels(
186191
187192 .. code-block:: python
188193
189- tc = globus_sdk.experimental.TrasferClientV2 (...)
194+ tc = globus_sdk.experimental.TransferClientV2 (...)
190195 tc.list_tunnels(tunnel_id)
191196
192197 .. tab-item:: API Info
193198
194199 ``GET /v2/tunnels/``
195200 """
196- log .debug (f"TransferClientV2 .list_tunnels({ query_params } )" )
201+ log .debug (f"{ self . __class__ . __name__ } .list_tunnels({ query_params } )" )
197202 r = self .get ("/v2/tunnels" , query_params = query_params )
198203 return IterableJSONAPIResponse (r )
199204
@@ -214,15 +219,17 @@ def get_tunnel_events(
214219
215220 .. code-block:: python
216221
217- tc = globus_sdk.experimental.TrasferClientV2 (...)
222+ tc = globus_sdk.experimental.TransferClientV2 (...)
218223 result = tc.get_tunnel_events(tunnel_id)
219224 print(result["data"])
220225
221226 .. tab-item:: API Info
222227
223228 ``GET /v2/tunnels/<tunnel_id>/events``
224229 """
225- log .debug (f"TransferClientV2.get_tunnel_events({ tunnel_id } , { query_params } )" )
230+ log .debug (
231+ f"{ self .__class__ .__name__ } .get_tunnel_events({ tunnel_id } , { query_params } )"
232+ )
226233 r = self .get (f"/v2/tunnels/{ tunnel_id } /events" , query_params = query_params )
227234 return IterableJSONAPIResponse (r )
228235
@@ -247,15 +254,16 @@ def get_stream_access_point(
247254
248255 .. code-block:: python
249256
250- tc = globus_sdk.experimental.TrasferClientV2 (...)
257+ tc = globus_sdk.experimental.TransferClientV2 (...)
251258 tc.get_stream_access_point(stream_ap_id)
252259
253260 .. tab-item:: API Info
254261
255262 ``GET /v2/stream_access_points/<stream_ap_id>``
256263 """
257264 log .debug (
258- f"TransferClientV2.get_stream_access_point({ stream_ap_id } , { query_params } )"
265+ f"{ self .__class__ .__name__ } ."
266+ f"get_stream_access_point({ stream_ap_id } , { query_params } )"
259267 )
260268 r = self .get (
261269 f"/v2/stream_access_points/{ stream_ap_id } " , query_params = query_params
@@ -280,13 +288,157 @@ def list_stream_access_points(
280288
281289 .. code-block:: python
282290
283- tc = globus_sdk.experimental.TrasferClientV2 (...)
291+ tc = globus_sdk.experimental.TransferClientV2 (...)
284292 tc.list_stream_access_points()
285293
286294 .. tab-item:: API Info
287295
288296 ``GET /v2/stream_access_points``
289297 """
290- log .debug (f"TransferClientV2.list_stream_access_points({ query_params } )" )
298+ log .debug (
299+ f"{ self .__class__ .__name__ } .list_stream_access_points({ query_params } )"
300+ )
291301 r = self .get ("/v2/stream_access_points" , query_params = query_params )
292302 return IterableJSONAPIResponse (r )
303+
304+ def create_bookmark (
305+ self , data : dict [str , t .Any ] | BookmarkCreateDocument
306+ ) -> response .GlobusHTTPResponse :
307+ """
308+ :param data: Parameters for bookmark creation
309+
310+ .. tab-set::
311+
312+ .. tab-item:: Example Usage
313+
314+ .. code-block:: python
315+
316+ tc = globus_sdk.experimental.TransferClientV2(...)
317+ data = globus_sdk.experimental.BookmarkCreateDocument(...)
318+ result = tc.create_bookmark(data)
319+ print(result["data"]["id"])
320+
321+ .. tab-item:: API Info
322+
323+ ``POST /v2/bookmarks``
324+ """
325+ log .debug (f"{ self .__class__ .__name__ } .create_bookmark(...)" )
326+ r = self .post ("/v2/bookmarks" , data = data )
327+ return r
328+
329+ def update_bookmark (
330+ self ,
331+ bookmark_id : uuid .UUID | str ,
332+ update_document : dict [str , t .Any ] | BookmarkUpdateDocument ,
333+ ) -> response .GlobusHTTPResponse :
334+ r"""
335+ :param bookmark_id: The ID of the Bookmark.
336+ :param update_document: The document that will be sent to the patch API.
337+
338+ .. tab-set::
339+
340+ .. tab-item:: Example Usage
341+
342+ .. code-block:: python
343+
344+ tc = globus_sdk.experimental.TransferClientV2(...)
345+ data = globus_sdk.experimental.BookmarkUpdateDocument(...)
346+ result = tc.update_bookmark(bookmark_id, data)
347+ print(result["data"])
348+
349+ .. tab-item:: API Info
350+
351+ ``PATCH /v2/bookmarks/<bookmark_id>``
352+ """
353+ log .debug (
354+ f"{ self .__class__ .__name__ } ."
355+ f"update_bookmark({ bookmark_id } , { update_document } )"
356+ )
357+ r = self .patch (f"/v2/bookmarks/{ bookmark_id } " , data = update_document )
358+ return r
359+
360+ def get_bookmark (
361+ self ,
362+ bookmark_id : uuid .UUID | str ,
363+ * ,
364+ query_params : dict [str , t .Any ] | None = None ,
365+ ) -> response .GlobusHTTPResponse :
366+ """
367+ :param bookmark_id: The ID of the Bookmark for which we are fetching details.
368+ :param query_params: Any additional parameters will be passed through
369+ as request parameters on the URL.
370+
371+ .. tab-set::
372+
373+ .. tab-item:: Example Usage
374+
375+ .. code-block:: python
376+
377+ tc = globus_sdk.experimental.TransferClientV2(...)
378+ query_params = {"include": "collection"}
379+ result = tc.get_bookmark(bookmark_id, query_params)
380+ print(result["data"])
381+
382+ .. tab-item:: API Info
383+
384+ ``GET /v2/bookmarks/<bookmark_id>``
385+ """
386+ log .debug (
387+ f"{ self .__class__ .__name__ } .get_bookmark({ bookmark_id } , { query_params } )"
388+ )
389+ r = self .get (f"/v2/bookmarks/{ bookmark_id } " , query_params = query_params )
390+ return r
391+
392+ def delete_bookmark (
393+ self ,
394+ bookmark_id : uuid .UUID | str ,
395+ ) -> response .GlobusHTTPResponse :
396+ """
397+ :param bookmark_id: The ID of the Bookmark to be deleted.
398+
399+ .. tab-set::
400+
401+ .. tab-item:: Example Usage
402+
403+ .. code-block:: python
404+
405+ tc = globus_sdk.experimental.TransferClientV2(...)
406+ tc.delete_bookmark(bookmark_id)
407+
408+ .. tab-item:: API Info
409+
410+ ``DELETE /v2/bookmarks/<bookmark_id>``
411+ """
412+ log .debug (f"{ self .__class__ .__name__ } .delete_bookmark({ bookmark_id } )" )
413+ r = self .delete (f"/v2/bookmarks/{ bookmark_id } " )
414+ return r
415+
416+ def list_bookmarks (
417+ self ,
418+ * ,
419+ query_params : dict [str , t .Any ] | None = None ,
420+ ) -> IterableJSONAPIResponse :
421+ """
422+ :param query_params: Any additional parameters will be passed through
423+ as request parameters on the URL.
424+
425+ This will list all Bookmarks created by the authenticated user's primary
426+ and linked identities.
427+
428+ .. tab-set::
429+
430+ .. tab-item:: Example Usage
431+
432+ .. code-block:: python
433+
434+ tc = globus_sdk.experimental.TransferClientV2(...)
435+ query_params = {"include": "collection"}
436+ tc.list_bookmarks(query_params)
437+
438+ .. tab-item:: API Info
439+
440+ ``GET /v2/bookmarks``
441+ """
442+ log .debug (f"{ self .__class__ .__name__ } .list_bookmarks({ query_params } )" )
443+ r = self .get ("/v2/bookmarks" , query_params = query_params )
444+ return IterableJSONAPIResponse (r )
0 commit comments