globus-cli 3.24.0__tar.gz → 3.25.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. {globus-cli-3.24.0/src/globus_cli.egg-info → globus-cli-3.25.0}/PKG-INFO +4 -4
  2. {globus-cli-3.24.0 → globus-cli-3.25.0}/pyproject.toml +3 -3
  3. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/activate.py +4 -4
  4. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/create.py +1 -3
  5. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/list.py +3 -3
  6. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/create.py +10 -0
  7. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/show.py +1 -0
  8. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +3 -0
  9. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/_common.py +68 -0
  10. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/__init__.py +14 -0
  11. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/_common.py +17 -0
  12. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/create.py +59 -0
  13. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/delete.py +25 -0
  14. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/list.py +37 -0
  15. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/show.py +27 -0
  16. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +1 -1
  17. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/show.py +22 -0
  18. globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/update.py +244 -0
  19. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/ls.py +4 -4
  20. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/create.py +8 -26
  21. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/transfer.py +1 -1
  22. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/constants.py +1 -0
  23. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/__init__.py +1 -0
  24. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/exception_handling/__init__.py +1 -0
  25. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/exception_handling/hooks.py +21 -17
  26. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/auth_flows.py +55 -5
  27. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/client_login.py +1 -0
  28. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/manager.py +5 -3
  29. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/tokenstore.py +2 -4
  30. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/commands.py +1 -0
  31. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/nullable.py +23 -0
  32. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/id_args.py +1 -0
  33. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +4 -1
  34. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/reflect.py +1 -0
  35. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/auth.py +2 -4
  36. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/errors.py +3 -3
  37. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/auth.py +1 -2
  38. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/primitive.py +14 -8
  39. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/server_timing.py +1 -2
  40. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/types.py +1 -0
  41. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/utils.py +90 -0
  42. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/version.py +1 -1
  43. {globus-cli-3.24.0 → globus-cli-3.25.0/src/globus_cli.egg-info}/PKG-INFO +4 -4
  44. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/SOURCES.txt +9 -0
  45. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/requires.txt +3 -3
  46. {globus-cli-3.24.0 → globus-cli-3.25.0}/LICENSE +0 -0
  47. {globus-cli-3.24.0 → globus-cli-3.25.0}/README.rst +0 -0
  48. {globus-cli-3.24.0 → globus-cli-3.25.0}/setup.cfg +0 -0
  49. {globus-cli-3.24.0 → globus-cli-3.25.0}/setup.py +0 -0
  50. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/__init__.py +0 -0
  51. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/__main__.py +0 -0
  52. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/_warnings.py +0 -0
  53. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/__init__.py +0 -0
  54. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/_common.py +0 -0
  55. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/api.py +0 -0
  56. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  57. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
  58. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/create.py +0 -0
  59. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
  60. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/list.py +0 -0
  61. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
  62. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/show.py +0 -0
  63. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
  64. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/__init__.py +0 -0
  65. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/_common.py +0 -0
  66. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
  67. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/create/guest.py +0 -0
  68. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
  69. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/delete.py +0 -0
  70. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/list.py +0 -0
  71. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/show.py +0 -0
  72. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/update.py +0 -0
  73. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/delete.py +0 -0
  74. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/__init__.py +0 -0
  75. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
  76. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/deactivate.py +0 -0
  77. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
  78. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/is_activated.py +0 -0
  79. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
  80. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  81. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  82. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  83. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
  84. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  85. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  86. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  87. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
  88. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  89. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  90. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
  91. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  92. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  93. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  94. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/search.py +0 -0
  95. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
  96. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/_common.py +0 -0
  97. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/add.py +0 -0
  98. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/delete.py +0 -0
  99. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/show.py +0 -0
  100. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/update.py +0 -0
  101. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
  102. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/show.py +0 -0
  103. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  104. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  105. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/update.py +0 -0
  106. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  107. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  108. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  109. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  110. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  111. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
  112. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  113. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
  114. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  115. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  116. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  117. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/__init__.py +0 -0
  118. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/_common.py +0 -0
  119. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/delete.py +0 -0
  120. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/list.py +0 -0
  121. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  122. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  123. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
  124. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/list.py +0 -0
  125. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/resume.py +0 -0
  126. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/show.py +0 -0
  127. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  128. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  129. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/update.py +0 -0
  130. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/start.py +0 -0
  131. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/update.py +0 -0
  132. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/__init__.py +0 -0
  133. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  134. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
  135. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
  136. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/mapped.py +0 -0
  137. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
  138. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  139. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/update/guest.py +0 -0
  140. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/update/mapped.py +0 -0
  141. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
  142. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/get_identities.py +0 -0
  143. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/__init__.py +0 -0
  144. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/_common.py +0 -0
  145. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/create.py +0 -0
  146. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/delete.py +0 -0
  147. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  148. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
  149. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
  150. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
  151. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/join.py +0 -0
  152. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/leave.py +0 -0
  153. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/list.py +0 -0
  154. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
  155. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/add.py +0 -0
  156. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/approve.py +0 -0
  157. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/invite.py +0 -0
  158. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/list.py +0 -0
  159. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/reject.py +0 -0
  160. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/remove.py +0 -0
  161. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/set_policies.py +0 -0
  162. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/show.py +0 -0
  163. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/update.py +0 -0
  164. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/list_commands.py +0 -0
  165. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/login.py +0 -0
  166. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/logout.py +0 -0
  167. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/mkdir.py +0 -0
  168. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/rename.py +0 -0
  169. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/rm.py +0 -0
  170. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/__init__.py +0 -0
  171. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/_common.py +0 -0
  172. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  173. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
  174. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/create.py +0 -0
  175. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/delete.py +0 -0
  176. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/list.py +0 -0
  177. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  178. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  179. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
  180. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/show.py +0 -0
  181. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/ingest.py +0 -0
  182. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/query.py +0 -0
  183. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  184. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
  185. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/subject/show.py +0 -0
  186. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
  187. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/task/list.py +0 -0
  188. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/task/show.py +0 -0
  189. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/__init__.py +0 -0
  190. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/consent.py +0 -0
  191. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/show.py +0 -0
  192. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/update.py +0 -0
  193. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/__init__.py +0 -0
  194. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/_common.py +0 -0
  195. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/cancel.py +0 -0
  196. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/event_list.py +0 -0
  197. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  198. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/list.py +0 -0
  199. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/pause_info.py +0 -0
  200. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/show.py +0 -0
  201. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/update.py +0 -0
  202. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/wait.py +0 -0
  203. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/__init__.py +0 -0
  204. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/_common.py +0 -0
  205. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
  206. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/create/transfer.py +0 -0
  207. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/delete.py +0 -0
  208. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/list.py +0 -0
  209. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/pause.py +0 -0
  210. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/resume.py +0 -0
  211. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/show.py +0 -0
  212. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/update.py +0 -0
  213. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/version.py +0 -0
  214. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/whoami.py +0 -0
  215. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/endpointish.py +0 -0
  216. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/entity_type.py +0 -0
  217. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/errors.py +0 -0
  218. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/exception_handling/registry.py +0 -0
  219. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/globus_cli_flake8.py +0 -0
  220. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/__init__.py +0 -0
  221. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/_old_config.py +0 -0
  222. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/context.py +0 -0
  223. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/errors.py +0 -0
  224. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/local_server.py +0 -0
  225. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/scopes.py +0 -0
  226. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/utils.py +0 -0
  227. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/__init__.py +0 -0
  228. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/command_state.py +0 -0
  229. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/mutex_group.py +0 -0
  230. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_classes.py +0 -0
  231. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
  232. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
  233. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
  234. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
  235. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
  236. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/location.py +0 -0
  237. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
  238. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/task_path.py +0 -0
  239. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
  240. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
  241. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/__init__.py +0 -0
  242. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
  243. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shell_completion.py +0 -0
  244. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/__init__.py +0 -0
  245. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/gcs.py +0 -0
  246. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/__init__.py +0 -0
  247. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/activation.py +0 -0
  248. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/client.py +0 -0
  249. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/data.py +0 -0
  250. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/delegate_proxy.py +0 -0
  251. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  252. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/__init__.py +0 -0
  253. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/awscli_text.py +0 -0
  254. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/context.py +0 -0
  255. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/field.py +0 -0
  256. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
  257. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/base.py +0 -0
  258. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/compound.py +0 -0
  259. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/printer.py +0 -0
  260. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  261. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
  262. {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: globus-cli
3
- Version: 3.24.0
3
+ Version: 3.25.0
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
6
  Project-URL: homepage, https://github.com/globus/globus-cli
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
18
18
  Requires-Python: >=3.8
19
19
  Description-Content-Type: text/x-rst
20
20
  License-File: LICENSE
21
- Requires-Dist: globus-sdk==3.34.0
21
+ Requires-Dist: globus-sdk==3.37.0
22
22
  Requires-Dist: click<9,>=8.1.4
23
23
  Requires-Dist: jmespath==1.0.1
24
24
  Requires-Dist: packaging>=17.0
@@ -31,8 +31,8 @@ Requires-Dist: pytest>=7; extra == "test"
31
31
  Requires-Dist: pytest-xdist<4; extra == "test"
32
32
  Requires-Dist: pytest-timeout<3; extra == "test"
33
33
  Requires-Dist: click-type-test==0.0.7; python_version >= "3.10" and extra == "test"
34
- Requires-Dist: responses==0.24.1; extra == "test"
35
- Requires-Dist: ruamel.yaml==0.18.5; extra == "test"
34
+ Requires-Dist: responses==0.25.0; extra == "test"
35
+ Requires-Dist: ruamel.yaml==0.18.6; extra == "test"
36
36
  Requires-Dist: setuptools; python_version >= "3.12" and extra == "test"
37
37
 
38
38
  .. image:: https://github.com/globus/globus-cli/workflows/build/badge.svg?event=push
@@ -28,7 +28,7 @@ classifiers = [
28
28
  ]
29
29
  requires-python = ">=3.8"
30
30
  dependencies = [
31
- "globus-sdk==3.34.0",
31
+ "globus-sdk==3.37.0",
32
32
  "click>=8.1.4,<9",
33
33
  "jmespath==1.0.1",
34
34
  "packaging>=17.0",
@@ -50,9 +50,9 @@ test = [
50
50
  "pytest-xdist<4",
51
51
  "pytest-timeout<3",
52
52
  "click-type-test==0.0.7;python_version>='3.10'",
53
- "responses==0.24.1",
53
+ "responses==0.25.0",
54
54
  # loading test fixture data
55
- "ruamel.yaml==0.18.5",
55
+ "ruamel.yaml==0.18.6",
56
56
  # Python 3.12 needs setuptools.
57
57
  "setuptools;python_version>='3.12'",
58
58
  ]
@@ -37,7 +37,7 @@ from globus_cli.termio import TextMode, display
37
37
  @click.option(
38
38
  "--myproxy-username",
39
39
  "-U",
40
- help=("Give a username to use with --myproxy"),
40
+ help="Give a username to use with --myproxy",
41
41
  )
42
42
  @click.option("--myproxy-password", "-P", hidden=True)
43
43
  @click.option(
@@ -171,9 +171,9 @@ def endpoint_activate(
171
171
 
172
172
  # check if endpoint is already activated unless --force
173
173
  if not force:
174
- res: (
175
- dict[str, str] | globus_sdk.GlobusHTTPResponse
176
- ) = transfer_client.endpoint_autoactivate(endpoint_id, if_expires_in=60)
174
+ res: dict[str, str] | globus_sdk.GlobusHTTPResponse = (
175
+ transfer_client.endpoint_autoactivate(endpoint_id, if_expires_in=60)
176
+ )
177
177
 
178
178
  if "AlreadyActivated" == res["code"]:
179
179
  display(
@@ -117,9 +117,7 @@ For GCS, use the globus-connect-server CLI from your Endpoint."""
117
117
  endpoint_type = (
118
118
  EntityType.GCP_MAPPED
119
119
  if personal
120
- else EntityType.GCSV4_HOST
121
- if server
122
- else EntityType.GCSV4_SHARE
120
+ else EntityType.GCSV4_HOST if server else EntityType.GCSV4_SHARE
123
121
  )
124
122
 
125
123
  # build options into a dict for kwarg-expansion
@@ -38,9 +38,9 @@ def server_list(login_manager: LoginManager, *, endpoint_id: uuid.UUID) -> None:
38
38
  # raises usage error on shares for us
39
39
  endpoint_w_server_list = transfer_client.get_endpoint_w_server_list(endpoint_id)
40
40
  endpoint = endpoint_w_server_list[0]
41
- server_list: (
42
- str | dict[str, t.Any] | globus_sdk.GlobusHTTPResponse
43
- ) = endpoint_w_server_list[1]
41
+ server_list: str | dict[str, t.Any] | globus_sdk.GlobusHTTPResponse = (
42
+ endpoint_w_server_list[1]
43
+ )
44
44
 
45
45
  if server_list == "S3": # not GCS -- this is an S3 endpoint
46
46
  server_list = {"s3_url": endpoint["s3_url"]}
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import uuid
4
+
3
5
  import click
4
6
 
5
7
  from globus_cli.commands.flows._common import (
@@ -36,6 +38,11 @@ ROLE_TYPES = ("flow_viewer", "flow_starter", "flow_administrator", "flow_owner")
36
38
  @starters_option
37
39
  @viewers_option
38
40
  @keywords_option
41
+ @click.option(
42
+ "--subscription-id",
43
+ help="Set a subscription_id for the flow, marking it as subscription tier.",
44
+ type=click.UUID,
45
+ )
39
46
  @LoginManager.requires_login("flows")
40
47
  def create_command(
41
48
  login_manager: LoginManager,
@@ -49,6 +56,7 @@ def create_command(
49
56
  starters: tuple[str, ...],
50
57
  viewers: tuple[str, ...],
51
58
  keywords: tuple[str, ...],
59
+ subscription_id: uuid.UUID | None,
52
60
  ) -> None:
53
61
  """
54
62
  Create a new flow.
@@ -98,6 +106,7 @@ def create_command(
98
106
  flow_starters=list(starters),
99
107
  flow_administrators=list(administrators),
100
108
  keywords=list(keywords),
109
+ subscription_id=subscription_id,
101
110
  )
102
111
 
103
112
  # Configure formatters for principals
@@ -114,6 +123,7 @@ def create_command(
114
123
  Field("Description", "description"),
115
124
  Field("Keywords", "keywords", formatter=formatters.ArrayFormatter()),
116
125
  Field("Owner", "flow_owner", formatter=principal_formatter),
126
+ Field("Subscription ID", "subscription_id"),
117
127
  Field("Created At", "created_at", formatter=formatters.Date),
118
128
  Field("Updated At", "updated_at", formatter=formatters.Date),
119
129
  Field(
@@ -30,6 +30,7 @@ def show_command(login_manager: LoginManager, *, flow_id: uuid.UUID) -> None:
30
30
  Field("Title", "title"),
31
31
  Field("Keywords", "keywords", formatter=formatters.ArrayFormatter()),
32
32
  Field("Owner", "flow_owner", formatter=principal_formatter),
33
+ Field("Subscription ID", "subscription_id"),
33
34
  Field("Created At", "created_at", formatter=formatters.Date),
34
35
  Field("Updated At", "updated_at", formatter=formatters.Date),
35
36
  Field(
@@ -4,7 +4,10 @@ from globus_cli.parsing import group
4
4
  @group(
5
5
  "endpoint",
6
6
  lazy_subcommands={
7
+ "role": (".role", "role_command"),
7
8
  "set-subscription-id": (".set_subscription_id", "set_subscription_id_command"),
9
+ "show": (".show", "show_command"),
10
+ "update": (".update", "update_command"),
8
11
  },
9
12
  )
10
13
  def endpoint_command() -> None:
@@ -0,0 +1,68 @@
1
+ from __future__ import annotations
2
+
3
+ import typing as t
4
+
5
+ from globus_cli.termio import Field, formatters
6
+ from globus_cli.termio.formatters import FieldFormatter
7
+
8
+
9
+ class NetworkUseFormatter(FieldFormatter[t.Union[str, t.Tuple[int, int]]]):
10
+ """
11
+ Custom Formatter to make network use associated fields better grouped.
12
+
13
+ Data is expected to be passed as a list of three elements:
14
+ [network_use, preferred, max]
15
+
16
+ Examples:
17
+ ("custom", 1, 2) -> "Preferred: 1, Max: 2"
18
+ ("aggressive", None, None) -> "aggressive"
19
+ ("normal", None, 3) -> "normal"
20
+ """
21
+
22
+ def parse(self, value: t.Any) -> str | tuple[int, int]:
23
+ if isinstance(value, list) and len(value) == 3:
24
+ if value[0] == "custom":
25
+ if isinstance(value[1], int) and isinstance(value[2], int):
26
+ return value[1], value[2]
27
+ elif isinstance(value[0], str):
28
+ return value[0]
29
+
30
+ raise ValueError(
31
+ f"Invalid network use data shape. Expected [str, int, int]; found {value}."
32
+ )
33
+
34
+ def render(self, value: str | tuple[int, int]) -> str:
35
+ if isinstance(value, tuple):
36
+ return f"Preferred: {value[0]}, Max: {value[1]}"
37
+ return value
38
+
39
+
40
+ # https://docs.globus.org/globus-connect-server/v5.4/api/schemas/Endpoint_1_2_0_schema/
41
+ GCS_ENDPOINT_FIELDS = [
42
+ Field("Endpoint ID", "id"),
43
+ Field("Display Name", "display_name"),
44
+ Field("Allow UDT", "allow_udt", formatter=formatters.FuzzyBool),
45
+ Field("Contact Email", "contact_email"),
46
+ Field("Contact Info", "contact_info"),
47
+ Field("Department", "department"),
48
+ Field("Description", "description"),
49
+ Field("Earliest Last Access", "earliest_last_access", formatter=formatters.Date),
50
+ Field("GCS Manager URL", "gcs_manager_url"),
51
+ Field("GridFTP Control Channel Port", "gridftp_control_channel_port"),
52
+ Field("Info Link", "info_link"),
53
+ Field("Keywords", "keywords", formatter=formatters.Array),
54
+ Field("Network Use", "network_use"),
55
+ Field(
56
+ "Network Use (Concurrency)",
57
+ "[network_use, preferred_concurrency, max_concurrency]",
58
+ formatter=NetworkUseFormatter(),
59
+ ),
60
+ Field(
61
+ "Network Use (Parallelism)",
62
+ "[network_use, preferred_parallelism, max_parallelism]",
63
+ formatter=NetworkUseFormatter(),
64
+ ),
65
+ Field("Organization", "organization"),
66
+ Field("Public", "public", formatter=formatters.FuzzyBool),
67
+ Field("Subscription ID", "subscription_id"),
68
+ ]
@@ -0,0 +1,14 @@
1
+ from globus_cli.parsing import group
2
+
3
+
4
+ @group(
5
+ "role",
6
+ lazy_subcommands={
7
+ "create": (".create", "create_command"),
8
+ "delete": (".delete", "delete_command"),
9
+ "list": (".list", "list_command"),
10
+ "show": (".show", "show_command"),
11
+ },
12
+ )
13
+ def role_command() -> None:
14
+ """Manage Globus Connect Server (GCS) roles"""
@@ -0,0 +1,17 @@
1
+ from __future__ import annotations
2
+
3
+ import typing as t
4
+
5
+ from globus_cli.termio import Field
6
+ from globus_cli.termio.formatters.auth import PrincipalURNFormatter
7
+
8
+ if t.TYPE_CHECKING:
9
+ from globus_cli.services.auth import CustomAuthClient
10
+
11
+
12
+ def role_fields(auth_client: CustomAuthClient) -> list[Field]:
13
+ return [
14
+ Field("ID", "id"),
15
+ Field("Role", "role"),
16
+ Field("Principal", "principal", formatter=PrincipalURNFormatter(auth_client)),
17
+ ]
@@ -0,0 +1,59 @@
1
+ from __future__ import annotations
2
+
3
+ import typing as t
4
+ import uuid
5
+
6
+ import click
7
+ import globus_sdk
8
+
9
+ from globus_cli.commands.gcs.endpoint.role._common import role_fields
10
+ from globus_cli.login_manager import LoginManager
11
+ from globus_cli.parsing import command, endpoint_id_arg
12
+ from globus_cli.termio import TextMode, display
13
+ from globus_cli.utils import resolve_principal_urn
14
+
15
+ _VALID_ROLES = t.Literal["administrator", "activity_manager", "activity_monitor"]
16
+
17
+
18
+ @command("create")
19
+ @endpoint_id_arg
20
+ @click.argument("ROLE", type=click.Choice(t.get_args(_VALID_ROLES)), metavar="ROLE")
21
+ @click.argument("PRINCIPAL", type=str)
22
+ @click.option(
23
+ "--principal-type",
24
+ type=click.Choice(["identity", "group"]),
25
+ help="Qualifier to specify what type of principal (identity or group) is provided.",
26
+ )
27
+ @LoginManager.requires_login("transfer")
28
+ def create_command(
29
+ login_manager: LoginManager,
30
+ *,
31
+ endpoint_id: uuid.UUID,
32
+ role: _VALID_ROLES,
33
+ principal: str,
34
+ principal_type: t.Literal["identity", "group"] | None,
35
+ ) -> None:
36
+ """
37
+ Create a role on a GCS Endpoint.
38
+
39
+ ROLE must be one of "administrator", "activity_manager", or "activity_monitor".
40
+
41
+ PRINCIPAL must be a username, UUID, or URN associated with a globus identity or
42
+ group.
43
+ If UUID, use `--principal-type` to specify the type (defaults to "identity").
44
+ """
45
+ gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
46
+ auth_client = login_manager.get_auth_client()
47
+
48
+ # Format the principal into a URN
49
+ principal_urn = resolve_principal_urn(
50
+ auth_client=auth_client,
51
+ principal_type=principal_type,
52
+ principal=principal,
53
+ )
54
+
55
+ res = gcs_client.create_role(
56
+ globus_sdk.GCSRoleDocument(role=role, principal=principal_urn)
57
+ )
58
+
59
+ display(res, text_mode=TextMode.text_record, fields=role_fields(auth_client))
@@ -0,0 +1,25 @@
1
+ import uuid
2
+
3
+ import click
4
+
5
+ from globus_cli.login_manager import LoginManager
6
+ from globus_cli.parsing import command, endpoint_id_arg
7
+ from globus_cli.termio import TextMode, display
8
+
9
+
10
+ @command("delete")
11
+ @endpoint_id_arg
12
+ @click.argument("ROLE_ID", type=click.UUID)
13
+ @LoginManager.requires_login("transfer")
14
+ def delete_command(
15
+ login_manager: LoginManager,
16
+ *,
17
+ endpoint_id: uuid.UUID,
18
+ role_id: uuid.UUID,
19
+ ) -> None:
20
+ """Delete a role from a GCS Endpoint."""
21
+ gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
22
+
23
+ res = gcs_client.delete_role(role_id)
24
+
25
+ display(res, text_mode=TextMode.text_raw, response_key="message")
@@ -0,0 +1,37 @@
1
+ import uuid
2
+
3
+ import click
4
+ from globus_sdk.paging import Paginator
5
+
6
+ from globus_cli.commands.gcs.endpoint.role._common import role_fields
7
+ from globus_cli.login_manager import LoginManager
8
+ from globus_cli.parsing import command, endpoint_id_arg
9
+ from globus_cli.termio import display
10
+ from globus_cli.utils import PagingWrapper
11
+
12
+
13
+ @command("list")
14
+ @endpoint_id_arg
15
+ @click.option(
16
+ "--all-roles", is_flag=True, help="Show all roles, not just yours.", default=False
17
+ )
18
+ @LoginManager.requires_login("transfer")
19
+ def list_command(
20
+ login_manager: LoginManager,
21
+ *,
22
+ endpoint_id: uuid.UUID,
23
+ all_roles: bool,
24
+ ) -> None:
25
+ """List all roles on a GCS Endpoint associated with you."""
26
+ gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
27
+ auth_client = login_manager.get_auth_client()
28
+
29
+ paginator = Paginator.wrap(gcs_client.get_role_list)
30
+ paginated_call = paginator(include="all_roles") if all_roles else paginator()
31
+ paging_wrapper = PagingWrapper(paginated_call.items(), json_conversion_key="DATA")
32
+
33
+ display(
34
+ paging_wrapper,
35
+ fields=role_fields(auth_client),
36
+ json_converter=paging_wrapper.json_converter,
37
+ )
@@ -0,0 +1,27 @@
1
+ import uuid
2
+
3
+ import click
4
+
5
+ from globus_cli.commands.gcs.endpoint.role._common import role_fields
6
+ from globus_cli.login_manager import LoginManager
7
+ from globus_cli.parsing import command, endpoint_id_arg
8
+ from globus_cli.termio import TextMode, display
9
+
10
+
11
+ @command("show")
12
+ @endpoint_id_arg
13
+ @click.argument("ROLE_ID", type=click.UUID)
14
+ @LoginManager.requires_login("transfer")
15
+ def show_command(
16
+ login_manager: LoginManager,
17
+ *,
18
+ endpoint_id: uuid.UUID,
19
+ role_id: uuid.UUID,
20
+ ) -> None:
21
+ """Describe a particular role on a GCS Endpoint."""
22
+ gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
23
+ auth_client = login_manager.get_auth_client()
24
+
25
+ res = gcs_client.get_role(role_id)
26
+
27
+ display(res, text_mode=TextMode.text_record, fields=role_fields(auth_client))
@@ -35,7 +35,7 @@ class GCSSubscriptionIdType(click.ParamType):
35
35
  self.fail(msg, param, ctx)
36
36
 
37
37
 
38
- @command("set-subscription-id", short_help="Update an endpoint's subscription")
38
+ @command("set-subscription-id", short_help="Set a GCS Endpoint's subscription.")
39
39
  @endpoint_id_arg
40
40
  @click.argument("SUBSCRIPTION_ID", type=GCSSubscriptionIdType())
41
41
  @LoginManager.requires_login("transfer")
@@ -0,0 +1,22 @@
1
+ import uuid
2
+
3
+ from globus_cli.commands.gcs.endpoint._common import GCS_ENDPOINT_FIELDS
4
+ from globus_cli.login_manager import LoginManager
5
+ from globus_cli.parsing import command, endpoint_id_arg
6
+ from globus_cli.termio import TextMode, display
7
+
8
+
9
+ @command("show")
10
+ @endpoint_id_arg
11
+ @LoginManager.requires_login("transfer")
12
+ def show_command(
13
+ login_manager: LoginManager,
14
+ *,
15
+ endpoint_id: uuid.UUID,
16
+ ) -> None:
17
+ """Display information about a particular GCS Endpoint."""
18
+ gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
19
+
20
+ res = gcs_client.get_endpoint()
21
+
22
+ display(res, text_mode=TextMode.text_record, fields=GCS_ENDPOINT_FIELDS)