globus-cli 3.35.2__tar.gz → 3.37.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 (290) hide show
  1. {globus_cli-3.35.2/src/globus_cli.egg-info → globus_cli-3.37.0}/PKG-INFO +4 -5
  2. {globus_cli-3.35.2 → globus_cli-3.37.0}/pyproject.toml +17 -12
  3. globus_cli-3.37.0/src/globus_cli/commands/_removal_stub.py +26 -0
  4. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/__init__.py +1 -0
  5. globus_cli-3.37.0/src/globus_cli/commands/collection/role/__init__.py +13 -0
  6. globus_cli-3.37.0/src/globus_cli/commands/collection/role/delete.py +23 -0
  7. globus_cli-3.37.0/src/globus_cli/commands/collection/role/list.py +40 -0
  8. globus_cli-3.37.0/src/globus_cli/commands/collection/role/show.py +37 -0
  9. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/delete.py +0 -1
  10. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/__init__.py +5 -5
  11. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/__init__.py +4 -0
  12. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/create/mapped.py +2 -1
  13. globus_cli-3.37.0/src/globus_cli/commands/gcp/set_subscription_admin_verified.py +53 -0
  14. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/update/guest.py +10 -2
  15. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/update/mapped.py +9 -1
  16. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +1 -7
  17. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/rm.py +0 -1
  18. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/transfer.py +0 -1
  19. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/__init__.py +4 -0
  20. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/shared_options/__init__.py +16 -0
  21. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/table_printer.py +1 -1
  22. globus_cli-3.37.0/src/globus_cli/termio/printers/unix_printer/_formatter.py +221 -0
  23. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/unix_printer/unix_printer.py +7 -4
  24. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/version.py +1 -1
  25. {globus_cli-3.35.2 → globus_cli-3.37.0/src/globus_cli.egg-info}/PKG-INFO +4 -5
  26. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli.egg-info/SOURCES.txt +7 -13
  27. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli.egg-info/requires.txt +2 -2
  28. globus_cli-3.35.2/setup.py +0 -3
  29. globus_cli-3.35.2/src/globus_cli/commands/endpoint/activate.py +0 -46
  30. globus_cli-3.35.2/src/globus_cli/commands/endpoint/create.py +0 -178
  31. globus_cli-3.35.2/src/globus_cli/commands/endpoint/deactivate.py +0 -24
  32. globus_cli-3.35.2/src/globus_cli/commands/endpoint/is_activated.py +0 -33
  33. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/__init__.py +0 -23
  34. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/_common.py +0 -97
  35. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/add.py +0 -67
  36. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/delete.py +0 -124
  37. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/list.py +0 -55
  38. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/show.py +0 -103
  39. globus_cli-3.35.2/src/globus_cli/commands/endpoint/server/update.py +0 -70
  40. globus_cli-3.35.2/src/globus_cli/termio/printers/unix_printer/awscli_text.py +0 -127
  41. {globus_cli-3.35.2 → globus_cli-3.37.0}/LICENSE +0 -0
  42. {globus_cli-3.35.2 → globus_cli-3.37.0}/README.rst +0 -0
  43. {globus_cli-3.35.2 → globus_cli-3.37.0}/setup.cfg +0 -0
  44. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/__init__.py +0 -0
  45. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/__main__.py +0 -0
  46. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/_click_compat.py +0 -0
  47. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/_warnings.py +0 -0
  48. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/__init__.py +0 -0
  49. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/_common.py +0 -0
  50. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/api.py +0 -0
  51. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  52. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
  53. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/create.py +0 -0
  54. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
  55. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/list.py +0 -0
  56. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
  57. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/bookmark/show.py +0 -0
  58. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
  59. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/_common.py +0 -0
  60. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
  61. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/create/guest.py +0 -0
  62. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
  63. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/delete.py +0 -0
  64. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/list.py +0 -0
  65. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/show.py +0 -0
  66. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/collection/update.py +0 -0
  67. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
  68. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
  69. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
  70. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  71. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  72. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  73. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
  74. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  75. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  76. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  77. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
  78. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  79. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  80. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
  81. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  82. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  83. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  84. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/search.py +0 -0
  85. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
  86. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/show.py +0 -0
  87. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  88. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  89. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/update.py +0 -0
  90. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  91. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  92. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  93. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  94. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  95. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
  96. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  97. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
  98. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  99. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  100. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  101. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/__init__.py +0 -0
  102. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/_common.py +0 -0
  103. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/create.py +0 -0
  104. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/delete.py +0 -0
  105. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/list.py +0 -0
  106. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  107. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  108. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
  109. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/list.py +0 -0
  110. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/resume.py +0 -0
  111. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/show.py +0 -0
  112. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  113. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  114. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/run/update.py +0 -0
  115. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/show.py +0 -0
  116. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/start.py +0 -0
  117. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/update.py +0 -0
  118. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/flows/validate.py +0 -0
  119. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  120. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
  121. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
  122. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
  123. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  124. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
  125. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +0 -0
  126. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/_common.py +0 -0
  127. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/role/__init__.py +0 -0
  128. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/role/_common.py +0 -0
  129. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/role/create.py +0 -0
  130. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/role/delete.py +0 -0
  131. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/role/list.py +0 -0
  132. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/role/show.py +0 -0
  133. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/show.py +0 -0
  134. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/gcs/endpoint/update.py +0 -0
  135. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/get_identities.py +0 -0
  136. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/__init__.py +0 -0
  137. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/_common.py +0 -0
  138. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/create.py +0 -0
  139. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/delete.py +0 -0
  140. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/get_by_subscription.py +0 -0
  141. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/get_subscription_info.py +0 -0
  142. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  143. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
  144. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
  145. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
  146. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/join.py +0 -0
  147. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/leave.py +0 -0
  148. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/list.py +0 -0
  149. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
  150. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/add.py +0 -0
  151. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/approve.py +0 -0
  152. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/invite.py +0 -0
  153. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/list.py +0 -0
  154. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/reject.py +0 -0
  155. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/member/remove.py +0 -0
  156. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/set_policies.py +0 -0
  157. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/show.py +0 -0
  158. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/group/update.py +0 -0
  159. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/list_commands.py +0 -0
  160. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/login.py +0 -0
  161. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/logout.py +0 -0
  162. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/ls.py +0 -0
  163. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/mkdir.py +0 -0
  164. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/rename.py +0 -0
  165. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/__init__.py +0 -0
  166. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/_common.py +0 -0
  167. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  168. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
  169. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/create.py +0 -0
  170. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/delete.py +0 -0
  171. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/list.py +0 -0
  172. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  173. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/role/create.py +0 -0
  174. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  175. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
  176. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/index/show.py +0 -0
  177. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/ingest.py +0 -0
  178. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/query.py +0 -0
  179. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  180. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
  181. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/subject/show.py +0 -0
  182. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
  183. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/task/list.py +0 -0
  184. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/search/task/show.py +0 -0
  185. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/session/__init__.py +0 -0
  186. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/session/consent.py +0 -0
  187. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/session/show.py +0 -0
  188. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/session/update.py +0 -0
  189. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/stat.py +0 -0
  190. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/__init__.py +0 -0
  191. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/_common.py +0 -0
  192. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/cancel.py +0 -0
  193. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/event_list.py +0 -0
  194. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  195. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/list.py +0 -0
  196. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/pause_info.py +0 -0
  197. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/show.py +0 -0
  198. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/update.py +0 -0
  199. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/task/wait.py +0 -0
  200. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/__init__.py +0 -0
  201. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/_common.py +0 -0
  202. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
  203. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/create/transfer.py +0 -0
  204. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/delete.py +0 -0
  205. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/list.py +0 -0
  206. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/pause.py +0 -0
  207. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/resume.py +0 -0
  208. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/timer/show.py +0 -0
  209. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/update.py +0 -0
  210. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/version.py +0 -0
  211. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/commands/whoami.py +0 -0
  212. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/constants.py +0 -0
  213. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/endpointish/__init__.py +0 -0
  214. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/endpointish/endpointish.py +0 -0
  215. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/endpointish/entity_type.py +0 -0
  216. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/endpointish/errors.py +0 -0
  217. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/__init__.py +0 -0
  218. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/__init__.py +0 -0
  219. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/auth_requirements.py +0 -0
  220. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/authapi_hooks.py +0 -0
  221. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/endpoint_types.py +0 -0
  222. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/flows_hooks.py +0 -0
  223. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/generic_hooks.py +0 -0
  224. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/search_hooks.py +0 -0
  225. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/hooks/transfer_hooks.py +0 -0
  226. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/messages.py +0 -0
  227. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/exception_handling/registry.py +0 -0
  228. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/globus_cli_flake8.py +0 -0
  229. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/__init__.py +0 -0
  230. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/_old_config.py +0 -0
  231. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/auth_flows.py +0 -0
  232. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/client_login.py +0 -0
  233. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/context.py +0 -0
  234. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/errors.py +0 -0
  235. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/local_server.py +0 -0
  236. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/manager.py +0 -0
  237. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/scopes.py +0 -0
  238. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/storage.py +0 -0
  239. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/login_manager/utils.py +0 -0
  240. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/command_state.py +0 -0
  241. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/commands.py +0 -0
  242. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/mutex_group.py +0 -0
  243. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_classes.py +0 -0
  244. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
  245. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
  246. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
  247. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/guest_activity_notify_param.py +0 -0
  248. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
  249. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
  250. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/location.py +0 -0
  251. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
  252. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/nullable.py +0 -0
  253. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/task_path.py +0 -0
  254. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
  255. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
  256. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
  257. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/shared_options/id_args.py +0 -0
  258. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -0
  259. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/parsing/shell_completion.py +0 -0
  260. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/reflect.py +0 -0
  261. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/__init__.py +0 -0
  262. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/auth.py +0 -0
  263. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/gcs.py +0 -0
  264. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/transfer/__init__.py +0 -0
  265. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/transfer/activation.py +0 -0
  266. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/transfer/client.py +0 -0
  267. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/transfer/data.py +0 -0
  268. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  269. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/__init__.py +0 -0
  270. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/_display.py +0 -0
  271. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/context.py +0 -0
  272. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/errors.py +0 -0
  273. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/field.py +0 -0
  274. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
  275. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/formatters/auth.py +0 -0
  276. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/formatters/base.py +0 -0
  277. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/formatters/compound.py +0 -0
  278. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/formatters/primitive.py +0 -0
  279. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/__init__.py +0 -0
  280. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/base.py +0 -0
  281. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/custom_printer.py +0 -0
  282. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/json_printer.py +0 -0
  283. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/record_printer.py +0 -0
  284. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/printers/unix_printer/__init__.py +0 -0
  285. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/termio/server_timing.py +0 -0
  286. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/types.py +0 -0
  287. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli/utils.py +0 -0
  288. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  289. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
  290. {globus_cli-3.35.2 → globus_cli-3.37.0}/src/globus_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: globus-cli
3
- Version: 3.35.2
3
+ Version: 3.37.0
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
6
  License-Expression: Apache-2.0
@@ -10,17 +10,16 @@ Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Operating System :: POSIX
12
12
  Classifier: Programming Language :: Python
13
- Classifier: Programming Language :: Python :: 3.8
14
13
  Classifier: Programming Language :: Python :: 3.9
15
14
  Classifier: Programming Language :: Python :: 3.10
16
15
  Classifier: Programming Language :: Python :: 3.11
17
16
  Classifier: Programming Language :: Python :: 3.12
18
17
  Classifier: Programming Language :: Python :: 3.13
19
- Requires-Python: >=3.8
18
+ Requires-Python: >=3.9
20
19
  Description-Content-Type: text/x-rst
21
20
  License-File: LICENSE
22
- Requires-Dist: globus-sdk==3.56.1
23
- Requires-Dist: click<9,>=8.1.4
21
+ Requires-Dist: globus-sdk==3.63.0
22
+ Requires-Dist: click<8.3,>=8.1.4
24
23
  Requires-Dist: jmespath==1.0.1
25
24
  Requires-Dist: packaging>=17.0
26
25
  Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
@@ -20,17 +20,16 @@ classifiers = [
20
20
  "Intended Audience :: Developers",
21
21
  "Operating System :: POSIX",
22
22
  "Programming Language :: Python",
23
- "Programming Language :: Python :: 3.8",
24
23
  "Programming Language :: Python :: 3.9",
25
24
  "Programming Language :: Python :: 3.10",
26
25
  "Programming Language :: Python :: 3.11",
27
26
  "Programming Language :: Python :: 3.12",
28
27
  "Programming Language :: Python :: 3.13",
29
28
  ]
30
- requires-python = ">=3.8"
29
+ requires-python = ">=3.9"
31
30
  dependencies = [
32
- "globus-sdk==3.56.1",
33
- "click>=8.1.4,<9",
31
+ "globus-sdk==3.63.0",
32
+ "click>=8.1.4,<8.3",
34
33
  "jmespath==1.0.1",
35
34
  "packaging>=17.0",
36
35
  "typing_extensions>=4.0;python_version<'3.11'",
@@ -48,33 +47,39 @@ globus = "globus_cli:main"
48
47
 
49
48
  [dependency-groups]
50
49
  coverage = [
51
- "coverage[toml]>=7"
50
+ "coverage[toml]>=7.10"
52
51
  ]
52
+ yaml = ["ruamel.yaml==0.18.15"]
53
53
  test = [
54
54
  {include-group = "coverage"},
55
+ {include-group = "yaml"}, # loading test fixture data
55
56
  "pytest>=7",
56
57
  "pytest-xdist<4",
57
58
  "pytest-timeout<3",
58
59
  "click-type-test==1.1.0;python_version>='3.10'",
59
- "responses==0.25.7",
60
- # loading test fixture data
61
- "ruamel.yaml==0.18.10",
60
+ "responses==0.25.8",
62
61
  ]
63
62
  test-mindeps = [
64
63
  {include-group = "test"},
65
- "click==8.1.4",
66
- "requests==2.32.3",
64
+ "click==8.1.8",
65
+ "requests==2.32.4",
67
66
  "pyjwt==2.0.0",
68
67
  "cryptography==3.3.1",
69
68
  "packaging==17.0",
70
69
  "typing_extensions==4.0",
71
70
  ]
72
71
  typing = [
73
- "mypy==1.15.0",
72
+ "mypy==1.18.1",
74
73
  "types-jwt",
75
74
  "types-requests",
76
75
  "types-jmespath",
77
76
  ]
77
+ check-project-metadata = [
78
+ "mddj==0.2.0",
79
+ {include-group = "yaml"},
80
+ "build",
81
+ "twine",
82
+ ]
78
83
  # `dev` is what's installed if you `make install`
79
84
  dev = [
80
85
  {include-group = "test"},
@@ -98,6 +103,7 @@ filterwarnings = [
98
103
 
99
104
  [tool.coverage.run]
100
105
  parallel = true
106
+ patch = ["subprocess"]
101
107
  source = ["globus_cli"]
102
108
  [tool.coverage.paths]
103
109
  source = [
@@ -145,5 +151,4 @@ disallow_untyped_defs = false
145
151
  disallow_incomplete_defs = false
146
152
  module = [
147
153
  "globus_cli.services.transfer.recursive_ls",
148
- "globus_cli.termio.printers.unix_printer.awscli_text",
149
154
  ]
@@ -0,0 +1,26 @@
1
+ from __future__ import annotations
2
+
3
+ import click
4
+
5
+ from globus_cli.parsing import command
6
+
7
+
8
+ @command(
9
+ hidden=True,
10
+ context_settings={"ignore_unknown_options": True},
11
+ disable_options=(
12
+ "format",
13
+ "map_http_status",
14
+ ),
15
+ )
16
+ @click.argument("UNKNOWN_ARG", nargs=-1)
17
+ def removal_stub_command(unknown_arg: tuple[str, ...]) -> None:
18
+ """This command has been removed from the Globus CLI."""
19
+ command_string = click.get_current_context().command_path
20
+ click.echo(
21
+ click.style(
22
+ f"`{command_string}` has been removed from the Globus CLI.", fg="red"
23
+ ),
24
+ err=True,
25
+ )
26
+ click.get_current_context().exit(1)
@@ -9,6 +9,7 @@ from globus_cli.parsing import group
9
9
  "list": (".list", "collection_list"),
10
10
  "show": (".show", "collection_show"),
11
11
  "update": (".update", "collection_update"),
12
+ "role": (".role", "role_command"),
12
13
  },
13
14
  )
14
15
  def collection_command() -> None:
@@ -0,0 +1,13 @@
1
+ from globus_cli.parsing import group
2
+
3
+
4
+ @group(
5
+ "role",
6
+ lazy_subcommands={
7
+ "list": (".list", "list_command"),
8
+ "show": (".show", "show_command"),
9
+ "delete": (".delete", "delete_command"),
10
+ },
11
+ )
12
+ def role_command() -> None:
13
+ """Manage Roles on Collections."""
@@ -0,0 +1,23 @@
1
+ import uuid
2
+
3
+ import click
4
+
5
+ from globus_cli.login_manager import LoginManager
6
+ from globus_cli.parsing import collection_id_arg, command
7
+ from globus_cli.termio import display
8
+
9
+
10
+ @command("delete")
11
+ @collection_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
+ collection_id: uuid.UUID,
18
+ role_id: uuid.UUID,
19
+ ) -> None:
20
+ """Delete a particular role on a Collection."""
21
+ gcs_client = login_manager.get_gcs_client(collection_id=collection_id)
22
+ res = gcs_client.delete_role(role_id)
23
+ display(res, text_mode=display.RAW, response_key="code")
@@ -0,0 +1,40 @@
1
+ import uuid
2
+
3
+ import click
4
+
5
+ from globus_cli.login_manager import LoginManager
6
+ from globus_cli.parsing import collection_id_arg, command
7
+ from globus_cli.termio import Field, display
8
+ from globus_cli.termio.formatters.auth import PrincipalURNFormatter
9
+
10
+
11
+ @command("list")
12
+ @collection_id_arg
13
+ @click.option("--all-roles", is_flag=True, help="Include all collection roles.")
14
+ @LoginManager.requires_login("transfer")
15
+ def list_command(
16
+ login_manager: LoginManager,
17
+ *,
18
+ collection_id: uuid.UUID,
19
+ all_roles: bool,
20
+ ) -> None:
21
+ """List roles on a particular Collection."""
22
+ gcs_client = login_manager.get_gcs_client(collection_id=collection_id)
23
+ auth_client = login_manager.get_auth_client()
24
+
25
+ if all_roles:
26
+ res = gcs_client.get_role_list(collection_id, include="all_roles")
27
+ else:
28
+ res = gcs_client.get_role_list(collection_id)
29
+
30
+ display(
31
+ res,
32
+ text_mode=display.RECORD_LIST,
33
+ fields=[
34
+ Field("ID", "id"),
35
+ Field("Role", "role"),
36
+ Field(
37
+ "Principal", "principal", formatter=PrincipalURNFormatter(auth_client)
38
+ ),
39
+ ],
40
+ )
@@ -0,0 +1,37 @@
1
+ import uuid
2
+
3
+ import click
4
+
5
+ from globus_cli.login_manager import LoginManager
6
+ from globus_cli.parsing import collection_id_arg, command
7
+ from globus_cli.termio import Field, display
8
+ from globus_cli.termio.formatters.auth import PrincipalURNFormatter
9
+
10
+
11
+ @command("show")
12
+ @collection_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
+ collection_id: uuid.UUID,
19
+ role_id: uuid.UUID,
20
+ ) -> None:
21
+ """Describe a particular role on a Collection."""
22
+ gcs_client = login_manager.get_gcs_client(collection_id=collection_id)
23
+ auth_client = login_manager.get_auth_client()
24
+
25
+ res = gcs_client.get_role(role_id)
26
+
27
+ display(
28
+ res,
29
+ text_mode=display.RECORD,
30
+ fields=[
31
+ Field("ID", "id"),
32
+ Field("Role", "role"),
33
+ Field(
34
+ "Principal", "principal", formatter=PrincipalURNFormatter(auth_client)
35
+ ),
36
+ ],
37
+ )
@@ -131,7 +131,6 @@ def delete_command(
131
131
  local_user=local_user,
132
132
  additional_fields={
133
133
  "ignore_missing": ignore_missing,
134
- "skip_activation_check": skip_activation_check,
135
134
  "interpret_globs": enable_globs,
136
135
  **notify,
137
136
  },
@@ -4,11 +4,11 @@ from globus_cli.parsing import group
4
4
  @group(
5
5
  "endpoint",
6
6
  lazy_subcommands={
7
- "activate": (".activate", "endpoint_activate"),
8
- "create": (".create", "endpoint_create"),
9
- "deactivate": (".deactivate", "endpoint_deactivate"),
7
+ "activate": ("_removal_stub", "removal_stub_command"),
8
+ "create": ("_removal_stub", "removal_stub_command"),
9
+ "deactivate": ("_removal_stub", "removal_stub_command"),
10
10
  "delete": (".delete", "endpoint_delete"),
11
- "is-activated": (".is_activated", "endpoint_is_activated"),
11
+ "is-activated": ("_removal_stub", "removal_stub_command"),
12
12
  "local-id": (".local_id", "local_id"),
13
13
  "my-shared-endpoint-list": (
14
14
  ".my_shared_endpoint_list",
@@ -17,7 +17,7 @@ from globus_cli.parsing import group
17
17
  "permission": (".permission", "permission_command"),
18
18
  "role": (".role", "role_command"),
19
19
  "search": (".search", "endpoint_search"),
20
- "server": (".server", "server_command"),
20
+ "server": ("_removal_stub", "removal_stub_command"),
21
21
  "set-subscription-id": (".set_subscription_id", "set_endpoint_subscription_id"),
22
22
  "show": (".show", "endpoint_show"),
23
23
  "storage-gateway": (".storage_gateway", "storage_gateway_command"),
@@ -7,6 +7,10 @@ from globus_cli.parsing import group
7
7
  "create": (".create", "create_command"),
8
8
  "update": (".update", "update_command"),
9
9
  "set-subscription-id": (".set_subscription_id", "set_endpoint_subscription_id"),
10
+ "set-subscription-admin-verified": (
11
+ ".set_subscription_admin_verified",
12
+ "set_collection_subscription_admin_verified",
13
+ ),
10
14
  },
11
15
  )
12
16
  def gcp_command() -> None:
@@ -76,7 +76,8 @@ def mapped_command(
76
76
  **verify,
77
77
  )
78
78
 
79
- res = transfer_client.create_endpoint(ep_doc)
79
+ # NOTE: this uses the legacy "create endpoint" route
80
+ res = transfer_client.post("/v0.10/endpoint", data=ep_doc)
80
81
 
81
82
  # output
82
83
  display(
@@ -0,0 +1,53 @@
1
+ from __future__ import annotations
2
+
3
+ import uuid
4
+
5
+ import click
6
+
7
+ from globus_cli.endpointish import Endpointish, EntityType
8
+ from globus_cli.login_manager import LoginManager
9
+ from globus_cli.parsing import command, endpoint_id_arg
10
+ from globus_cli.termio import display
11
+
12
+
13
+ @command(
14
+ "set-subscription-admin-verified",
15
+ short_help="Update a GCP collection's subscription verification status.",
16
+ )
17
+ @endpoint_id_arg
18
+ @click.argument("STATUS", type=bool)
19
+ @LoginManager.requires_login("transfer")
20
+ def set_collection_subscription_admin_verified(
21
+ login_manager: LoginManager,
22
+ *,
23
+ endpoint_id: uuid.UUID,
24
+ status: bool,
25
+ ) -> None:
26
+ """
27
+ Update a GCP collection's subscription verification status.
28
+
29
+ This operation requires membership in a Globus subscription group and has
30
+ authorization requirements which depend upon the caller's roles on the
31
+ subscription group and the collection.
32
+
33
+ Subscription administrators can grant or revoke verification on a
34
+ collection that is associated with their subscription without needing an
35
+ administrator role on the collection itself.
36
+
37
+ Users with the administrator effective role on the collection can revoke
38
+ verification on a collection, but must still be a subscription administrator
39
+ to grant verification.
40
+
41
+ STATUS must be a boolean expressing the subscription admin verified status.
42
+ A value of 'true' grants the status, and a value of 'false' revokes status.
43
+ """
44
+ transfer_client = login_manager.get_transfer_client()
45
+ epish = Endpointish(endpoint_id, transfer_client=transfer_client)
46
+ epish.assert_entity_type(expect_types=(EntityType.GCP_MAPPED, EntityType.GCP_GUEST))
47
+
48
+ res = transfer_client.set_subscription_admin_verified(
49
+ endpoint_id,
50
+ status,
51
+ )
52
+
53
+ display(res, text_mode=display.RAW, response_key="message")
@@ -4,8 +4,13 @@ import uuid
4
4
 
5
5
  from globus_cli.constants import ExplicitNullType
6
6
  from globus_cli.login_manager import LoginManager
7
- from globus_cli.parsing import collection_id_arg, command, endpointish_params
8
- from globus_cli.parsing.shared_options import activity_notifications_option
7
+ from globus_cli.parsing import (
8
+ activity_notifications_option,
9
+ collection_id_arg,
10
+ command,
11
+ endpointish_params,
12
+ subscription_admin_verified_option,
13
+ )
9
14
  from globus_cli.termio import display
10
15
 
11
16
 
@@ -16,6 +21,7 @@ from globus_cli.termio import display
16
21
  keyword_style="string",
17
22
  skip=("user_message", "user_message_link", "public"),
18
23
  )
24
+ @subscription_admin_verified_option
19
25
  @activity_notifications_option("GCP")
20
26
  @LoginManager.requires_login("transfer")
21
27
  def guest_command(
@@ -33,6 +39,7 @@ def guest_command(
33
39
  info_link: str | None | ExplicitNullType,
34
40
  keywords: str | None,
35
41
  organization: str | None | ExplicitNullType,
42
+ subscription_admin_verified: bool | None,
36
43
  verify: dict[str, bool],
37
44
  ) -> None:
38
45
  """
@@ -56,6 +63,7 @@ def guest_command(
56
63
  default_directory=default_directory,
57
64
  force_encryption=force_encryption,
58
65
  guest_collection_activity_notification_policy=activity_notifications,
66
+ subscription_admin_verified=subscription_admin_verified,
59
67
  **verify,
60
68
  )
61
69
 
@@ -6,13 +6,19 @@ import click
6
6
 
7
7
  from globus_cli.constants import ExplicitNullType
8
8
  from globus_cli.login_manager import LoginManager
9
- from globus_cli.parsing import collection_id_arg, command, endpointish_params
9
+ from globus_cli.parsing import (
10
+ collection_id_arg,
11
+ command,
12
+ endpointish_params,
13
+ subscription_admin_verified_option,
14
+ )
10
15
  from globus_cli.termio import display
11
16
 
12
17
 
13
18
  @command("mapped", short_help="Update a GCP Mapped Collection.")
14
19
  @collection_id_arg
15
20
  @endpointish_params.update(name="collection", keyword_style="string")
21
+ @subscription_admin_verified_option
16
22
  @click.option(
17
23
  "--subscription-id",
18
24
  help="Set the collection as managed with the given subscription ID",
@@ -34,6 +40,7 @@ def mapped_command(
34
40
  force_encryption: bool | None,
35
41
  verify: dict[str, bool],
36
42
  subscription_id: str | None,
43
+ subscription_admin_verified: bool | None,
37
44
  user_message: str | None | ExplicitNullType,
38
45
  user_message_link: str | None | ExplicitNullType,
39
46
  public: bool | None,
@@ -65,6 +72,7 @@ def mapped_command(
65
72
  public=public,
66
73
  user_message=user_message,
67
74
  user_message_link=user_message_link,
75
+ subscription_admin_verified=subscription_admin_verified,
68
76
  **verify,
69
77
  )
70
78
 
@@ -1,6 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- import sys
4
3
  import typing as t
5
4
  import uuid
6
5
 
@@ -11,16 +10,11 @@ from globus_cli.login_manager import LoginManager
11
10
  from globus_cli.parsing import command, endpoint_id_arg
12
11
  from globus_cli.termio import display
13
12
 
14
- if sys.version_info >= (3, 9):
15
- from typing import Literal
16
- else:
17
- from typing_extensions import Literal
18
-
19
13
 
20
14
  class GCSSubscriptionIdType(click.ParamType):
21
15
  def convert(
22
16
  self, value: str, param: click.Parameter | None, ctx: click.Context | None
23
- ) -> uuid.UUID | Literal["DEFAULT"] | ExplicitNullType:
17
+ ) -> uuid.UUID | t.Literal["DEFAULT"] | ExplicitNullType:
24
18
  if value.lower() == "null":
25
19
  return EXPLICIT_NULL
26
20
  elif value.lower() == "default":
@@ -88,7 +88,6 @@ def rm_command(
88
88
  local_user=local_user,
89
89
  additional_fields={
90
90
  "ignore_missing": ignore_missing,
91
- "skip_activation_check": skip_activation_check,
92
91
  "interpret_globs": enable_globs,
93
92
  **notify,
94
93
  },
@@ -392,7 +392,6 @@ def transfer_command(
392
392
  deadline=deadline,
393
393
  skip_source_errors=skip_source_errors,
394
394
  fail_on_quota_errors=fail_on_quota_errors,
395
- skip_activation_check=skip_activation_check,
396
395
  delete_destination_extra=(delete or delete_destination_extra),
397
396
  source_local_user=source_local_user,
398
397
  destination_local_user=destination_local_user,
@@ -18,10 +18,12 @@ from .param_types import (
18
18
  )
19
19
  from .shared_callbacks import emptyable_opt_list_callback
20
20
  from .shared_options import (
21
+ activity_notifications_option,
21
22
  delete_and_rm_options,
22
23
  local_user_option,
23
24
  no_local_server_option,
24
25
  security_principal_opts,
26
+ subscription_admin_verified_option,
25
27
  synchronous_task_wait_options,
26
28
  task_notify_option,
27
29
  task_submission_options,
@@ -88,6 +90,8 @@ __all__ = [
88
90
  "verify_checksum_option",
89
91
  "endpointish_params",
90
92
  "local_user_option",
93
+ "activity_notifications_option",
94
+ "subscription_admin_verified_option",
91
95
  # shared callbacks
92
96
  "emptyable_opt_list_callback",
93
97
  ]
@@ -382,6 +382,22 @@ def local_user_option(f: C) -> C:
382
382
  )(f)
383
383
 
384
384
 
385
+ def subscription_admin_verified_option(f: C) -> C:
386
+ """
387
+ Option for setting the subscription verification status on a GCP collections.
388
+ """
389
+ return click.option(
390
+ "--subscription-admin-verified",
391
+ help=(
392
+ "Grant or revoke subscription verification status. "
393
+ "Specifying 'true' requires administrator roles on both the "
394
+ "collection and the subscription group. Specifying 'false' "
395
+ "requires only an administrator role on the collection."
396
+ ),
397
+ type=bool,
398
+ )(f)
399
+
400
+
385
401
  def activity_notifications_option(
386
402
  gc_type: t.Literal["GCP", "GCS"],
387
403
  ) -> t.Callable[[C], C]:
@@ -81,7 +81,7 @@ class TablePrinter(Printer[t.Iterable[t.Any]]):
81
81
  cells.append(value.ljust(width, fillchar))
82
82
  return " | ".join(cells)
83
83
 
84
- @functools.lru_cache(maxsize=None) # noqa: B019
84
+ @functools.cache # noqa: B019
85
85
  def _column_width(self, table: DataTable, x: int) -> int:
86
86
  """The width of a column in the table."""
87
87
  values = [table[x, y] for y in range(table.num_rows)]