gam7 7.14.3__tar.gz → 7.14.4__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.

Potentially problematic release.


This version of gam7 might be problematic. Click here for more details.

Files changed (321) hide show
  1. {gam7-7.14.3 → gam7-7.14.4}/.github/workflows/build.yml +4 -5
  2. {gam7-7.14.3 → gam7-7.14.4}/PKG-INFO +1 -1
  3. {gam7-7.14.3 → gam7-7.14.4}/pyproject.toml +0 -1
  4. {gam7-7.14.3 → gam7-7.14.4}/src/GamUpdate.txt +15 -0
  5. {gam7-7.14.3 → gam7-7.14.4}/src/gam/__init__.py +16 -10
  6. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glgapi.py +4 -0
  7. {gam7-7.14.3 → gam7-7.14.4}/wiki/Install-GAM-as-Python-Library.md +5 -11
  8. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Permissions.md +16 -0
  9. gam7-7.14.3/src/requirements.txt +0 -14
  10. gam7-7.14.3/src/setup.cfg +0 -55
  11. gam7-7.14.3/src/setup.py +0 -3
  12. {gam7-7.14.3 → gam7-7.14.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  13. {gam7-7.14.3 → gam7-7.14.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  14. {gam7-7.14.3 → gam7-7.14.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  15. {gam7-7.14.3 → gam7-7.14.4}/.github/ISSUE_TEMPLATE.txt +0 -0
  16. {gam7-7.14.3 → gam7-7.14.4}/.github/actions/decrypt.sh +0 -0
  17. {gam7-7.14.3 → gam7-7.14.4}/.github/actions/entitlements.plist +0 -0
  18. {gam7-7.14.3 → gam7-7.14.4}/.github/actions/package_exclusions.txt +0 -0
  19. {gam7-7.14.3 → gam7-7.14.4}/.github/stale.yml +0 -0
  20. {gam7-7.14.3 → gam7-7.14.4}/.github/workflows/codeql-analysis.yml +0 -0
  21. {gam7-7.14.3 → gam7-7.14.4}/.github/workflows/get-cacerts.yml +0 -0
  22. {gam7-7.14.3 → gam7-7.14.4}/.github/workflows/pushwiki.yml +0 -0
  23. {gam7-7.14.3 → gam7-7.14.4}/.github/workflows/pypi.yml +0 -0
  24. {gam7-7.14.3 → gam7-7.14.4}/.pre-commit-config.yaml +0 -0
  25. {gam7-7.14.3 → gam7-7.14.4}/LICENSE +0 -0
  26. {gam7-7.14.3 → gam7-7.14.4}/README.md +0 -0
  27. {gam7-7.14.3 → gam7-7.14.4}/src/.gitignore +0 -0
  28. {gam7-7.14.3 → gam7-7.14.4}/src/GamCommands.txt +0 -0
  29. {gam7-7.14.3 → gam7-7.14.4}/src/LICENSE +0 -0
  30. {gam7-7.14.3 → gam7-7.14.4}/src/README.md +0 -0
  31. {gam7-7.14.3 → gam7-7.14.4}/src/cacerts.pem +0 -0
  32. {gam7-7.14.3 → gam7-7.14.4}/src/callgam.py +0 -0
  33. {gam7-7.14.3 → gam7-7.14.4}/src/gam/__main__.py +0 -0
  34. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/__init__.py +0 -0
  35. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/auth.py +0 -0
  36. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/client.py +0 -0
  37. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/core.py +0 -0
  38. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/data.py +0 -0
  39. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/http.py +0 -0
  40. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/http_core.py +0 -0
  41. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/http_interface.py +0 -0
  42. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/mock_http.py +0 -0
  43. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/mock_http_core.py +0 -0
  44. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/mock_service.py +0 -0
  45. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/service.py +0 -0
  46. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/token_store.py +0 -0
  47. {gam7-7.14.3 → gam7-7.14.4}/src/gam/atom/url.py +0 -0
  48. {gam7-7.14.3 → gam7-7.14.4}/src/gam/cacerts.pem +0 -0
  49. {gam7-7.14.3 → gam7-7.14.4}/src/gam/cbcm-v1.1beta1.json +0 -0
  50. {gam7-7.14.3 → gam7-7.14.4}/src/gam/contactdelegation-v1.json +0 -0
  51. {gam7-7.14.3 → gam7-7.14.4}/src/gam/datastudio-v1.json +0 -0
  52. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/__init__.py +0 -0
  53. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glaction.py +0 -0
  54. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glapi.py +0 -0
  55. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glcfg.py +0 -0
  56. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glclargs.py +0 -0
  57. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glentity.py +0 -0
  58. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glgdata.py +0 -0
  59. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glglobals.py +0 -0
  60. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glindent.py +0 -0
  61. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glmsgs.py +0 -0
  62. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glskus.py +0 -0
  63. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/gluprop.py +0 -0
  64. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/glverlibs.py +0 -0
  65. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gamlib/yubikey.py +0 -0
  66. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/__init__.py +0 -0
  67. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/alt/__init__.py +0 -0
  68. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/alt/app_engine.py +0 -0
  69. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/alt/appengine.py +0 -0
  70. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/apps/__init__.py +0 -0
  71. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
  72. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/apps/audit/service.py +0 -0
  73. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  74. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/apps/contacts/service.py +0 -0
  75. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/apps/service.py +0 -0
  76. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/service.py +0 -0
  77. {gam7-7.14.3 → gam7-7.14.4}/src/gam/gdata/urlfetch.py +0 -0
  78. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/__init__.py +0 -0
  79. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/_auth.py +0 -0
  80. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/_helpers.py +0 -0
  81. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/channel.py +0 -0
  82. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/discovery.py +0 -0
  83. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  84. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  85. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  86. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  87. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/errors.py +0 -0
  88. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/http.py +0 -0
  89. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/mimeparse.py +0 -0
  90. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/model.py +0 -0
  91. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/schema.py +0 -0
  92. {gam7-7.14.3 → gam7-7.14.4}/src/gam/googleapiclient/version.py +0 -0
  93. {gam7-7.14.3 → gam7-7.14.4}/src/gam/iso8601/__init__.py +0 -0
  94. {gam7-7.14.3 → gam7-7.14.4}/src/gam/iso8601/iso8601.py +0 -0
  95. {gam7-7.14.3 → gam7-7.14.4}/src/gam/meet-v2beta.json +0 -0
  96. {gam7-7.14.3 → gam7-7.14.4}/src/gam/serviceaccountlookup-v1.json +0 -0
  97. {gam7-7.14.3 → gam7-7.14.4}/src/gam/six.py +0 -0
  98. {gam7-7.14.3 → gam7-7.14.4}/src/gam-install.sh +0 -0
  99. {gam7-7.14.3 → gam7-7.14.4}/src/gam-setup.bat +0 -0
  100. {gam7-7.14.3 → gam7-7.14.4}/src/gam.exe.manifest +0 -0
  101. {gam7-7.14.3 → gam7-7.14.4}/src/gam.py +0 -0
  102. {gam7-7.14.3 → gam7-7.14.4}/src/gam.spec +0 -0
  103. {gam7-7.14.3 → gam7-7.14.4}/src/gam.wxs +0 -0
  104. {gam7-7.14.3 → gam7-7.14.4}/src/license.rtf +0 -0
  105. {gam7-7.14.3 → gam7-7.14.4}/src/requirements-dev.txt +0 -0
  106. {gam7-7.14.3 → gam7-7.14.4}/src/tools/a_atleast_b.py +0 -0
  107. {gam7-7.14.3 → gam7-7.14.4}/src/tools/gen-wix-xml-filelist.py +0 -0
  108. {gam7-7.14.3 → gam7-7.14.4}/src/tools/mkGamRef.py +0 -0
  109. {gam7-7.14.3 → gam7-7.14.4}/src/tools/openssl.props +0 -0
  110. {gam7-7.14.3 → gam7-7.14.4}/src/version_info.txt.in +0 -0
  111. {gam7-7.14.3 → gam7-7.14.4}/wiki/00scratch.md +0 -0
  112. {gam7-7.14.3 → gam7-7.14.4}/wiki/Addresses.md +0 -0
  113. {gam7-7.14.3 → gam7-7.14.4}/wiki/Administrators.md +0 -0
  114. {gam7-7.14.3 → gam7-7.14.4}/wiki/Alert-Center.md +0 -0
  115. {gam7-7.14.3 → gam7-7.14.4}/wiki/Aliases.md +0 -0
  116. {gam7-7.14.3 → gam7-7.14.4}/wiki/Authorization.md +0 -0
  117. {gam7-7.14.3 → gam7-7.14.4}/wiki/BNF-Syntax.md +0 -0
  118. {gam7-7.14.3 → gam7-7.14.4}/wiki/Basic-Items.md +0 -0
  119. {gam7-7.14.3 → gam7-7.14.4}/wiki/Bulk-Processing.md +0 -0
  120. {gam7-7.14.3 → gam7-7.14.4}/wiki/CSV-Input-Filtering.md +0 -0
  121. {gam7-7.14.3 → gam7-7.14.4}/wiki/CSV-Output-Filtering.md +0 -0
  122. {gam7-7.14.3 → gam7-7.14.4}/wiki/CSV-Special-Characters.md +0 -0
  123. {gam7-7.14.3 → gam7-7.14.4}/wiki/Calendars-Access.md +0 -0
  124. {gam7-7.14.3 → gam7-7.14.4}/wiki/Calendars-Events.md +0 -0
  125. {gam7-7.14.3 → gam7-7.14.4}/wiki/Calendars.md +0 -0
  126. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chat-Bot.md +0 -0
  127. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-AUE-Counts.md +0 -0
  128. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  129. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Installed-Apps.md +0 -0
  130. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  131. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Policies.md +0 -0
  132. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Printers.md +0 -0
  133. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Profile-Management.md +0 -0
  134. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Version-Counts.md +0 -0
  135. {gam7-7.14.3 → gam7-7.14.4}/wiki/Chrome-Version-History.md +0 -0
  136. {gam7-7.14.3 → gam7-7.14.4}/wiki/ChromeOS-Devices.md +0 -0
  137. {gam7-7.14.3 → gam7-7.14.4}/wiki/Classroom-Courses.md +0 -0
  138. {gam7-7.14.3 → gam7-7.14.4}/wiki/Classroom-Guardians.md +0 -0
  139. {gam7-7.14.3 → gam7-7.14.4}/wiki/Classroom-Invitations.md +0 -0
  140. {gam7-7.14.3 → gam7-7.14.4}/wiki/Classroom-Membership.md +0 -0
  141. {gam7-7.14.3 → gam7-7.14.4}/wiki/Cloud-Channel.md +0 -0
  142. {gam7-7.14.3 → gam7-7.14.4}/wiki/Cloud-Identity-Devices.md +0 -0
  143. {gam7-7.14.3 → gam7-7.14.4}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  144. {gam7-7.14.3 → gam7-7.14.4}/wiki/Cloud-Identity-Groups.md +0 -0
  145. {gam7-7.14.3 → gam7-7.14.4}/wiki/Cloud-Identity-Policies.md +0 -0
  146. {gam7-7.14.3 → gam7-7.14.4}/wiki/Cloud-Storage.md +0 -0
  147. {gam7-7.14.3 → gam7-7.14.4}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  148. {gam7-7.14.3 → gam7-7.14.4}/wiki/Collections-of-Items.md +0 -0
  149. {gam7-7.14.3 → gam7-7.14.4}/wiki/Collections-of-Users.md +0 -0
  150. {gam7-7.14.3 → gam7-7.14.4}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  151. {gam7-7.14.3 → gam7-7.14.4}/wiki/Command-Line-Parsing.md +0 -0
  152. {gam7-7.14.3 → gam7-7.14.4}/wiki/Command-Logging-Progress.md +0 -0
  153. {gam7-7.14.3 → gam7-7.14.4}/wiki/Context-Aware-Access-Levels.md +0 -0
  154. {gam7-7.14.3 → gam7-7.14.4}/wiki/Customer.md +0 -0
  155. {gam7-7.14.3 → gam7-7.14.4}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  156. {gam7-7.14.3 → gam7-7.14.4}/wiki/Domain-SharedContacts.md +0 -0
  157. {gam7-7.14.3 → gam7-7.14.4}/wiki/Domains-Verification.md +0 -0
  158. {gam7-7.14.3 → gam7-7.14.4}/wiki/Domains.md +0 -0
  159. {gam7-7.14.3 → gam7-7.14.4}/wiki/Downloads-Installs.md +0 -0
  160. {gam7-7.14.3 → gam7-7.14.4}/wiki/Drive-File-Selection.md +0 -0
  161. {gam7-7.14.3 → gam7-7.14.4}/wiki/Drive-Items.md +0 -0
  162. {gam7-7.14.3 → gam7-7.14.4}/wiki/Drive-REST-API-v3.md +0 -0
  163. {gam7-7.14.3 → gam7-7.14.4}/wiki/Email-Audit-Monitor.md +0 -0
  164. {gam7-7.14.3 → gam7-7.14.4}/wiki/Find-File-Owner.md +0 -0
  165. {gam7-7.14.3 → gam7-7.14.4}/wiki/GAM-Public-Chat-Room.md +0 -0
  166. {gam7-7.14.3 → gam7-7.14.4}/wiki/GAM-Return-Codes.md +0 -0
  167. {gam7-7.14.3 → gam7-7.14.4}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  168. {gam7-7.14.3 → gam7-7.14.4}/wiki/GAM7-on-Android-Devices.md +0 -0
  169. {gam7-7.14.3 → gam7-7.14.4}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  170. {gam7-7.14.3 → gam7-7.14.4}/wiki/GamUpdates.md +0 -0
  171. {gam7-7.14.3 → gam7-7.14.4}/wiki/Global-Address-List.md +0 -0
  172. {gam7-7.14.3 → gam7-7.14.4}/wiki/Google-Data-Transfers.md +0 -0
  173. {gam7-7.14.3 → gam7-7.14.4}/wiki/Google-Network-Addresses.md +0 -0
  174. {gam7-7.14.3 → gam7-7.14.4}/wiki/Groups-Membership.md +0 -0
  175. {gam7-7.14.3 → gam7-7.14.4}/wiki/Groups.md +0 -0
  176. {gam7-7.14.3 → gam7-7.14.4}/wiki/HTTPS-Proxy.md +0 -0
  177. {gam7-7.14.3 → gam7-7.14.4}/wiki/Home.md +0 -0
  178. {gam7-7.14.3 → gam7-7.14.4}/wiki/How-to-Install-GAM7.md +0 -0
  179. {gam7-7.14.3 → gam7-7.14.4}/wiki/How-to-Uninstall-GAM7.md +0 -0
  180. {gam7-7.14.3 → gam7-7.14.4}/wiki/How-to-Update-GAM7.md +0 -0
  181. {gam7-7.14.3 → gam7-7.14.4}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  182. {gam7-7.14.3 → gam7-7.14.4}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +0 -0
  183. {gam7-7.14.3 → gam7-7.14.4}/wiki/Inbound-SSO.md +0 -0
  184. {gam7-7.14.3 → gam7-7.14.4}/wiki/Licenses.md +0 -0
  185. {gam7-7.14.3 → gam7-7.14.4}/wiki/List-Items.md +0 -0
  186. {gam7-7.14.3 → gam7-7.14.4}/wiki/List.md +0 -0
  187. {gam7-7.14.3 → gam7-7.14.4}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  188. {gam7-7.14.3 → gam7-7.14.4}/wiki/Mobile-Devices.md +0 -0
  189. {gam7-7.14.3 → gam7-7.14.4}/wiki/Organizational-Units.md +0 -0
  190. {gam7-7.14.3 → gam7-7.14.4}/wiki/Other-Resources.md +0 -0
  191. {gam7-7.14.3 → gam7-7.14.4}/wiki/Permission-Matches.md +0 -0
  192. {gam7-7.14.3 → gam7-7.14.4}/wiki/Python-Regular-Expressions.md +0 -0
  193. {gam7-7.14.3 → gam7-7.14.4}/wiki/README.md +0 -0
  194. {gam7-7.14.3 → gam7-7.14.4}/wiki/Rclone.md +0 -0
  195. {gam7-7.14.3 → gam7-7.14.4}/wiki/Reports.md +0 -0
  196. {gam7-7.14.3 → gam7-7.14.4}/wiki/Reseller.md +0 -0
  197. {gam7-7.14.3 → gam7-7.14.4}/wiki/Resources.md +0 -0
  198. {gam7-7.14.3 → gam7-7.14.4}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  199. {gam7-7.14.3 → gam7-7.14.4}/wiki/SSL-Root-CA-Certificates.md +0 -0
  200. {gam7-7.14.3 → gam7-7.14.4}/wiki/Schemas.md +0 -0
  201. {gam7-7.14.3 → gam7-7.14.4}/wiki/Scripts.md +0 -0
  202. {gam7-7.14.3 → gam7-7.14.4}/wiki/Send-Email.md +0 -0
  203. {gam7-7.14.3 → gam7-7.14.4}/wiki/Shared-Drives.md +0 -0
  204. {gam7-7.14.3 → gam7-7.14.4}/wiki/Sites.md +0 -0
  205. {gam7-7.14.3 → gam7-7.14.4}/wiki/Tag-Replace.md +0 -0
  206. {gam7-7.14.3 → gam7-7.14.4}/wiki/Todrive.md +0 -0
  207. {gam7-7.14.3 → gam7-7.14.4}/wiki/Unmanaged-Accounts.md +0 -0
  208. {gam7-7.14.3 → gam7-7.14.4}/wiki/Upgrade-Benefits.md +0 -0
  209. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Analytics-Admin.md +0 -0
  210. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Application-Specific-Passwords.md +0 -0
  211. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Backup-Verification-Codes.md +0 -0
  212. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Calendars-Access.md +0 -0
  213. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Calendars-Events.md +0 -0
  214. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Calendars.md +0 -0
  215. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Chat.md +0 -0
  216. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Classification-Labels.md +0 -0
  217. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Classroom-Profile.md +0 -0
  218. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Contacts-Delegates.md +0 -0
  219. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Contacts.md +0 -0
  220. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Deprovision.md +0 -0
  221. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Activity-Settings.md +0 -0
  222. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Cleanup.md +0 -0
  223. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Comments.md +0 -0
  224. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Copy-Move.md +0 -0
  225. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Files-Display.md +0 -0
  226. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Files-Manage.md +0 -0
  227. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Orphans.md +0 -0
  228. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Ownership.md +0 -0
  229. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Query.md +0 -0
  230. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Revisions.md +0 -0
  231. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Shortcuts.md +0 -0
  232. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Drive-Transfer.md +0 -0
  233. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Forms.md +0 -0
  234. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-CSE.md +0 -0
  235. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Delegates.md +0 -0
  236. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Filters.md +0 -0
  237. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Forwarding.md +0 -0
  238. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Labels.md +0 -0
  239. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  240. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Profile.md +0 -0
  241. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-S-MIME.md +0 -0
  242. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  243. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Gmail-Settings.md +0 -0
  244. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Group-Membership.md +0 -0
  245. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Keep-Notes.md +0 -0
  246. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Looker-Studio.md +0 -0
  247. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Meet.md +0 -0
  248. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-People-Contacts-Profiles.md +0 -0
  249. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Photo.md +0 -0
  250. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Profile-Photo.md +0 -0
  251. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Profile-Sharing.md +0 -0
  252. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Shared-Drives.md +0 -0
  253. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  254. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Spreadsheets.md +0 -0
  255. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Tag-Manager.md +0 -0
  256. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Tasks.md +0 -0
  257. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-Tokens.md +0 -0
  258. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users-YouTube.md +0 -0
  259. {gam7-7.14.3 → gam7-7.14.4}/wiki/Users.md +0 -0
  260. {gam7-7.14.3 → gam7-7.14.4}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  261. {gam7-7.14.3 → gam7-7.14.4}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  262. {gam7-7.14.3 → gam7-7.14.4}/wiki/Vault-Takeout.md +0 -0
  263. {gam7-7.14.3 → gam7-7.14.4}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  264. {gam7-7.14.3 → gam7-7.14.4}/wiki/Version-and-Help.md +0 -0
  265. {gam7-7.14.3 → gam7-7.14.4}/wiki/_Sidebar.md +0 -0
  266. {gam7-7.14.3 → gam7-7.14.4}/wiki/gam.cfg.md +0 -0
  267. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-AdminSettingsExamples.md +0 -0
  268. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Android-Installation.md +0 -0
  269. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-BulkOperations.md +0 -0
  270. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-CalendarExamples.md +0 -0
  271. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Chat-Bot.md +0 -0
  272. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Chrome-Browser-Management.md +0 -0
  273. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Chrome-OS-Installation.md +0 -0
  274. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Chrome-Policy-Settings.md +0 -0
  275. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Cloud-Identity-Groups.md +0 -0
  276. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  277. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Calendars.md +0 -0
  278. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Definitions.md +0 -0
  279. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Drive.md +0 -0
  280. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Email.md +0 -0
  281. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  282. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Groups.md +0 -0
  283. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Command-Reference-Users.md +0 -0
  284. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  285. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  286. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-CreatingClientSecretsFile.md +0 -0
  287. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Custom-Schemas.md +0 -0
  288. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Data-Transfers.md +0 -0
  289. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-DomainVerification.md +0 -0
  290. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-ExamplesAccountAuditing.md +0 -0
  291. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-ExamplesCSV.md +0 -0
  292. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-ExamplesEmailSettings.md +0 -0
  293. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-ExamplesOrganizations.md +0 -0
  294. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM-Discussion-Group.md +0 -0
  295. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  296. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM-options-files.md +0 -0
  297. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  298. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM3CSVListings.md +0 -0
  299. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM3DirectoryCommands.md +0 -0
  300. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM3GroupSettings.md +0 -0
  301. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GAM7-FAQ.md +0 -0
  302. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  303. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-GoogleDriveManagement.md +0 -0
  304. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  305. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Home.md +0 -0
  306. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  307. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Inbound-SSO-Settings.md +0 -0
  308. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-LicenseExamples.md +0 -0
  309. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Managing-Admins.md +0 -0
  310. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  311. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Managing-Devices.md +0 -0
  312. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Managing-Google-Classroom.md +0 -0
  313. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-OAuthKeyManagement.md +0 -0
  314. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Printers.md +0 -0
  315. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-ResellerCommands.md +0 -0
  316. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  317. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-SecurityExamples.md +0 -0
  318. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-UnmanagedUsersExamples.md +0 -0
  319. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Use-a-Yubikey.md +0 -0
  320. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  321. {gam7-7.14.3 → gam7-7.14.4}/wiki/l-_Footer.md +0 -0
@@ -292,10 +292,10 @@ jobs:
292
292
  if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true'
293
293
  run: |
294
294
  cd "${OPENSSL_SOURCE_PATH}"
295
- if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
295
+ #if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then
296
296
  # https://github.com/openssl/openssl/issues/26239
297
297
  export CFLAGS=-DNO_INTERLOCKEDOR64
298
- fi
298
+ #fi
299
299
  # --libdir=lib is needed so Python can find OpenSSL libraries
300
300
  "${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS
301
301
 
@@ -462,7 +462,7 @@ jobs:
462
462
  curl -O -L "$latest_crypt_whl"
463
463
  "$PYTHON" -m pip install cryptography*.whl
464
464
 
465
- - uses: actions-rust-lang/setup-rust-toolchain@v1
465
+ #- uses: actions-rust-lang/setup-rust-toolchain@v1
466
466
 
467
467
  # - name: Compile cryptography from source (no legacy)
468
468
  # if: runner.os != 'Windows' || runner.arch != 'ARM64'
@@ -473,8 +473,7 @@ jobs:
473
473
  run: |
474
474
  echo "before anything..."
475
475
  "$PYTHON" -m pip list
476
- "$PYTHON" -m pip install --upgrade -r requirements.txt
477
- echo "after requirements..."
476
+ "$PYTHON" -m pip install --upgrade ..[yubikey]
478
477
  "$PYTHON" -m pip list
479
478
  #"$PYTHON" -m pip install --force-reinstall --no-deps --upgrade cryptography
480
479
  echo "after everything..."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.14.3
3
+ Version: 7.14.4
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -7,7 +7,6 @@ authors = [
7
7
  { name="Jay Lee", email="jay0lee@gmail.com" },
8
8
  { name="Ross Scroggs", email="Ross.Scroggs@gmail.com" },
9
9
  ]
10
- # The following deps and optional deps should be edited to match: setup.cfg, requirements.txt
11
10
  # notice that yubikey-manager remains optional further down since it is less command and adds
12
11
  #significant compile dependencies.
13
12
  dependencies = [
@@ -1,3 +1,18 @@
1
+ 7.14.04
2
+
3
+ Fixed bug in `gam print|show cigroups cimember <UserItem>` that generated the following error:
4
+ ```
5
+ ERROR: Cloud Identity Group: groups/-, Print Failed: Error(4013): Insufficient permissions to retrieve memberships.
6
+ ```
7
+
8
+ Updated `gam <UserTypeEntity> update user suspended off` and `gam <UserTypeEntity> unsuspend users`
9
+ to handle the following error that occurs when trying to unsuspend a user that has been suspended for abuse.
10
+ ```
11
+ ERROR: 412: adminCannotUnsuspend - Cannot restore a user suspended for abuse.
12
+ ```
13
+
14
+ * See: https://support.google.com/a/answer/1110339
15
+
1
16
  7.14.03
2
17
 
3
18
  Fixed bug in `gam print cigroup-members includederivedmembership` that caused a trap.
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
25
25
  """
26
26
 
27
27
  __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
28
- __version__ = '7.14.03'
28
+ __version__ = '7.14.04'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -36832,11 +36832,11 @@ def doPrintCIGroups():
36832
36832
 
36833
36833
  ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
36834
36834
  setTrueCustomerId()
36835
+ parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
36835
36836
  delimiter = GC.Values[GC.CSV_OUTPUT_FIELD_DELIMITER]
36836
36837
  memberRestrictions = sortHeaders = False
36837
36838
  memberDisplayOptions = initPGGroupMemberDisplayOptions()
36838
36839
  pageSize = 500
36839
- parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
36840
36840
  groupFieldsLists = {'ci': ['groupKey']}
36841
36841
  csvPF = CSVPrintFile(['email'])
36842
36842
  FJQC = FormatJSONQuoteChar(csvPF)
@@ -36854,7 +36854,7 @@ def doPrintCIGroups():
36854
36854
  showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user'])
36855
36855
  elif myarg in {'cimember', 'enterprisemember', 'ciowner'}:
36856
36856
  emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group'])
36857
- memberQuery = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels"
36857
+ memberQuery = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels && parent == '{parent}'"
36858
36858
  entitySelection = None
36859
36859
  if myarg == 'ciowner':
36860
36860
  showOwnedBy = emailAddress
@@ -37256,6 +37256,7 @@ def _getCIListGroupMembersArgs(listView):
37256
37256
  def doPrintCIGroupMembers():
37257
37257
  ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
37258
37258
  setTrueCustomerId()
37259
+ parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
37259
37260
  memberOptions = initMemberOptions()
37260
37261
  memberDisplayOptions = initIPSGMGroupMemberDisplayOptions()
37261
37262
  groupColumn = True
@@ -37277,7 +37278,7 @@ def doPrintCIGroupMembers():
37277
37278
  showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user'])
37278
37279
  elif myarg in {'cimember', 'enterprisemember', 'ciowner'}:
37279
37280
  emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group'])
37280
- query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels"
37281
+ query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels && parent == '{parent}'"
37281
37282
  entityList = None
37282
37283
  if myarg == 'ciowner':
37283
37284
  showOwnedBy = emailAddress
@@ -37479,6 +37480,7 @@ def doShowCIGroupMembers():
37479
37480
 
37480
37481
  ci = buildGAPIObject(API.CLOUDIDENTITY_GROUPS)
37481
37482
  setTrueCustomerId()
37483
+ parent = f'customers/{GC.Values[GC.CUSTOMER_ID]}'
37482
37484
  subTitle = f'{Msg.ALL} {Ent.Plural(Ent.CLOUD_IDENTITY_GROUP)}'
37483
37485
  groupFieldsLists = {'ci': ['groupKey', 'name']}
37484
37486
  entityList = query = showOwnedBy = None
@@ -37496,7 +37498,7 @@ def doShowCIGroupMembers():
37496
37498
  showOwnedBy = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user'])
37497
37499
  elif myarg in {'cimember', 'enterprisemember', 'ciowner'}:
37498
37500
  emailAddress = convertUIDtoEmailAddress(getEmailAddress(), emailTypes=['user', 'group'])
37499
- query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels"
37501
+ query = f"member_key_id == '{emailAddress}' && '{CIGROUP_DISCUSSION_FORUM_LABEL}' in labels parent == '{parent}'"
37500
37502
  entityList = None
37501
37503
  if myarg == 'ciowner':
37502
37504
  showOwnedBy = emailAddress
@@ -44425,7 +44427,7 @@ def updateUsers(entityList):
44425
44427
  try:
44426
44428
  result = callGAPI(cd.users(), 'update',
44427
44429
  throwReasons=[GAPI.CONDITION_NOT_MET, GAPI.USER_NOT_FOUND, GAPI.DOMAIN_NOT_FOUND,
44428
- GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
44430
+ GAPI.FORBIDDEN, GAPI.BAD_REQUEST, GAPI.ADMIN_CANNOT_UNSUSPEND,
44429
44431
  GAPI.INVALID, GAPI.INVALID_INPUT, GAPI.INVALID_PARAMETER,
44430
44432
  GAPI.INVALID_ORGUNIT, GAPI.INVALID_SCHEMA_VALUE, GAPI.DUPLICATE,
44431
44433
  GAPI.INSUFFICIENT_ARCHIVED_USER_LICENSES, GAPI.CONFLICT],
@@ -44487,7 +44489,8 @@ def updateUsers(entityList):
44487
44489
  entityActionFailedWarning([Ent.USER, user, Ent.USER, body['primaryEmail']], str(e), i, count)
44488
44490
  except GAPI.invalidOrgunit:
44489
44491
  entityActionFailedWarning([Ent.USER, user], Msg.INVALID_ORGUNIT, i, count)
44490
- except (GAPI.resourceNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden, GAPI.badRequest,
44492
+ except (GAPI.resourceNotFound, GAPI.domainNotFound, GAPI.domainCannotUseApis,
44493
+ GAPI.forbidden, GAPI.badRequest, GAPI.adminCannotUnsuspend,
44491
44494
  GAPI.invalid, GAPI.invalidInput, GAPI.invalidParameter, GAPI.insufficientArchivedUserLicenses,
44492
44495
  GAPI.conflict, GAPI.badRequest, GAPI.backendError, GAPI.systemError, GAPI.conditionNotMet) as e:
44493
44496
  entityActionFailedWarning([Ent.USER, user], str(e), i, count)
@@ -44655,12 +44658,14 @@ def suspendUnsuspendUsers(entityList):
44655
44658
  try:
44656
44659
  callGAPI(cd.users(), 'update',
44657
44660
  throwReasons=[GAPI.USER_NOT_FOUND, GAPI.DOMAIN_NOT_FOUND,
44658
- GAPI.DOMAIN_CANNOT_USE_APIS, GAPI.FORBIDDEN, GAPI.BAD_REQUEST],
44661
+ GAPI.DOMAIN_CANNOT_USE_APIS, GAPI.FORBIDDEN, GAPI.BAD_REQUEST,
44662
+ GAPI.ADMIN_CANNOT_UNSUSPEND],
44659
44663
  userKey=user, body=body)
44660
44664
  entityActionPerformed([Ent.USER, user], i, count)
44661
44665
  except GAPI.userNotFound:
44662
44666
  entityUnknownWarning(Ent.USER, user, i, count)
44663
- except (GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden, GAPI.badRequest) as e:
44667
+ except (GAPI.domainNotFound, GAPI.domainCannotUseApis, GAPI.forbidden,
44668
+ GAPI.badRequest, GAPI.adminCannotUnsuspend) as e:
44664
44669
  entityActionFailedWarning([Ent.USER, user], str(e), i, count)
44665
44670
 
44666
44671
  # gam suspend users <UserTypeEntity> [noactionifalias]
@@ -45044,6 +45049,7 @@ def infoUsers(entityList):
45044
45049
 
45045
45050
  cd = buildGAPIObject(API.DIRECTORY)
45046
45051
  ci = None
45052
+ setTrueCustomerId()
45047
45053
  getAliases = getBuildingNames = getCIGroupsTree = getGroups = getLicenses = getSchemas = not GC.Values[GC.QUICK_INFO_USER]
45048
45054
  getGroupsTree = False
45049
45055
  FJQC = FormatJSONQuoteChar()
@@ -49545,7 +49551,7 @@ def doCourseAddItems(courseIdList, getEntityListArg):
49545
49551
  addItems = getStringReturnInList(Cmd.OB_COURSE_ALIAS)
49546
49552
  elif addType == Ent.COURSE_TOPIC:
49547
49553
  addItems = getStringReturnInList(Cmd.OB_COURSE_TOPIC)
49548
- else: # addType == Ent.COURSE_ANNOUNCEMENT:
49554
+ else: #elif addType == Ent.COURSE_ANNOUNCEMENT:
49549
49555
  addItems = [getCourseAnnouncement(True)]
49550
49556
  courseParticipantLists = None
49551
49557
  else:
@@ -23,6 +23,7 @@
23
23
  ABORTED = 'aborted'
24
24
  ABUSIVE_CONTENT_RESTRICTION = 'abusiveContentRestriction'
25
25
  ACCESS_NOT_CONFIGURED = 'accessNotConfigured'
26
+ ADMIN_CANNOT_UNSUSPEND = 'adminCannotUnsuspend'
26
27
  ALREADY_EXISTS = 'alreadyExists'
27
28
  APPLY_LABEL_FORBIDDEN = 'applyLabelForbidden'
28
29
  AUTH_ERROR = 'authError'
@@ -368,6 +369,8 @@ class abusiveContentRestriction(Exception):
368
369
  pass
369
370
  class accessNotConfigured(Exception):
370
371
  pass
372
+ class adminCannotUnsuspend(Exception):
373
+ pass
371
374
  class alreadyExists(Exception):
372
375
  pass
373
376
  class applyLabelForbidden(Exception):
@@ -689,6 +692,7 @@ REASON_EXCEPTION_MAP = {
689
692
  ABORTED: aborted,
690
693
  ABUSIVE_CONTENT_RESTRICTION: abusiveContentRestriction,
691
694
  ACCESS_NOT_CONFIGURED: accessNotConfigured,
695
+ ADMIN_CANNOT_UNSUSPEND: adminCannotUnsuspend,
692
696
  ALREADY_EXISTS: alreadyExists,
693
697
  APPLY_LABEL_FORBIDDEN: applyLabelForbidden,
694
698
  AUTH_ERROR: authError,
@@ -1,20 +1,14 @@
1
1
  # Install GAM as Python Library
2
2
 
3
- Thanks to Jay Lee for showing me how to do this.
4
-
5
- On Windows, you need to install Git to use the pip command.
6
- * See: https://pythoninoffice.com/python-pip-install-from-github/
7
-
8
- Scroll down to Install Git
9
3
 
10
4
  You can install GAM as a Python library with pip.
11
5
  ```
12
- pip install git+https://github.com/GAM-team/GAM.git#subdirectory=src
6
+ pip install gam7
13
7
  ```
14
8
 
15
9
  Or as a PEP 508 Requirement Specifier, e.g. in requirements.txt file:
16
10
  ```
17
- gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git#subdirectory=src
11
+ gam7
18
12
  ```
19
13
 
20
14
  Or a pyproject.toml file:
@@ -23,13 +17,13 @@ Or a pyproject.toml file:
23
17
  name = "your-project"
24
18
  # ...
25
19
  dependencies = [
26
- "gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git#subdirectory=src"
20
+ "gam7"
27
21
  ]
28
22
  ```
29
23
 
30
- Target a specific revision or tag:
24
+ Target a specific version:
31
25
  ```
32
- gam-for-google-workspace @ git+https://github.com/GAM-team/GAM.git@v7.12.01#subdirectory=src
26
+ gam7==/7.13.3
33
27
  ```
34
28
 
35
29
  ## Using the library
@@ -214,6 +214,12 @@ The option `updatesheetprotectedranges` only applies to items in `<DriveFileEnti
214
214
  * ACLs with role reader or commenter will be removed from existing protected ranges
215
215
  * ACLs with role writer or higher will be added to existing protected ranges
216
216
 
217
+ `
218
+ `enforceexpansiveaccess` defaults to the value of `gam.cfg/enforce_expansive_access` that controls
219
+ the ability to update inherited ACLs.
220
+ * False - Inherited ACLs can be updated
221
+ * True = Inherited ACLs can not be updated
222
+
217
223
  By default, the file ID is displayed in the output; to see the file name, use the `showtitles`
218
224
  option; this requires an additional API call per file.
219
225
 
@@ -234,6 +240,11 @@ The option `updatesheetprotectedranges` only applies to items in `<DriveFileEnti
234
240
  * Sheet Protected Ranges are updated to reflect the deleted ACL; additional API calls are required.
235
241
  * ACLs with any role will be removed from existing protected ranges
236
242
 
243
+ `enforceexpansiveaccess` defaults to the value of `gam.cfg/enforce_expansive_access` that controls
244
+ the ability to delete delete inherited ACLs.
245
+ * False - Inherited ACLs can be deleted
246
+ * True = Inherited ACLs can not be deleted
247
+
237
248
  By default, the file ID is displayed in the output; to see the file name, use the `showtitles`
238
249
  option; this requires an additional API call per file.
239
250
 
@@ -266,6 +277,11 @@ gam <UserTypeEntity> delete permissions <DriveFileEntity> <DriveFilePermissionID
266
277
  <PermissionMatch>* [<PermissionMatchAction>]
267
278
  [enforceexpansiveaccess [<Boolean>]]
268
279
  ```
280
+ `enforceexpansiveaccess` defaults to the value of `gam.cfg/enforce_expansive_access` that controls
281
+ the ability to delete delete inherited ACLs.
282
+ * False - Inherited ACLs can be deleted
283
+ * True = Inherited ACLs can not be deleted
284
+
269
285
  When deleting permissions from JSON data, permissions with role `owner` true are never processed.
270
286
 
271
287
  ## Display file permissions/sharing
@@ -1,14 +0,0 @@
1
- chardet>=5.2.0
2
- cryptography>=44.0.2
3
- distro; sys_platform=='linux'
4
- filelock>=3.18.0
5
- google-api-python-client>=2.167.0
6
- google-auth-httplib2>=0.2.0
7
- google-auth-oauthlib>=1.2.2
8
- google-auth>=2.39.0
9
- httplib2>=0.22.0
10
- lxml>=5.4.0
11
- passlib>=1.7.4
12
- pathvalidate>=3.2.3
13
- python-dateutil
14
- yubikey-manager>=5.6.1
gam7-7.14.3/src/setup.cfg DELETED
@@ -1,55 +0,0 @@
1
- [metadata]
2
- name = GAM for Google Workspace
3
- version = attr: gam__version__
4
- description = Command line management for Google Workspaces
5
- long_description = file: readme.md
6
- long_description_content_type = text/markdown
7
- url = https://github.com/GAM-team/GAM
8
- author = GAM Team
9
- author_email = google-apps-manager@googlegroups.com
10
- license = Apache
11
- license_files = LICENSE
12
- keywords = google, oauth2, gsuite, google-apps, google-admin-sdk, google-drive, google-cloud, google-calendar, gam, google-api, oauth2-client, google-workspace
13
- classifiers =
14
- Programming Language :: Python :: 3
15
- Programming Language :: Python :: 3 :: Only
16
- Programming Language :: Python :: 3.9
17
- Programming Language :: Python :: 3.10
18
- Programming Language :: Python :: 3.11
19
- Programming Language :: Python :: 3.12
20
- Programming Language :: Python :: 3.13
21
- License :: OSI Approved :: Apache License
22
-
23
- [options]
24
- packages = find:
25
- python_requires = >= 3.9
26
- # The following files should be edited to match: pyproject.toml, requirements.txt
27
- install_requires =
28
- chardet >= 5.2.0
29
- cryptography >= 44.0.2
30
- distro; sys_platform == 'linux'
31
- filelock >= 3.18.0
32
- google-api-python-client >= 2.167.0
33
- google-auth-httplib2 >= 0.2.0
34
- google-auth-oauthlib >= 1.2.2
35
- google-auth >= 2.39.0
36
- httplib2 >= 0.22.0
37
- lxml >= 5.4.0
38
- passlib >= 1.7.4
39
- pathvalidate >= 3.2.3
40
- python-dateutil
41
- yubikey-manager >= 5.6.1
42
-
43
- [options.package_data]
44
- * = *.pem
45
-
46
- # used during pip install .[test]
47
- [options.extras_require]
48
- test = pre-commit
49
-
50
- [options.entry_points]
51
- console_scripts =
52
- gam = gam.__main__:main
53
-
54
- [bdist_wheel]
55
- universal = True
gam7-7.14.3/src/setup.py DELETED
@@ -1,3 +0,0 @@
1
- from setuptools import setup
2
-
3
- setup()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes