globus-cli 3.35.1__tar.gz → 3.36.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 (288) hide show
  1. {globus_cli-3.35.1/src/globus_cli.egg-info → globus_cli-3.36.0}/PKG-INFO +3 -4
  2. {globus_cli-3.35.1 → globus_cli-3.36.0}/pyproject.toml +17 -11
  3. globus_cli-3.36.0/src/globus_cli/commands/_removal_stub.py +26 -0
  4. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/__init__.py +1 -0
  5. globus_cli-3.36.0/src/globus_cli/commands/collection/role/__init__.py +12 -0
  6. globus_cli-3.36.0/src/globus_cli/commands/collection/role/list.py +40 -0
  7. globus_cli-3.36.0/src/globus_cli/commands/collection/role/show.py +37 -0
  8. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/__init__.py +5 -5
  9. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/__init__.py +4 -0
  10. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/create/mapped.py +2 -1
  11. globus_cli-3.36.0/src/globus_cli/commands/gcp/set_subscription_admin_verified.py +53 -0
  12. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/update/guest.py +10 -2
  13. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/update/mapped.py +9 -1
  14. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +1 -7
  15. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/__init__.py +1 -1
  16. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/__init__.py +4 -0
  17. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/shared_options/__init__.py +16 -0
  18. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/table_printer.py +1 -1
  19. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/version.py +1 -1
  20. {globus_cli-3.35.1 → globus_cli-3.36.0/src/globus_cli.egg-info}/PKG-INFO +3 -4
  21. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli.egg-info/SOURCES.txt +5 -12
  22. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli.egg-info/requires.txt +1 -1
  23. globus_cli-3.35.1/setup.py +0 -3
  24. globus_cli-3.35.1/src/globus_cli/commands/endpoint/activate.py +0 -46
  25. globus_cli-3.35.1/src/globus_cli/commands/endpoint/create.py +0 -178
  26. globus_cli-3.35.1/src/globus_cli/commands/endpoint/deactivate.py +0 -24
  27. globus_cli-3.35.1/src/globus_cli/commands/endpoint/is_activated.py +0 -33
  28. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/__init__.py +0 -23
  29. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/_common.py +0 -97
  30. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/add.py +0 -67
  31. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/delete.py +0 -124
  32. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/list.py +0 -55
  33. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/show.py +0 -103
  34. globus_cli-3.35.1/src/globus_cli/commands/endpoint/server/update.py +0 -70
  35. {globus_cli-3.35.1 → globus_cli-3.36.0}/LICENSE +0 -0
  36. {globus_cli-3.35.1 → globus_cli-3.36.0}/README.rst +0 -0
  37. {globus_cli-3.35.1 → globus_cli-3.36.0}/setup.cfg +0 -0
  38. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/__init__.py +0 -0
  39. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/__main__.py +0 -0
  40. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/_click_compat.py +0 -0
  41. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/_warnings.py +0 -0
  42. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/__init__.py +0 -0
  43. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/_common.py +0 -0
  44. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/api.py +0 -0
  45. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
  46. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
  47. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/create.py +0 -0
  48. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
  49. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/list.py +0 -0
  50. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
  51. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/bookmark/show.py +0 -0
  52. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
  53. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/_common.py +0 -0
  54. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
  55. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/create/guest.py +0 -0
  56. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
  57. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/delete.py +0 -0
  58. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/list.py +0 -0
  59. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/show.py +0 -0
  60. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/collection/update.py +0 -0
  61. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/delete.py +0 -0
  62. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
  63. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
  64. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
  65. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
  66. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
  67. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
  68. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
  69. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
  70. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
  71. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
  72. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
  73. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
  74. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
  75. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
  76. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
  77. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
  78. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
  79. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/search.py +0 -0
  80. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
  81. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/show.py +0 -0
  82. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
  83. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
  84. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/update.py +0 -0
  85. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
  86. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
  87. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
  88. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
  89. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
  90. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
  91. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
  92. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
  93. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
  94. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
  95. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
  96. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/__init__.py +0 -0
  97. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/_common.py +0 -0
  98. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/create.py +0 -0
  99. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/delete.py +0 -0
  100. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/list.py +0 -0
  101. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
  102. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
  103. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
  104. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/list.py +0 -0
  105. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/resume.py +0 -0
  106. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/show.py +0 -0
  107. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
  108. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
  109. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/run/update.py +0 -0
  110. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/show.py +0 -0
  111. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/start.py +0 -0
  112. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/update.py +0 -0
  113. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/flows/validate.py +0 -0
  114. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
  115. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
  116. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
  117. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
  118. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
  119. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
  120. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +0 -0
  121. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/_common.py +0 -0
  122. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/role/__init__.py +0 -0
  123. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/role/_common.py +0 -0
  124. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/role/create.py +0 -0
  125. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/role/delete.py +0 -0
  126. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/role/list.py +0 -0
  127. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/role/show.py +0 -0
  128. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/show.py +0 -0
  129. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/gcs/endpoint/update.py +0 -0
  130. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/get_identities.py +0 -0
  131. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/__init__.py +0 -0
  132. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/_common.py +0 -0
  133. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/create.py +0 -0
  134. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/delete.py +0 -0
  135. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/get_by_subscription.py +0 -0
  136. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/get_subscription_info.py +0 -0
  137. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
  138. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
  139. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
  140. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
  141. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/join.py +0 -0
  142. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/leave.py +0 -0
  143. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/list.py +0 -0
  144. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
  145. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/add.py +0 -0
  146. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/approve.py +0 -0
  147. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/invite.py +0 -0
  148. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/list.py +0 -0
  149. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/reject.py +0 -0
  150. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/member/remove.py +0 -0
  151. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/set_policies.py +0 -0
  152. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/show.py +0 -0
  153. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/group/update.py +0 -0
  154. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/list_commands.py +0 -0
  155. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/login.py +0 -0
  156. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/logout.py +0 -0
  157. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/ls.py +0 -0
  158. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/mkdir.py +0 -0
  159. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/rename.py +0 -0
  160. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/rm.py +0 -0
  161. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/__init__.py +0 -0
  162. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/_common.py +0 -0
  163. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
  164. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
  165. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/create.py +0 -0
  166. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/delete.py +0 -0
  167. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/list.py +0 -0
  168. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
  169. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/role/create.py +0 -0
  170. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
  171. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
  172. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/index/show.py +0 -0
  173. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/ingest.py +0 -0
  174. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/query.py +0 -0
  175. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
  176. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
  177. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/subject/show.py +0 -0
  178. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
  179. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/task/list.py +0 -0
  180. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/search/task/show.py +0 -0
  181. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/session/__init__.py +0 -0
  182. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/session/consent.py +0 -0
  183. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/session/show.py +0 -0
  184. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/session/update.py +0 -0
  185. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/stat.py +0 -0
  186. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/__init__.py +0 -0
  187. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/_common.py +0 -0
  188. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/cancel.py +0 -0
  189. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/event_list.py +0 -0
  190. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
  191. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/list.py +0 -0
  192. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/pause_info.py +0 -0
  193. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/show.py +0 -0
  194. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/update.py +0 -0
  195. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/task/wait.py +0 -0
  196. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/__init__.py +0 -0
  197. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/_common.py +0 -0
  198. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
  199. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/create/transfer.py +0 -0
  200. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/delete.py +0 -0
  201. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/list.py +0 -0
  202. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/pause.py +0 -0
  203. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/resume.py +0 -0
  204. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/timer/show.py +0 -0
  205. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/transfer.py +0 -0
  206. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/update.py +0 -0
  207. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/version.py +0 -0
  208. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/commands/whoami.py +0 -0
  209. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/constants.py +0 -0
  210. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/endpointish/__init__.py +0 -0
  211. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/endpointish/endpointish.py +0 -0
  212. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/endpointish/entity_type.py +0 -0
  213. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/endpointish/errors.py +0 -0
  214. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/__init__.py +0 -0
  215. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/auth_requirements.py +0 -0
  216. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/authapi_hooks.py +0 -0
  217. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/endpoint_types.py +0 -0
  218. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/flows_hooks.py +0 -0
  219. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/generic_hooks.py +0 -0
  220. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/search_hooks.py +0 -0
  221. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/hooks/transfer_hooks.py +0 -0
  222. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/messages.py +0 -0
  223. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/exception_handling/registry.py +0 -0
  224. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/globus_cli_flake8.py +0 -0
  225. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/__init__.py +0 -0
  226. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/_old_config.py +0 -0
  227. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/auth_flows.py +0 -0
  228. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/client_login.py +0 -0
  229. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/context.py +0 -0
  230. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/errors.py +0 -0
  231. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/local_server.py +0 -0
  232. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/manager.py +0 -0
  233. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/scopes.py +0 -0
  234. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/storage.py +0 -0
  235. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/login_manager/utils.py +0 -0
  236. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/command_state.py +0 -0
  237. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/commands.py +0 -0
  238. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/mutex_group.py +0 -0
  239. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_classes.py +0 -0
  240. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
  241. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
  242. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
  243. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/guest_activity_notify_param.py +0 -0
  244. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
  245. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
  246. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/location.py +0 -0
  247. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
  248. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/nullable.py +0 -0
  249. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/task_path.py +0 -0
  250. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
  251. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
  252. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
  253. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/shared_options/id_args.py +0 -0
  254. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +0 -0
  255. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/parsing/shell_completion.py +0 -0
  256. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/reflect.py +0 -0
  257. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/__init__.py +0 -0
  258. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/auth.py +0 -0
  259. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/gcs.py +0 -0
  260. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/transfer/__init__.py +0 -0
  261. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/transfer/activation.py +0 -0
  262. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/transfer/client.py +0 -0
  263. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/transfer/data.py +0 -0
  264. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
  265. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/__init__.py +0 -0
  266. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/_display.py +0 -0
  267. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/context.py +0 -0
  268. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/errors.py +0 -0
  269. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/field.py +0 -0
  270. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
  271. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/formatters/auth.py +0 -0
  272. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/formatters/base.py +0 -0
  273. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/formatters/compound.py +0 -0
  274. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/formatters/primitive.py +0 -0
  275. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/__init__.py +0 -0
  276. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/base.py +0 -0
  277. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/custom_printer.py +0 -0
  278. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/json_printer.py +0 -0
  279. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/record_printer.py +0 -0
  280. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/unix_printer/__init__.py +0 -0
  281. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/unix_printer/awscli_text.py +0 -0
  282. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/printers/unix_printer/unix_printer.py +0 -0
  283. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/termio/server_timing.py +0 -0
  284. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/types.py +0 -0
  285. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli/utils.py +0 -0
  286. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
  287. {globus_cli-3.35.1 → globus_cli-3.36.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
  288. {globus_cli-3.35.1 → globus_cli-3.36.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.1
3
+ Version: 3.36.0
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
6
  License-Expression: Apache-2.0
@@ -10,16 +10,15 @@ 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
21
+ Requires-Dist: globus-sdk==3.62.0
23
22
  Requires-Dist: click<9,>=8.1.4
24
23
  Requires-Dist: jmespath==1.0.1
25
24
  Requires-Dist: packaging>=17.0
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["setuptools>=61.2"]
2
+ requires = ["setuptools>=77.0.1"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
@@ -20,16 +20,15 @@ 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",
31
+ "globus-sdk==3.62.0",
33
32
  "click>=8.1.4,<9",
34
33
  "jmespath==1.0.1",
35
34
  "packaging>=17.0",
@@ -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.17.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 = [
@@ -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,12 @@
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
+ },
10
+ )
11
+ def role_command() -> None:
12
+ """Manage Roles on Collections."""
@@ -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
+ )
@@ -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":
@@ -52,7 +52,7 @@ def _sort_all_hooks() -> t.Iterable[DeclaredHook[t.Any]]:
52
52
  [null_data_error_handler, json_error_handler],
53
53
  # next, authn and session requirements, from most specific to most general
54
54
  [handle_internal_auth_requirements, handle_flows_gare],
55
- [session_hook, consent_required_hook],
55
+ [consent_required_hook, session_hook],
56
56
  # CLI internal error types, which cannot be confused with external causes
57
57
  [missing_login_error_hook, wrong_endpoint_type_error_hook],
58
58
  # service-specific hooks uncaptured by earlier checks
@@ -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)]
@@ -7,7 +7,7 @@ if t.TYPE_CHECKING:
7
7
 
8
8
  # single source of truth for package version,
9
9
  # see https://packaging.python.org/en/latest/single_source_version/
10
- __version__ = "3.35.1"
10
+ __version__ = "3.36.0"
11
11
 
12
12
  # app name to send as part of SDK requests
13
13
  app_name = f"Globus CLI v{__version__}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: globus-cli
3
- Version: 3.35.1
3
+ Version: 3.36.0
4
4
  Summary: Globus CLI
5
5
  Author-email: Stephen Rosen <sirosen@globus.org>
6
6
  License-Expression: Apache-2.0
@@ -10,16 +10,15 @@ 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
21
+ Requires-Dist: globus-sdk==3.62.0
23
22
  Requires-Dist: click<9,>=8.1.4
24
23
  Requires-Dist: jmespath==1.0.1
25
24
  Requires-Dist: packaging>=17.0
@@ -1,7 +1,6 @@
1
1
  LICENSE
2
2
  README.rst
3
3
  pyproject.toml
4
- setup.py
5
4
  src/globus_cli/__init__.py
6
5
  src/globus_cli/__main__.py
7
6
  src/globus_cli/_click_compat.py
@@ -20,6 +19,7 @@ src/globus_cli.egg-info/requires.txt
20
19
  src/globus_cli.egg-info/top_level.txt
21
20
  src/globus_cli/commands/__init__.py
22
21
  src/globus_cli/commands/_common.py
22
+ src/globus_cli/commands/_removal_stub.py
23
23
  src/globus_cli/commands/api.py
24
24
  src/globus_cli/commands/cli_profile_list.py
25
25
  src/globus_cli/commands/delete.py
@@ -52,13 +52,12 @@ src/globus_cli/commands/collection/update.py
52
52
  src/globus_cli/commands/collection/create/__init__.py
53
53
  src/globus_cli/commands/collection/create/guest.py
54
54
  src/globus_cli/commands/collection/create/mapped.py
55
+ src/globus_cli/commands/collection/role/__init__.py
56
+ src/globus_cli/commands/collection/role/list.py
57
+ src/globus_cli/commands/collection/role/show.py
55
58
  src/globus_cli/commands/endpoint/__init__.py
56
59
  src/globus_cli/commands/endpoint/_common.py
57
- src/globus_cli/commands/endpoint/activate.py
58
- src/globus_cli/commands/endpoint/create.py
59
- src/globus_cli/commands/endpoint/deactivate.py
60
60
  src/globus_cli/commands/endpoint/delete.py
61
- src/globus_cli/commands/endpoint/is_activated.py
62
61
  src/globus_cli/commands/endpoint/local_id.py
63
62
  src/globus_cli/commands/endpoint/my_shared_endpoint_list.py
64
63
  src/globus_cli/commands/endpoint/search.py
@@ -78,13 +77,6 @@ src/globus_cli/commands/endpoint/role/create.py
78
77
  src/globus_cli/commands/endpoint/role/delete.py
79
78
  src/globus_cli/commands/endpoint/role/list.py
80
79
  src/globus_cli/commands/endpoint/role/show.py
81
- src/globus_cli/commands/endpoint/server/__init__.py
82
- src/globus_cli/commands/endpoint/server/_common.py
83
- src/globus_cli/commands/endpoint/server/add.py
84
- src/globus_cli/commands/endpoint/server/delete.py
85
- src/globus_cli/commands/endpoint/server/list.py
86
- src/globus_cli/commands/endpoint/server/show.py
87
- src/globus_cli/commands/endpoint/server/update.py
88
80
  src/globus_cli/commands/endpoint/storage_gateway/__init__.py
89
81
  src/globus_cli/commands/endpoint/storage_gateway/list.py
90
82
  src/globus_cli/commands/endpoint/user_credential/__init__.py
@@ -117,6 +109,7 @@ src/globus_cli/commands/flows/run/show_definition.py
117
109
  src/globus_cli/commands/flows/run/show_logs.py
118
110
  src/globus_cli/commands/flows/run/update.py
119
111
  src/globus_cli/commands/gcp/__init__.py
112
+ src/globus_cli/commands/gcp/set_subscription_admin_verified.py
120
113
  src/globus_cli/commands/gcp/set_subscription_id.py
121
114
  src/globus_cli/commands/gcp/create/__init__.py
122
115
  src/globus_cli/commands/gcp/create/_common.py
@@ -1,4 +1,4 @@
1
- globus-sdk==3.56.1
1
+ globus-sdk==3.62.0
2
2
  click<9,>=8.1.4
3
3
  jmespath==1.0.1
4
4
  packaging>=17.0
@@ -1,3 +0,0 @@
1
- from setuptools import setup
2
-
3
- setup()
@@ -1,46 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import uuid
4
-
5
- import click
6
-
7
- from globus_cli.parsing import command, endpoint_id_arg, mutex_option_group
8
-
9
-
10
- @command("activate", deprecated=True, hidden=True)
11
- @endpoint_id_arg
12
- @click.option("--web", is_flag=True, default=False)
13
- @click.option("--no-browser", is_flag=True, default=False)
14
- @click.option("--myproxy", is_flag=True, default=False)
15
- @click.option("--myproxy-username", "-U")
16
- @click.option("--myproxy-password", "-P", hidden=True)
17
- @click.option("--myproxy-lifetime", type=int)
18
- @click.option("--no-autoactivate", is_flag=True, default=False)
19
- @click.option("--force", is_flag=True, default=False)
20
- @mutex_option_group("--web", "--myproxy")
21
- def endpoint_activate(
22
- *,
23
- endpoint_id: uuid.UUID,
24
- myproxy: bool,
25
- myproxy_username: str | None,
26
- myproxy_password: str | None,
27
- myproxy_lifetime: int | None,
28
- web: bool,
29
- no_browser: bool,
30
- no_autoactivate: bool,
31
- force: bool,
32
- ) -> None:
33
- """
34
- Activate an endpoint.
35
-
36
- Endpoint Activation has been removed from the Globus ecosystem. This command
37
- no longer does anything.
38
- """
39
- click.echo(
40
- click.style(
41
- "`globus endpoint activate` has been deprecated and "
42
- "will be removed in a future release.",
43
- fg="yellow",
44
- ),
45
- err=True,
46
- )