gam7 7.6.14__tar.gz → 7.7.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.

Potentially problematic release.


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

Files changed (318) hide show
  1. {gam7-7.6.14 → gam7-7.7.0}/PKG-INFO +1 -1
  2. {gam7-7.6.14 → gam7-7.7.0}/src/GamCommands.txt +0 -13
  3. {gam7-7.6.14 → gam7-7.7.0}/src/GamUpdate.txt +17 -1
  4. {gam7-7.6.14 → gam7-7.7.0}/src/gam/__init__.py +26 -59
  5. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glclargs.py +0 -1
  6. {gam7-7.6.14 → gam7-7.7.0}/wiki/Administrators.md +27 -7
  7. {gam7-7.6.14 → gam7-7.7.0}/wiki/GamUpdates.md +8 -0
  8. {gam7-7.6.14 → gam7-7.7.0}/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +2 -2
  9. {gam7-7.6.14 → gam7-7.7.0}/wiki/Version-and-Help.md +6 -6
  10. {gam7-7.6.14 → gam7-7.7.0}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  11. {gam7-7.6.14 → gam7-7.7.0}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  12. {gam7-7.6.14 → gam7-7.7.0}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  13. {gam7-7.6.14 → gam7-7.7.0}/.github/ISSUE_TEMPLATE.txt +0 -0
  14. {gam7-7.6.14 → gam7-7.7.0}/.github/actions/decrypt.sh +0 -0
  15. {gam7-7.6.14 → gam7-7.7.0}/.github/actions/entitlements.plist +0 -0
  16. {gam7-7.6.14 → gam7-7.7.0}/.github/actions/package_exclusions.txt +0 -0
  17. {gam7-7.6.14 → gam7-7.7.0}/.github/stale.yml +0 -0
  18. {gam7-7.6.14 → gam7-7.7.0}/.github/workflows/build.yml +0 -0
  19. {gam7-7.6.14 → gam7-7.7.0}/.github/workflows/codeql-analysis.yml +0 -0
  20. {gam7-7.6.14 → gam7-7.7.0}/.github/workflows/get-cacerts.yml +0 -0
  21. {gam7-7.6.14 → gam7-7.7.0}/.github/workflows/pushwiki.yml +0 -0
  22. {gam7-7.6.14 → gam7-7.7.0}/.github/workflows/pypi.yml +0 -0
  23. {gam7-7.6.14 → gam7-7.7.0}/.pre-commit-config.yaml +0 -0
  24. {gam7-7.6.14 → gam7-7.7.0}/LICENSE +0 -0
  25. {gam7-7.6.14 → gam7-7.7.0}/README.md +0 -0
  26. {gam7-7.6.14 → gam7-7.7.0}/pyproject.toml +0 -0
  27. {gam7-7.6.14 → gam7-7.7.0}/src/.gitignore +0 -0
  28. {gam7-7.6.14 → gam7-7.7.0}/src/LICENSE +0 -0
  29. {gam7-7.6.14 → gam7-7.7.0}/src/cacerts.pem +0 -0
  30. {gam7-7.6.14 → gam7-7.7.0}/src/callgam.py +0 -0
  31. {gam7-7.6.14 → gam7-7.7.0}/src/gam/__main__.py +0 -0
  32. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/__init__.py +0 -0
  33. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/auth.py +0 -0
  34. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/client.py +0 -0
  35. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/core.py +0 -0
  36. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/data.py +0 -0
  37. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/http.py +0 -0
  38. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/http_core.py +0 -0
  39. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/http_interface.py +0 -0
  40. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/mock_http.py +0 -0
  41. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/mock_http_core.py +0 -0
  42. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/mock_service.py +0 -0
  43. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/service.py +0 -0
  44. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/token_store.py +0 -0
  45. {gam7-7.6.14 → gam7-7.7.0}/src/gam/atom/url.py +0 -0
  46. {gam7-7.6.14 → gam7-7.7.0}/src/gam/cacerts.pem +0 -0
  47. {gam7-7.6.14 → gam7-7.7.0}/src/gam/cbcm-v1.1beta1.json +0 -0
  48. {gam7-7.6.14 → gam7-7.7.0}/src/gam/contactdelegation-v1.json +0 -0
  49. {gam7-7.6.14 → gam7-7.7.0}/src/gam/datastudio-v1.json +0 -0
  50. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/__init__.py +0 -0
  51. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glaction.py +0 -0
  52. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glapi.py +0 -0
  53. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glcfg.py +0 -0
  54. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glentity.py +0 -0
  55. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glgapi.py +0 -0
  56. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glgdata.py +0 -0
  57. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glglobals.py +0 -0
  58. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glindent.py +0 -0
  59. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glmsgs.py +0 -0
  60. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glskus.py +0 -0
  61. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/gluprop.py +0 -0
  62. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/glverlibs.py +0 -0
  63. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gamlib/yubikey.py +0 -0
  64. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/__init__.py +0 -0
  65. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/alt/__init__.py +0 -0
  66. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/alt/app_engine.py +0 -0
  67. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/alt/appengine.py +0 -0
  68. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/apps/__init__.py +0 -0
  69. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/apps/audit/__init__.py +0 -0
  70. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/apps/audit/service.py +0 -0
  71. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  72. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/apps/contacts/service.py +0 -0
  73. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/apps/service.py +0 -0
  74. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/service.py +0 -0
  75. {gam7-7.6.14 → gam7-7.7.0}/src/gam/gdata/urlfetch.py +0 -0
  76. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/__init__.py +0 -0
  77. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/_auth.py +0 -0
  78. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/_helpers.py +0 -0
  79. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/channel.py +0 -0
  80. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/discovery.py +0 -0
  81. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  82. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  83. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  84. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  85. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/errors.py +0 -0
  86. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/http.py +0 -0
  87. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/mimeparse.py +0 -0
  88. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/model.py +0 -0
  89. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/schema.py +0 -0
  90. {gam7-7.6.14 → gam7-7.7.0}/src/gam/googleapiclient/version.py +0 -0
  91. {gam7-7.6.14 → gam7-7.7.0}/src/gam/iso8601/__init__.py +0 -0
  92. {gam7-7.6.14 → gam7-7.7.0}/src/gam/iso8601/iso8601.py +0 -0
  93. {gam7-7.6.14 → gam7-7.7.0}/src/gam/meet-v2beta.json +0 -0
  94. {gam7-7.6.14 → gam7-7.7.0}/src/gam/serviceaccountlookup-v1.json +0 -0
  95. {gam7-7.6.14 → gam7-7.7.0}/src/gam/six.py +0 -0
  96. {gam7-7.6.14 → gam7-7.7.0}/src/gam-install.sh +0 -0
  97. {gam7-7.6.14 → gam7-7.7.0}/src/gam-setup.bat +0 -0
  98. {gam7-7.6.14 → gam7-7.7.0}/src/gam.exe.manifest +0 -0
  99. {gam7-7.6.14 → gam7-7.7.0}/src/gam.py +0 -0
  100. {gam7-7.6.14 → gam7-7.7.0}/src/gam.spec +0 -0
  101. {gam7-7.6.14 → gam7-7.7.0}/src/gam.wxs +0 -0
  102. {gam7-7.6.14 → gam7-7.7.0}/src/license.rtf +0 -0
  103. {gam7-7.6.14 → gam7-7.7.0}/src/requirements-dev.txt +0 -0
  104. {gam7-7.6.14 → gam7-7.7.0}/src/requirements.txt +0 -0
  105. {gam7-7.6.14 → gam7-7.7.0}/src/setup.cfg +0 -0
  106. {gam7-7.6.14 → gam7-7.7.0}/src/setup.py +0 -0
  107. {gam7-7.6.14 → gam7-7.7.0}/src/tools/a_atleast_b.py +0 -0
  108. {gam7-7.6.14 → gam7-7.7.0}/src/tools/gen-wix-xml-filelist.py +0 -0
  109. {gam7-7.6.14 → gam7-7.7.0}/src/tools/mkGamRef.py +0 -0
  110. {gam7-7.6.14 → gam7-7.7.0}/src/tools/openssl.props +0 -0
  111. {gam7-7.6.14 → gam7-7.7.0}/src/version_info.txt.in +0 -0
  112. {gam7-7.6.14 → gam7-7.7.0}/wiki/00scratch.md +0 -0
  113. {gam7-7.6.14 → gam7-7.7.0}/wiki/Addresses.md +0 -0
  114. {gam7-7.6.14 → gam7-7.7.0}/wiki/Alert-Center.md +0 -0
  115. {gam7-7.6.14 → gam7-7.7.0}/wiki/Aliases.md +0 -0
  116. {gam7-7.6.14 → gam7-7.7.0}/wiki/Authorization.md +0 -0
  117. {gam7-7.6.14 → gam7-7.7.0}/wiki/BNF-Syntax.md +0 -0
  118. {gam7-7.6.14 → gam7-7.7.0}/wiki/Basic-Items.md +0 -0
  119. {gam7-7.6.14 → gam7-7.7.0}/wiki/Bulk-Processing.md +0 -0
  120. {gam7-7.6.14 → gam7-7.7.0}/wiki/CSV-Input-Filtering.md +0 -0
  121. {gam7-7.6.14 → gam7-7.7.0}/wiki/CSV-Output-Filtering.md +0 -0
  122. {gam7-7.6.14 → gam7-7.7.0}/wiki/CSV-Special-Characters.md +0 -0
  123. {gam7-7.6.14 → gam7-7.7.0}/wiki/Calendars-Access.md +0 -0
  124. {gam7-7.6.14 → gam7-7.7.0}/wiki/Calendars-Events.md +0 -0
  125. {gam7-7.6.14 → gam7-7.7.0}/wiki/Calendars.md +0 -0
  126. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chat-Bot.md +0 -0
  127. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-AUE-Counts.md +0 -0
  128. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Browser-Cloud-Management.md +0 -0
  129. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Installed-Apps.md +0 -0
  130. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Needs-Attention-Counts.md +0 -0
  131. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Policies.md +0 -0
  132. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Printers.md +0 -0
  133. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Profile-Management.md +0 -0
  134. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Version-Counts.md +0 -0
  135. {gam7-7.6.14 → gam7-7.7.0}/wiki/Chrome-Version-History.md +0 -0
  136. {gam7-7.6.14 → gam7-7.7.0}/wiki/ChromeOS-Devices.md +0 -0
  137. {gam7-7.6.14 → gam7-7.7.0}/wiki/Classroom-Courses.md +0 -0
  138. {gam7-7.6.14 → gam7-7.7.0}/wiki/Classroom-Guardians.md +0 -0
  139. {gam7-7.6.14 → gam7-7.7.0}/wiki/Classroom-Invitations.md +0 -0
  140. {gam7-7.6.14 → gam7-7.7.0}/wiki/Classroom-Membership.md +0 -0
  141. {gam7-7.6.14 → gam7-7.7.0}/wiki/Cloud-Channel.md +0 -0
  142. {gam7-7.6.14 → gam7-7.7.0}/wiki/Cloud-Identity-Devices.md +0 -0
  143. {gam7-7.6.14 → gam7-7.7.0}/wiki/Cloud-Identity-Groups-Membership.md +0 -0
  144. {gam7-7.6.14 → gam7-7.7.0}/wiki/Cloud-Identity-Groups.md +0 -0
  145. {gam7-7.6.14 → gam7-7.7.0}/wiki/Cloud-Identity-Policies.md +0 -0
  146. {gam7-7.6.14 → gam7-7.7.0}/wiki/Cloud-Storage.md +0 -0
  147. {gam7-7.6.14 → gam7-7.7.0}/wiki/Collections-of-ChromeOS-Devices.md +0 -0
  148. {gam7-7.6.14 → gam7-7.7.0}/wiki/Collections-of-Items.md +0 -0
  149. {gam7-7.6.14 → gam7-7.7.0}/wiki/Collections-of-Users.md +0 -0
  150. {gam7-7.6.14 → gam7-7.7.0}/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +0 -0
  151. {gam7-7.6.14 → gam7-7.7.0}/wiki/Command-Line-Parsing.md +0 -0
  152. {gam7-7.6.14 → gam7-7.7.0}/wiki/Command-Logging-Progress.md +0 -0
  153. {gam7-7.6.14 → gam7-7.7.0}/wiki/Context-Aware-Access-Levels.md +0 -0
  154. {gam7-7.6.14 → gam7-7.7.0}/wiki/Customer.md +0 -0
  155. {gam7-7.6.14 → gam7-7.7.0}/wiki/Domain-People-Contacts-Profiles.md +0 -0
  156. {gam7-7.6.14 → gam7-7.7.0}/wiki/Domain-SharedContacts-GAL.md +0 -0
  157. {gam7-7.6.14 → gam7-7.7.0}/wiki/Domains-Verification.md +0 -0
  158. {gam7-7.6.14 → gam7-7.7.0}/wiki/Domains.md +0 -0
  159. {gam7-7.6.14 → gam7-7.7.0}/wiki/Downloads-Installs.md +0 -0
  160. {gam7-7.6.14 → gam7-7.7.0}/wiki/Drive-File-Selection.md +0 -0
  161. {gam7-7.6.14 → gam7-7.7.0}/wiki/Drive-Items.md +0 -0
  162. {gam7-7.6.14 → gam7-7.7.0}/wiki/Drive-REST-API-v3.md +0 -0
  163. {gam7-7.6.14 → gam7-7.7.0}/wiki/Email-Audit-Monitor.md +0 -0
  164. {gam7-7.6.14 → gam7-7.7.0}/wiki/Find-File-Owner.md +0 -0
  165. {gam7-7.6.14 → gam7-7.7.0}/wiki/GAM-Public-Chat-Room.md +0 -0
  166. {gam7-7.6.14 → gam7-7.7.0}/wiki/GAM-Return-Codes.md +0 -0
  167. {gam7-7.6.14 → gam7-7.7.0}/wiki/GAM-with-minimal-GCP-rights.md +0 -0
  168. {gam7-7.6.14 → gam7-7.7.0}/wiki/GAM7-on-Android-Devices.md +0 -0
  169. {gam7-7.6.14 → gam7-7.7.0}/wiki/GAM7-on-Chrome-OS-Devices.md +0 -0
  170. {gam7-7.6.14 → gam7-7.7.0}/wiki/Google-Data-Transfers.md +0 -0
  171. {gam7-7.6.14 → gam7-7.7.0}/wiki/Google-Network-Addresses.md +0 -0
  172. {gam7-7.6.14 → gam7-7.7.0}/wiki/Groups-Membership.md +0 -0
  173. {gam7-7.6.14 → gam7-7.7.0}/wiki/Groups.md +0 -0
  174. {gam7-7.6.14 → gam7-7.7.0}/wiki/HTTPS-Proxy.md +0 -0
  175. {gam7-7.6.14 → gam7-7.7.0}/wiki/Home.md +0 -0
  176. {gam7-7.6.14 → gam7-7.7.0}/wiki/How-to-Install-GAM7.md +0 -0
  177. {gam7-7.6.14 → gam7-7.7.0}/wiki/How-to-Uninstall-GAM7.md +0 -0
  178. {gam7-7.6.14 → gam7-7.7.0}/wiki/How-to-Update-GAM7.md +0 -0
  179. {gam7-7.6.14 → gam7-7.7.0}/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +0 -0
  180. {gam7-7.6.14 → gam7-7.7.0}/wiki/Inbound-SSO.md +0 -0
  181. {gam7-7.6.14 → gam7-7.7.0}/wiki/Install-GAM-as-Python-Library.md +0 -0
  182. {gam7-7.6.14 → gam7-7.7.0}/wiki/Licenses.md +0 -0
  183. {gam7-7.6.14 → gam7-7.7.0}/wiki/List-Items.md +0 -0
  184. {gam7-7.6.14 → gam7-7.7.0}/wiki/List.md +0 -0
  185. {gam7-7.6.14 → gam7-7.7.0}/wiki/Meta-Commands-and-File-Redirection.md +0 -0
  186. {gam7-7.6.14 → gam7-7.7.0}/wiki/Mobile-Devices.md +0 -0
  187. {gam7-7.6.14 → gam7-7.7.0}/wiki/Organizational-Units.md +0 -0
  188. {gam7-7.6.14 → gam7-7.7.0}/wiki/Other-Resources.md +0 -0
  189. {gam7-7.6.14 → gam7-7.7.0}/wiki/Permission-Matches.md +0 -0
  190. {gam7-7.6.14 → gam7-7.7.0}/wiki/Python-Regular-Expressions.md +0 -0
  191. {gam7-7.6.14 → gam7-7.7.0}/wiki/README.md +0 -0
  192. {gam7-7.6.14 → gam7-7.7.0}/wiki/Rclone.md +0 -0
  193. {gam7-7.6.14 → gam7-7.7.0}/wiki/Reports.md +0 -0
  194. {gam7-7.6.14 → gam7-7.7.0}/wiki/Reseller.md +0 -0
  195. {gam7-7.6.14 → gam7-7.7.0}/wiki/Resources.md +0 -0
  196. {gam7-7.6.14 → gam7-7.7.0}/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +0 -0
  197. {gam7-7.6.14 → gam7-7.7.0}/wiki/SSL-Root-CA-Certificates.md +0 -0
  198. {gam7-7.6.14 → gam7-7.7.0}/wiki/Schemas.md +0 -0
  199. {gam7-7.6.14 → gam7-7.7.0}/wiki/Scripts.md +0 -0
  200. {gam7-7.6.14 → gam7-7.7.0}/wiki/Send-Email.md +0 -0
  201. {gam7-7.6.14 → gam7-7.7.0}/wiki/Shared-Drives.md +0 -0
  202. {gam7-7.6.14 → gam7-7.7.0}/wiki/Sites.md +0 -0
  203. {gam7-7.6.14 → gam7-7.7.0}/wiki/Tag-Replace.md +0 -0
  204. {gam7-7.6.14 → gam7-7.7.0}/wiki/Todrive.md +0 -0
  205. {gam7-7.6.14 → gam7-7.7.0}/wiki/Unmanaged-Accounts.md +0 -0
  206. {gam7-7.6.14 → gam7-7.7.0}/wiki/Upgrade-Benefits.md +0 -0
  207. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Analytics-Admin.md +0 -0
  208. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Application-Specific-Passwords.md +0 -0
  209. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Backup-Verification-Codes.md +0 -0
  210. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Calendars-Access.md +0 -0
  211. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Calendars-Events.md +0 -0
  212. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Calendars.md +0 -0
  213. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Chat.md +0 -0
  214. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Classification-Labels.md +0 -0
  215. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Classroom-Profile.md +0 -0
  216. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Contacts-Delegates.md +0 -0
  217. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Contacts.md +0 -0
  218. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Deprovision.md +0 -0
  219. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Activity-Settings.md +0 -0
  220. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Cleanup.md +0 -0
  221. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Comments.md +0 -0
  222. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Copy-Move.md +0 -0
  223. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Files-Display.md +0 -0
  224. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Files-Manage.md +0 -0
  225. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Orphans.md +0 -0
  226. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Ownership.md +0 -0
  227. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Permissions.md +0 -0
  228. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Query.md +0 -0
  229. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Revisions.md +0 -0
  230. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Shortcuts.md +0 -0
  231. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Drive-Transfer.md +0 -0
  232. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Forms.md +0 -0
  233. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-CSE.md +0 -0
  234. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Delegates.md +0 -0
  235. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Filters.md +0 -0
  236. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Forwarding.md +0 -0
  237. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Labels.md +0 -0
  238. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Messages-Threads.md +0 -0
  239. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Profile.md +0 -0
  240. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-S-MIME.md +0 -0
  241. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Send-As-Signature-Vacation.md +0 -0
  242. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Gmail-Settings.md +0 -0
  243. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Group-Membership.md +0 -0
  244. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Keep-Notes.md +0 -0
  245. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Looker-Studio.md +0 -0
  246. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Meet.md +0 -0
  247. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-People-Contacts-Profiles.md +0 -0
  248. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Photo.md +0 -0
  249. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Profile-Photo.md +0 -0
  250. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Profile-Sharing.md +0 -0
  251. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Shared-Drives.md +0 -0
  252. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Signout-Turnoff2SV.md +0 -0
  253. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Spreadsheets.md +0 -0
  254. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Tasks.md +0 -0
  255. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-Tokens.md +0 -0
  256. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users-YouTube.md +0 -0
  257. {gam7-7.6.14 → gam7-7.7.0}/wiki/Users.md +0 -0
  258. {gam7-7.6.14 → gam7-7.7.0}/wiki/Using-GAM7-with-a-YubiKey.md +0 -0
  259. {gam7-7.6.14 → gam7-7.7.0}/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +0 -0
  260. {gam7-7.6.14 → gam7-7.7.0}/wiki/Vault-Takeout.md +0 -0
  261. {gam7-7.6.14 → gam7-7.7.0}/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +0 -0
  262. {gam7-7.6.14 → gam7-7.7.0}/wiki/_Sidebar.md +0 -0
  263. {gam7-7.6.14 → gam7-7.7.0}/wiki/gam.cfg.md +0 -0
  264. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-AdminSettingsExamples.md +0 -0
  265. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Android-Installation.md +0 -0
  266. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-BulkOperations.md +0 -0
  267. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-CalendarExamples.md +0 -0
  268. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Chat-Bot.md +0 -0
  269. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Chrome-Browser-Management.md +0 -0
  270. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Chrome-OS-Installation.md +0 -0
  271. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Chrome-Policy-Settings.md +0 -0
  272. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Cloud-Identity-Groups.md +0 -0
  273. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Calendar-Resources.md +0 -0
  274. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Calendars.md +0 -0
  275. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Definitions.md +0 -0
  276. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Drive.md +0 -0
  277. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Email.md +0 -0
  278. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Group-Attributes.md +0 -0
  279. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Groups.md +0 -0
  280. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Command-Reference-Users.md +0 -0
  281. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Context-Aware-Access-Levels.md +0 -0
  282. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +0 -0
  283. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-CreatingClientSecretsFile.md +0 -0
  284. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Custom-Schemas.md +0 -0
  285. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Data-Transfers.md +0 -0
  286. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-DomainVerification.md +0 -0
  287. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-ExamplesAccountAuditing.md +0 -0
  288. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-ExamplesCSV.md +0 -0
  289. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-ExamplesEmailSettings.md +0 -0
  290. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-ExamplesOrganizations.md +0 -0
  291. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM-Discussion-Group.md +0 -0
  292. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM-on-Android-and-Chrome-OS.md +0 -0
  293. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM-options-files.md +0 -0
  294. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM-with--minimal-GCP-rights.md +0 -0
  295. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM3CSVListings.md +0 -0
  296. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM3DirectoryCommands.md +0 -0
  297. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM3GroupSettings.md +0 -0
  298. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GAM7-FAQ.md +0 -0
  299. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Google-Vault---Takeout-Commands.md +0 -0
  300. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-GoogleDriveManagement.md +0 -0
  301. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Grouping-18-or-Older-Users.md +0 -0
  302. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Home.md +0 -0
  303. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-How-to-upgrade-from-Standard-GAM.md +0 -0
  304. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Inbound-SSO-Settings.md +0 -0
  305. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-LicenseExamples.md +0 -0
  306. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Managing-Admins.md +0 -0
  307. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Managing-CloudPrint-Printers.md +0 -0
  308. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Managing-Devices.md +0 -0
  309. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Managing-Google-Classroom.md +0 -0
  310. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-OAuthKeyManagement.md +0 -0
  311. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Printers.md +0 -0
  312. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-ResellerCommands.md +0 -0
  313. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +0 -0
  314. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-SecurityExamples.md +0 -0
  315. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-UnmanagedUsersExamples.md +0 -0
  316. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Use-a-Yubikey.md +0 -0
  317. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +0 -0
  318. {gam7-7.6.14 → gam7-7.7.0}/wiki/l-_Footer.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.6.14
3
+ Version: 7.7.0
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
@@ -3545,19 +3545,6 @@ gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
3545
3545
  [fields <ContactFieldNameList>]
3546
3546
  [formatjson [quotechar <Character>]]
3547
3547
 
3548
- vgam info gal <ContactEntity>
3549
- [basic|full]
3550
- [fields <ContactFieldNameList>]
3551
- [formatjson]
3552
- gam show gal <ContactSelection>
3553
- [basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
3554
- [fields <ContactFieldNameList>]
3555
- [formatjson]
3556
- gam print gal [todrive <ToDriveAttribute>*] <ContactSelection>
3557
- [basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
3558
- [fields <ContactFieldNameList>]
3559
- [formatjson [quotechar <Character>]]
3560
-
3561
3548
  # Domain - People Contacts and Profiles
3562
3549
 
3563
3550
  <PeopleSourceName> ::=
@@ -1,9 +1,25 @@
1
+ 7.07.00
2
+ As of mid-October 2024, Google deprecated the API that retrieved the Global Address List.
3
+
4
+ The following commands have been eliminated.
5
+ ```
6
+ gam info gal
7
+ gam print gal
8
+ gam show gal
9
+ ```
10
+
11
+ These commands are a work-around for `gam print gal`.
12
+ ```
13
+ gam config csv_output_row_filter "includeInGlobalAddressList:boolean:true" redirect csv ./UserGAL.csv print users fields name,gal
14
+ gam config csv_output_row_filter "includeInGlobalAddressList:boolean:true" batch_size 25 redirect csv ./GroupGAL.csv print groups fields name,gal
15
+ ```
16
+
1
17
  7.06.14
2
18
 
3
19
  Updated `gam create|update adminrole` to allow specifying a collection of privileges
4
20
  with `privileges select <FileSelector>|<CSVFileSelector>` which makes copying roles much simpler.
5
21
 
6
- Updated option `role <RoleItem>` to `gam print|show adminroles` to allow display of information
22
+ Added option `role <RoleItem>` to `gam print|show adminroles` to allow display of information
7
23
  for a specific role.
8
24
 
9
25
  7.06.13
@@ -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.06.14'
28
+ __version__ = '7.07.00'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -5655,8 +5655,8 @@ def getGDataUserCredentials(api, user, i, count):
5655
5655
  handleOAuthTokenError(e, True, True, i, count)
5656
5656
  return (userEmail, None)
5657
5657
 
5658
- def getContactsObject(contactFeed):
5659
- contactsObject = initGDataObject(gdata.apps.contacts.service.ContactsService(contactFeed=contactFeed),
5658
+ def getContactsObject():
5659
+ contactsObject = initGDataObject(gdata.apps.contacts.service.ContactsService(contactFeed=True),
5660
5660
  API.CONTACTS)
5661
5661
  return (GC.Values[GC.DOMAIN], contactsObject)
5662
5662
 
@@ -19996,7 +19996,9 @@ def dedupEmailAddressMatches(contactsManager, emailMatchType, fields):
19996
19996
  fields[CONTACT_EMAILS] = savedAddresses
19997
19997
  return updateRequired
19998
19998
 
19999
- def _createContact():
19999
+ # gam create contact <ContactAttribute>+
20000
+ # [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*))| returnidonly]
20001
+ def doCreateDomainContact():
20000
20002
  entityType = Ent.DOMAIN
20001
20003
  contactsManager = ContactsManager()
20002
20004
  parameters = {'csvPF': None, 'titles': ['Domain', CONTACT_ID], 'addCSVData': {}, 'returnIdOnly': False}
@@ -20007,7 +20009,7 @@ def _createContact():
20007
20009
  csvPF.AddTitles(sorted(addCSVData.keys()))
20008
20010
  returnIdOnly = parameters['returnIdOnly']
20009
20011
  contactEntry = contactsManager.FieldsToContact(fields)
20010
- user, contactsObject = getContactsObject(True)
20012
+ user, contactsObject = getContactsObject()
20011
20013
  try:
20012
20014
  contact = callGData(contactsObject, 'CreateContact',
20013
20015
  throwErrors=[GDATA.BAD_REQUEST, GDATA.SERVICE_NOT_APPLICABLE, GDATA.FORBIDDEN],
@@ -20032,11 +20034,6 @@ def _createContact():
20032
20034
  if csvPF:
20033
20035
  csvPF.writeCSVfile('Contacts')
20034
20036
 
20035
- # gam create contact <ContactAttribute>+
20036
- # [(csv [todrive <ToDriveAttribute>*] (addcsvdata <FieldName> <String>)*))| returnidonly]
20037
- def doCreateDomainContact():
20038
- _createContact()
20039
-
20040
20037
  def _clearUpdateContacts(updateContacts):
20041
20038
  entityType = Ent.DOMAIN
20042
20039
  contactsManager = ContactsManager()
@@ -20058,7 +20055,7 @@ def _clearUpdateContacts(updateContacts):
20058
20055
  unknownArgumentExit()
20059
20056
  if not contactClear['emailClearPattern']:
20060
20057
  missingArgumentExit('emailclearpattern')
20061
- user, contactsObject = getContactsObject(True)
20058
+ user, contactsObject = getContactsObject()
20062
20059
  if queriedContacts:
20063
20060
  entityList = queryContacts(contactsObject, contactQuery)
20064
20061
  if entityList is None:
@@ -20129,7 +20126,8 @@ def doClearDomainContacts():
20129
20126
  def doUpdateDomainContacts():
20130
20127
  _clearUpdateContacts(True)
20131
20128
 
20132
- def _dedupContacts():
20129
+ # gam dedup contacts <ContactEntity>|<ContactSelection> [matchType [<Boolean>]]
20130
+ def doDedupDomainContacts():
20133
20131
  entityType = Ent.DOMAIN
20134
20132
  contactsManager = ContactsManager()
20135
20133
  contactQuery = _initContactQueryAttributes()
@@ -20140,7 +20138,7 @@ def _dedupContacts():
20140
20138
  emailMatchType = getBoolean()
20141
20139
  else:
20142
20140
  _getContactQueryAttributes(contactQuery, myarg, -1, False)
20143
- user, contactsObject = getContactsObject(True)
20141
+ user, contactsObject = getContactsObject()
20144
20142
  contacts = queryContacts(contactsObject, contactQuery)
20145
20143
  if contacts is None:
20146
20144
  return
@@ -20180,15 +20178,12 @@ def _dedupContacts():
20180
20178
  break
20181
20179
  Ind.Decrement()
20182
20180
 
20183
- # gam dedup contacts <ContactEntity>|<ContactSelection> [matchType [<Boolean>]]
20184
- def doDedupDomainContacts():
20185
- _dedupContacts()
20186
-
20187
- def _deleteContacts():
20181
+ # gam delete contacts <ContactEntity>|<ContactSelection>
20182
+ def doDeleteDomainContacts():
20188
20183
  entityType = Ent.DOMAIN
20189
20184
  contactsManager = ContactsManager()
20190
20185
  entityList, contactQuery, queriedContacts = _getContactEntityList(-1, False)
20191
- user, contactsObject = getContactsObject(True)
20186
+ user, contactsObject = getContactsObject()
20192
20187
  if queriedContacts:
20193
20188
  entityList = queryContacts(contactsObject, contactQuery)
20194
20189
  if entityList is None:
@@ -20228,10 +20223,6 @@ def _deleteContacts():
20228
20223
  break
20229
20224
  Ind.Decrement()
20230
20225
 
20231
- # gam delete contacts <ContactEntity>|<ContactSelection>
20232
- def doDeleteDomainContacts():
20233
- _deleteContacts()
20234
-
20235
20226
  CONTACT_TIME_OBJECTS = {CONTACT_UPDATED}
20236
20227
  CONTACT_FIELDS_WITH_CRS_NLS = {CONTACT_NOTES, CONTACT_BILLING_INFORMATION}
20237
20228
 
@@ -20299,7 +20290,10 @@ def _getContactFieldsList(contactsManager, displayFieldsList):
20299
20290
  else:
20300
20291
  invalidChoiceExit(field, contactsManager.CONTACT_ARGUMENT_TO_PROPERTY_MAP, True)
20301
20292
 
20302
- def _infoContacts(contactFeed):
20293
+ # gam info contacts <ContactEntity>
20294
+ # [basic|full]
20295
+ # [fields <ContactFieldNameList>] [formatjson]
20296
+ def doInfoDomainContacts():
20303
20297
  entityType = Ent.DOMAIN
20304
20298
  contactsManager = ContactsManager()
20305
20299
  entityList = getEntityList(Cmd.OB_CONTACT_ENTITY)
@@ -20314,7 +20308,7 @@ def _infoContacts(contactFeed):
20314
20308
  _getContactFieldsList(contactsManager, displayFieldsList)
20315
20309
  else:
20316
20310
  FJQC.GetFormatJSON(myarg)
20317
- user, contactsObject = getContactsObject(contactFeed)
20311
+ user, contactsObject = getContactsObject()
20318
20312
  j = 0
20319
20313
  jcount = len(entityList)
20320
20314
  if not FJQC.formatJSON:
@@ -20342,19 +20336,13 @@ def _infoContacts(contactFeed):
20342
20336
  break
20343
20337
  Ind.Decrement()
20344
20338
 
20345
- # gam info contacts <ContactEntity>
20346
- # [basic|full]
20347
- # [fields <ContactFieldNameList>] [formatjson]
20348
- def doInfoDomainContacts():
20349
- _infoContacts(True)
20350
-
20351
- # gam info gal <ContactEntity>
20352
- # [basic|full]
20339
+ # gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
20340
+ # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20341
+ # [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
20342
+ # gam show contacts <ContactSelection>
20343
+ # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20353
20344
  # [fields <ContactFieldNameList>] [formatjson]
20354
- def doInfoGAL():
20355
- _infoContacts(False)
20356
-
20357
- def _printShowContacts(contactFeed):
20345
+ def doPrintShowDomainContacts():
20358
20346
  entityType = Ent.DOMAIN
20359
20347
  entityTypeName = Ent.Singular(entityType)
20360
20348
  contactsManager = ContactsManager()
@@ -20380,7 +20368,7 @@ def _printShowContacts(contactFeed):
20380
20368
  pass
20381
20369
  else:
20382
20370
  FJQC.GetFormatJSONQuoteChar(myarg, True)
20383
- user, contactsObject = getContactsObject(contactFeed)
20371
+ user, contactsObject = getContactsObject()
20384
20372
  contacts = queryContacts(contactsObject, contactQuery)
20385
20373
  if countsOnly:
20386
20374
  jcount = countLocalContactSelects(contactsManager, contacts, contactQuery)
@@ -20466,24 +20454,6 @@ def _printShowContacts(contactFeed):
20466
20454
  if csvPF:
20467
20455
  csvPF.writeCSVfile(CSVTitle)
20468
20456
 
20469
- # gam print contacts [todrive <ToDriveAttribute>*] <ContactSelection>
20470
- # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20471
- # [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
20472
- # gam show contacts <ContactSelection>
20473
- # [basic|full|countsonly] [showdeleted] [orderby <ContactOrderByFieldName> [ascending|descending]]
20474
- # [fields <ContactFieldNameList>] [formatjson]
20475
- def doPrintShowDomainContacts():
20476
- _printShowContacts(True)
20477
-
20478
- # gam print gal [todrive <ToDriveAttribute>*] <ContactSelection>
20479
- # [basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
20480
- # [fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
20481
- # gam show gal <ContactSelection>
20482
- # [basic|full|countsonly] [orderby <ContactOrderByFieldName> [ascending|descending]]
20483
- # [fields <ContactFieldNameList>] [formatjson]
20484
- def doPrintShowGAL():
20485
- _printShowContacts(False)
20486
-
20487
20457
  # Prople commands utilities
20488
20458
  #
20489
20459
  def normalizePeopleResourceName(resourceName):
@@ -75645,7 +75615,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
75645
75615
  Cmd.ARG_DRIVEFILEACL: doInfoDriveFileACLs,
75646
75616
  Cmd.ARG_DRIVELABEL: doInfoDriveLabels,
75647
75617
  Cmd.ARG_INSTANCE: doInfoInstance,
75648
- Cmd.ARG_GAL: doInfoGAL,
75649
75618
  Cmd.ARG_GROUP: doInfoGroups,
75650
75619
  Cmd.ARG_GROUPMEMBERS: doInfoGroupMembers,
75651
75620
  Cmd.ARG_INBOUNDSSOASSIGNMENT: doInfoInboundSSOAssignment,
@@ -75740,7 +75709,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
75740
75709
  Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels,
75741
75710
  Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions,
75742
75711
  Cmd.ARG_FEATURE: doPrintShowFeatures,
75743
- Cmd.ARG_GAL: doPrintShowGAL,
75744
75712
  Cmd.ARG_GROUP: doPrintGroups,
75745
75713
  Cmd.ARG_GROUPMEMBERS: doPrintGroupMembers,
75746
75714
  Cmd.ARG_GROUPTREE: doPrintShowGroupTree,
@@ -75858,7 +75826,6 @@ MAIN_COMMANDS_WITH_OBJECTS = {
75858
75826
  Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels,
75859
75827
  Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions,
75860
75828
  Cmd.ARG_FEATURE: doPrintShowFeatures,
75861
- Cmd.ARG_GAL: doPrintShowGAL,
75862
75829
  Cmd.ARG_GROUPMEMBERS: doShowGroupMembers,
75863
75830
  Cmd.ARG_GROUPTREE: doPrintShowGroupTree,
75864
75831
  Cmd.ARG_GUARDIAN: doPrintShowGuardians,
@@ -616,7 +616,6 @@ class GamCLArgs():
616
616
  ARG_FORWARDS = 'forwards'
617
617
  ARG_FORWARDINGADDRESS = 'forwardingaddress'
618
618
  ARG_FORWARDINGADDRESSES = 'forwardingaddresses'
619
- ARG_GAL = 'gal'
620
619
  ARG_GCPFOLDER = 'gcpfolder'
621
620
  ARG_GCPSERVICEACCOUNT = 'gcpserviceaccount'
622
621
  ARG_GMAIL = 'gmail'
@@ -7,13 +7,14 @@
7
7
  - [Create an administrator](#create-an-administrator)
8
8
  - [Delete an administrator](#delete-an-administrator)
9
9
  - [Display administrators](#display-administrators)
10
+ - [Copy privileges from one role to a new role](#copy-privileges-from-one-role-to-a-new-role)
10
11
  - [Copy roles from one administrator to another](#copy-roles-from-one-administrator-to-another)
11
12
 
12
13
  ## API documentation
13
14
  * [About Administrator roles](https://support.google.com/a/answer/33325?ref_topic=4514341)
14
15
  * [Directory API - Privileges](https://developers.google.com/admin-sdk/directory/reference/rest/v1/privileges)
15
16
  * [Directory API - Roles](https://developers.google.com/admin-sdk/directory/reference/rest/v1/roles)
16
- * [Directory API - Role SAssignments](https://developers.google.com/admin-sdk/directory/reference/rest/v1/roleAssignments)
17
+ * [Directory API - Role Assignments](https://developers.google.com/admin-sdk/directory/reference/rest/v1/roleAssignments)
17
18
 
18
19
  ## Definitions
19
20
  ```
@@ -36,7 +37,7 @@ gam print privileges [todrive <ToDriveAttribute>*]
36
37
  gam show privileges
37
38
  ```
38
39
 
39
- Here is the output from `gam show privileges`; use this to find `<Privilege>`.
40
+ Here is the output from `gam show privileges`; use this to find a specific `<Privilege>`.
40
41
  ```
41
42
  Show 111 Privileges
42
43
  Privilege: REPORTS_ACCESS (1/111)
@@ -1381,24 +1382,33 @@ Show 111 Privileges
1381
1382
 
1382
1383
  ## Manage administrative roles
1383
1384
  ```
1384
- gam create adminrole <String> privileges all|all_ou|<PrivilegeList> [description <String>]
1385
- gam update adminrole <RoleItem> [name <String>] [privileges all|all_ou|<PrivilegeList>] [description <String>]
1385
+ gam create adminrole <String> [description <String>]
1386
+ privileges all|all_ou|<PrivilegeList>|(select <FileSelector>|<CSVFileSelector>>)
1387
+ gam update adminrole <RoleItem> [name <String>] [description <String>]
1388
+ [privileges all|all_ou|<PrivilegeList>|(select <FileSelector>|<CSVFileSelector>>)]
1386
1389
  gam delete adminrole <RoleItem>
1387
1390
  ```
1388
1391
  * `privileges all` - All defined privileges
1389
1392
  * `privileges all_ou` - All defined privileges than can be scoped to an OU
1390
1393
  * `privileges <PrivilegeList>` - A specific list of privileges
1394
+ * `privileges select <FileSelector>|<CSVFileSelector>>` - A collection of privileges from a flat or CSV file
1391
1395
 
1392
1396
  ## Display administrative roles
1393
1397
  ```
1394
1398
  gam info adminrole <RoleItem> [privileges]
1399
+ ```
1400
+ * `privileges` - Display privileges associated with role
1401
+ ```
1395
1402
  gam print adminroles|roles [todrive <ToDriveAttribute>*]
1396
- [privileges] [oneitemperrow]
1397
- gam show adminroles|roles [todrive <ToDriveAttribute>*] [privileges]
1403
+ [role <RoleItem>] [privileges] [oneitemperrow]
1404
+ gam show adminroles|roles
1405
+ [role <RoleItem>] [privileges]
1398
1406
  ```
1407
+ By default, all roles are displayed, use `role <RoleItem>` to display a specific role.
1408
+
1399
1409
  * `privileges` - Display privileges associated with each role
1400
1410
 
1401
- By default, all privileges for a role are shown on one row as a repeating item.
1411
+ By default, with `print`, all privileges for a role are shown on one row as a repeating item.
1402
1412
  When `oneitemperrow` is specified, each privilege is output on a separate row/line with the other role fields.
1403
1413
 
1404
1414
  ## Create an administrator
@@ -1438,6 +1448,16 @@ options to limit the display:
1438
1448
  By default, all role privileges for an admin are shown on one row as a repeating item.
1439
1449
  When `oneitemperrow` is specified, each role privilege is output on a separate row/line with the other admin fields.
1440
1450
 
1451
+ ## Copy privileges from one role to a new role
1452
+ Get privileges for existing role; replace Role Name with actual role name
1453
+ ```
1454
+ gam redirect csv ./RolePrivileges.csv print adminrole role 'Role Name' privileges oneitemperrow
1455
+ ```
1456
+ Create a new role with those privileges
1457
+ ```
1458
+ gam create adminrole "New Role Name" privileges select csvfile RolePrivileges.csv:privilegeName
1459
+ ```
1460
+
1441
1461
  ## Copy roles from one administrator to another
1442
1462
  Get roles for current admin.
1443
1463
  ```
@@ -10,6 +10,14 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
10
10
 
11
11
  See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
12
12
 
13
+ ### 7.06.14
14
+
15
+ Updated `create|update adminrole` to allow specifying a collection of privileges
16
+ with `privileges select <FileSelector>|<CSVFileSelector>` which makes copying roles much simpler.
17
+
18
+ Added option `role <RoleItem>` to `gam print|show adminroles` to allow display of information
19
+ for a specific role.
20
+
13
21
  ### 7.06.13
14
22
 
15
23
  Updated `gam print group-members ... recursive` and `gam print cigroup-members ... recursive`
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
251
251
  admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
252
252
  admin@server:/Users/admin$ gam version
253
253
  WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
254
- GAM 7.06.13 - https://github.com/GAM-team/GAM - pyinstaller
254
+ GAM 7.06.14 - https://github.com/GAM-team/GAM - pyinstaller
255
255
  GAM Team <google-apps-manager@googlegroups.com>
256
256
  Python 3.13.3 64-bit final
257
257
  MacOS Sequoia 15.4.1 x86_64
@@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt.
989
989
  C:\>del C:\GAMConfig\oauth2.txt
990
990
  C:\>gam version
991
991
  WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
992
- GAM 7.06.13 - https://github.com/GAM-team/GAM - pythonsource
992
+ GAM 7.06.14 - https://github.com/GAM-team/GAM - pythonsource
993
993
  GAM Team <google-apps-manager@googlegroups.com>
994
994
  Python 3.13.3 64-bit final
995
995
  Windows-10-10.0.17134 AMD64
@@ -4,7 +4,7 @@ k
4
4
  Print the current version of Gam with details
5
5
  ```
6
6
  gam version
7
- GAM 7.06.13 - https://github.com/GAM-team/GAM - pyinstaller
7
+ GAM 7.06.14 - https://github.com/GAM-team/GAM - pyinstaller
8
8
  GAM Team <google-apps-manager@googlegroups.com>
9
9
  Python 3.13.3 64-bit final
10
10
  MacOS Sequoia 15.4.1 x86_64
@@ -16,7 +16,7 @@ Time: 2023-06-02T21:10:00-07:00
16
16
  Print the current version of Gam with details and time offset information
17
17
  ```
18
18
  gam version timeoffset
19
- GAM 7.06.13 - https://github.com/GAM-team/GAM - pyinstaller
19
+ GAM 7.06.14 - https://github.com/GAM-team/GAM - pyinstaller
20
20
  GAM Team <google-apps-manager@googlegroups.com>
21
21
  Python 3.13.3 64-bit final
22
22
  MacOS Sequoia 15.4.1 x86_64
@@ -28,7 +28,7 @@ Your system time differs from www.googleapis.com by less than 1 second
28
28
  Print the current version of Gam with extended details and SSL information
29
29
  ```
30
30
  gam version extended
31
- GAM 7.06.13 - https://github.com/GAM-team/GAM - pyinstaller
31
+ GAM 7.06.14 - https://github.com/GAM-team/GAM - pyinstaller
32
32
  GAM Team <google-apps-manager@googlegroups.com>
33
33
  Python 3.13.3 64-bit final
34
34
  MacOS Sequoia 15.4.1 x86_64
@@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64
65
65
  Path: /Users/Admin/bin/gam7
66
66
  Version Check:
67
67
  Current: 5.35.08
68
- Latest: 7.06.13
68
+ Latest: 7.06.14
69
69
  echo $?
70
70
  1
71
71
  ```
@@ -73,7 +73,7 @@ echo $?
73
73
  Print the current version number without details
74
74
  ```
75
75
  gam version simple
76
- 7.06.13
76
+ 7.06.14
77
77
  ```
78
78
  In Linux/MacOS you can do:
79
79
  ```
@@ -83,7 +83,7 @@ echo $VER
83
83
  Print the current version of Gam and address of this Wiki
84
84
  ```
85
85
  gam help
86
- GAM 7.06.13 - https://github.com/GAM-team/GAM
86
+ GAM 7.06.14 - https://github.com/GAM-team/GAM
87
87
  GAM Team <google-apps-manager@googlegroups.com>
88
88
  Python 3.13.3 64-bit final
89
89
  MacOS Sequoia 15.4.1 x86_64
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