gam7 7.5.22__tar.gz → 7.6.1__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 (320) hide show
  1. {gam7-7.5.22 → gam7-7.6.1}/.github/workflows/build.yml +13 -7
  2. {gam7-7.5.22 → gam7-7.6.1}/.github/workflows/codeql-analysis.yml +4 -3
  3. {gam7-7.5.22 → gam7-7.6.1}/.github/workflows/get-cacerts.yml +4 -0
  4. gam7-7.6.1/.github/workflows/pushwiki.yml +41 -0
  5. {gam7-7.5.22 → gam7-7.6.1}/PKG-INFO +1 -1
  6. {gam7-7.5.22 → gam7-7.6.1}/src/GamUpdate.txt +12 -0
  7. {gam7-7.5.22 → gam7-7.6.1}/src/gam/__init__.py +11 -8
  8. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glgapi.py +13 -2
  9. gam7-7.6.1/wiki/00scratch.md +5 -0
  10. gam7-7.6.1/wiki/Addresses.md +30 -0
  11. gam7-7.6.1/wiki/Administrators.md +907 -0
  12. gam7-7.6.1/wiki/Alert-Center.md +97 -0
  13. gam7-7.6.1/wiki/Aliases.md +199 -0
  14. gam7-7.6.1/wiki/Authorization.md +1235 -0
  15. gam7-7.6.1/wiki/BNF-Syntax.md +31 -0
  16. gam7-7.6.1/wiki/Basic-Items.md +565 -0
  17. gam7-7.6.1/wiki/Bulk-Processing.md +174 -0
  18. gam7-7.6.1/wiki/CSV-Input-Filtering.md +271 -0
  19. gam7-7.6.1/wiki/CSV-Output-Filtering.md +371 -0
  20. gam7-7.6.1/wiki/CSV-Special-Characters.md +94 -0
  21. gam7-7.6.1/wiki/Calendars-Access.md +86 -0
  22. gam7-7.6.1/wiki/Calendars-Events.md +632 -0
  23. gam7-7.6.1/wiki/Calendars.md +66 -0
  24. gam7-7.6.1/wiki/Chat-Bot.md +312 -0
  25. gam7-7.6.1/wiki/Chrome-AUE-Counts.md +87 -0
  26. gam7-7.6.1/wiki/Chrome-Browser-Cloud-Management.md +502 -0
  27. gam7-7.6.1/wiki/Chrome-Installed-Apps.md +139 -0
  28. gam7-7.6.1/wiki/Chrome-Needs-Attention-Counts.md +75 -0
  29. gam7-7.6.1/wiki/Chrome-Policies.md +7096 -0
  30. gam7-7.6.1/wiki/Chrome-Printers.md +182 -0
  31. gam7-7.6.1/wiki/Chrome-Profile-Management.md +195 -0
  32. gam7-7.6.1/wiki/Chrome-Version-Counts.md +93 -0
  33. gam7-7.6.1/wiki/Chrome-Version-History.md +163 -0
  34. gam7-7.6.1/wiki/ChromeOS-Devices.md +1024 -0
  35. gam7-7.6.1/wiki/Classroom-Courses.md +736 -0
  36. gam7-7.6.1/wiki/Classroom-Guardians.md +189 -0
  37. gam7-7.6.1/wiki/Classroom-Invitations.md +163 -0
  38. gam7-7.6.1/wiki/Classroom-Membership.md +166 -0
  39. gam7-7.6.1/wiki/Cloud-Channel.md +318 -0
  40. gam7-7.6.1/wiki/Cloud-Identity-Devices.md +371 -0
  41. gam7-7.6.1/wiki/Cloud-Identity-Groups-Membership.md +502 -0
  42. gam7-7.6.1/wiki/Cloud-Identity-Groups.md +469 -0
  43. gam7-7.6.1/wiki/Cloud-Identity-Policies.md +402 -0
  44. gam7-7.6.1/wiki/Cloud-Storage.md +57 -0
  45. gam7-7.6.1/wiki/Collections-of-ChromeOS-Devices.md +459 -0
  46. gam7-7.6.1/wiki/Collections-of-Items.md +396 -0
  47. gam7-7.6.1/wiki/Collections-of-Users.md +661 -0
  48. gam7-7.6.1/wiki/Command-Data-From-Google-Docs-Sheets-Storage.md +109 -0
  49. gam7-7.6.1/wiki/Command-Line-Parsing.md +81 -0
  50. gam7-7.6.1/wiki/Command-Logging-Progress.md +82 -0
  51. gam7-7.6.1/wiki/Context-Aware-Access-Levels.md +478 -0
  52. gam7-7.6.1/wiki/Customer.md +47 -0
  53. gam7-7.6.1/wiki/Domain-People-Contacts-Profiles.md +188 -0
  54. gam7-7.6.1/wiki/Domain-SharedContacts-GAL.md +319 -0
  55. gam7-7.6.1/wiki/Domains-Verification.md +31 -0
  56. gam7-7.6.1/wiki/Domains.md +96 -0
  57. gam7-7.6.1/wiki/Downloads-Installs.md +61 -0
  58. gam7-7.6.1/wiki/Drive-File-Selection.md +411 -0
  59. gam7-7.6.1/wiki/Drive-Items.md +39 -0
  60. gam7-7.6.1/wiki/Drive-REST-API-v3.md +93 -0
  61. gam7-7.6.1/wiki/Email-Audit-Monitor.md +42 -0
  62. gam7-7.6.1/wiki/Find-File-Owner.md +54 -0
  63. gam7-7.6.1/wiki/GAM-Public-Chat-Room.md +26 -0
  64. gam7-7.6.1/wiki/GAM-Return-Codes.md +75 -0
  65. gam7-7.6.1/wiki/GAM-with-minimal-GCP-rights.md +41 -0
  66. gam7-7.6.1/wiki/GAM7-on-Android-Devices.md +16 -0
  67. gam7-7.6.1/wiki/GAM7-on-Chrome-OS-Devices.md +14 -0
  68. gam7-7.6.1/wiki/GamUpdates.md +6500 -0
  69. gam7-7.6.1/wiki/Google-Data-Transfers.md +81 -0
  70. gam7-7.6.1/wiki/Google-Network-Addresses.md +58 -0
  71. gam7-7.6.1/wiki/Groups-Membership.md +1076 -0
  72. gam7-7.6.1/wiki/Groups.md +679 -0
  73. gam7-7.6.1/wiki/HTTPS-Proxy.md +33 -0
  74. gam7-7.6.1/wiki/Home.md +38 -0
  75. gam7-7.6.1/wiki/How-to-Install-GAM7.md +1071 -0
  76. gam7-7.6.1/wiki/How-to-Uninstall-GAM7.md +127 -0
  77. gam7-7.6.1/wiki/How-to-Update-GAM7.md +581 -0
  78. gam7-7.6.1/wiki/How-to-Upgrade-GAMADV-XTD3-to-GAM7.md +191 -0
  79. gam7-7.6.1/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +1395 -0
  80. gam7-7.6.1/wiki/Inbound-SSO.md +169 -0
  81. gam7-7.6.1/wiki/Install-GAM-as-Python-Library.md +59 -0
  82. gam7-7.6.1/wiki/Licenses.md +346 -0
  83. gam7-7.6.1/wiki/List-Items.md +107 -0
  84. gam7-7.6.1/wiki/List.md +49 -0
  85. gam7-7.6.1/wiki/Meta-Commands-and-File-Redirection.md +241 -0
  86. gam7-7.6.1/wiki/Mobile-Devices.md +177 -0
  87. gam7-7.6.1/wiki/Organizational-Units.md +342 -0
  88. gam7-7.6.1/wiki/Other-Resources.md +18 -0
  89. gam7-7.6.1/wiki/Permission-Matches.md +184 -0
  90. gam7-7.6.1/wiki/Python-Regular-Expressions.md +218 -0
  91. gam7-7.6.1/wiki/README.md +73 -0
  92. gam7-7.6.1/wiki/Rclone.md +38 -0
  93. gam7-7.6.1/wiki/Reports.md +584 -0
  94. gam7-7.6.1/wiki/Reseller.md +173 -0
  95. gam7-7.6.1/wiki/Resources.md +566 -0
  96. gam7-7.6.1/wiki/Running-GAM7-securely-on-a-Google-Compute-Engine.md +74 -0
  97. gam7-7.6.1/wiki/SSL-Root-CA-Certificates.md +26 -0
  98. gam7-7.6.1/wiki/Schemas.md +52 -0
  99. gam7-7.6.1/wiki/Scripts.md +7 -0
  100. gam7-7.6.1/wiki/Send-Email.md +455 -0
  101. gam7-7.6.1/wiki/Shared-Drives.md +739 -0
  102. gam7-7.6.1/wiki/Sites.md +22 -0
  103. gam7-7.6.1/wiki/Tag-Replace.md +269 -0
  104. gam7-7.6.1/wiki/Todrive.md +361 -0
  105. gam7-7.6.1/wiki/Unmanaged-Accounts.md +114 -0
  106. gam7-7.6.1/wiki/Upgrade-Benefits.md +262 -0
  107. gam7-7.6.1/wiki/Users-Analytics-Admin.md +196 -0
  108. gam7-7.6.1/wiki/Users-Application-Specific-Passwords.md +36 -0
  109. gam7-7.6.1/wiki/Users-Backup-Verification-Codes.md +40 -0
  110. gam7-7.6.1/wiki/Users-Calendars-Access.md +184 -0
  111. gam7-7.6.1/wiki/Users-Calendars-Events.md +938 -0
  112. gam7-7.6.1/wiki/Users-Calendars.md +312 -0
  113. gam7-7.6.1/wiki/Users-Chat.md +915 -0
  114. gam7-7.6.1/wiki/Users-Classification-Labels.md +221 -0
  115. gam7-7.6.1/wiki/Users-Classroom-Profile.md +16 -0
  116. gam7-7.6.1/wiki/Users-Contacts-Delegates.md +48 -0
  117. gam7-7.6.1/wiki/Users-Contacts.md +431 -0
  118. gam7-7.6.1/wiki/Users-Deprovision.md +25 -0
  119. gam7-7.6.1/wiki/Users-Drive-Activity-Settings.md +152 -0
  120. gam7-7.6.1/wiki/Users-Drive-Cleanup.md +164 -0
  121. gam7-7.6.1/wiki/Users-Drive-Comments.md +163 -0
  122. gam7-7.6.1/wiki/Users-Drive-Copy-Move.md +662 -0
  123. gam7-7.6.1/wiki/Users-Drive-Files-Display.md +1750 -0
  124. gam7-7.6.1/wiki/Users-Drive-Files-Manage.md +743 -0
  125. gam7-7.6.1/wiki/Users-Drive-Orphans.md +62 -0
  126. gam7-7.6.1/wiki/Users-Drive-Ownership.md +144 -0
  127. gam7-7.6.1/wiki/Users-Drive-Permissions.md +358 -0
  128. gam7-7.6.1/wiki/Users-Drive-Query.md +57 -0
  129. gam7-7.6.1/wiki/Users-Drive-Revisions.md +127 -0
  130. gam7-7.6.1/wiki/Users-Drive-Shortcuts.md +145 -0
  131. gam7-7.6.1/wiki/Users-Drive-Transfer.md +127 -0
  132. gam7-7.6.1/wiki/Users-Forms.md +335 -0
  133. gam7-7.6.1/wiki/Users-Gmail-CSE.md +217 -0
  134. gam7-7.6.1/wiki/Users-Gmail-Delegates.md +86 -0
  135. gam7-7.6.1/wiki/Users-Gmail-Filters.md +198 -0
  136. gam7-7.6.1/wiki/Users-Gmail-Forwarding.md +94 -0
  137. gam7-7.6.1/wiki/Users-Gmail-Labels.md +163 -0
  138. gam7-7.6.1/wiki/Users-Gmail-Messages-Threads.md +763 -0
  139. gam7-7.6.1/wiki/Users-Gmail-Profile.md +16 -0
  140. gam7-7.6.1/wiki/Users-Gmail-S-MIME.md +72 -0
  141. gam7-7.6.1/wiki/Users-Gmail-Send-As-Signature-Vacation.md +297 -0
  142. gam7-7.6.1/wiki/Users-Gmail-Settings.md +66 -0
  143. gam7-7.6.1/wiki/Users-Group-Membership.md +706 -0
  144. gam7-7.6.1/wiki/Users-Keep-Notes.md +242 -0
  145. gam7-7.6.1/wiki/Users-Looker-Studio.md +235 -0
  146. gam7-7.6.1/wiki/Users-Meet.md +183 -0
  147. gam7-7.6.1/wiki/Users-People-Contacts-Profiles.md +682 -0
  148. gam7-7.6.1/wiki/Users-Photo.md +83 -0
  149. gam7-7.6.1/wiki/Users-Profile-Photo.md +39 -0
  150. gam7-7.6.1/wiki/Users-Profile-Sharing.md +16 -0
  151. gam7-7.6.1/wiki/Users-Shared-Drives.md +517 -0
  152. gam7-7.6.1/wiki/Users-Signout-Turnoff2SV.md +30 -0
  153. gam7-7.6.1/wiki/Users-Spreadsheets.md +534 -0
  154. gam7-7.6.1/wiki/Users-Tasks.md +243 -0
  155. gam7-7.6.1/wiki/Users-Tokens.md +130 -0
  156. gam7-7.6.1/wiki/Users-YouTube.md +142 -0
  157. gam7-7.6.1/wiki/Users.md +1352 -0
  158. gam7-7.6.1/wiki/Using-GAM7-with-a-YubiKey.md +72 -0
  159. gam7-7.6.1/wiki/Using-GAM7-with-a-delegated-admin-service-account.md +61 -0
  160. gam7-7.6.1/wiki/Vault-Takeout.md +798 -0
  161. gam7-7.6.1/wiki/Verifying-a-GAM7-Build-is-Legitimate-and-Official.md +118 -0
  162. gam7-7.6.1/wiki/Version-and-Help.md +95 -0
  163. gam7-7.6.1/wiki/_Footer.md +1 -0
  164. gam7-7.6.1/wiki/_Sidebar.md +201 -0
  165. gam7-7.6.1/wiki/gam.cfg.md +1162 -0
  166. gam7-7.6.1/wiki/l-AdminSettingsExamples.md +77 -0
  167. gam7-7.6.1/wiki/l-Android-Installation.md +15 -0
  168. gam7-7.6.1/wiki/l-BulkOperations.md +282 -0
  169. gam7-7.6.1/wiki/l-CalendarExamples.md +260 -0
  170. gam7-7.6.1/wiki/l-Chat-Bot.md +95 -0
  171. gam7-7.6.1/wiki/l-Chrome-Browser-Management.md +85 -0
  172. gam7-7.6.1/wiki/l-Chrome-OS-Installation.md +9 -0
  173. gam7-7.6.1/wiki/l-Chrome-Policy-Settings.md +79 -0
  174. gam7-7.6.1/wiki/l-Cloud-Identity-Groups.md +70 -0
  175. gam7-7.6.1/wiki/l-Command-Reference-Calendar-Resources.md +53 -0
  176. gam7-7.6.1/wiki/l-Command-Reference-Calendars.md +76 -0
  177. gam7-7.6.1/wiki/l-Command-Reference-Definitions.md +47 -0
  178. gam7-7.6.1/wiki/l-Command-Reference-Drive.md +115 -0
  179. gam7-7.6.1/wiki/l-Command-Reference-Email.md +101 -0
  180. gam7-7.6.1/wiki/l-Command-Reference-Group-Attributes.md +92 -0
  181. gam7-7.6.1/wiki/l-Command-Reference-Groups.md +63 -0
  182. gam7-7.6.1/wiki/l-Command-Reference-Users.md +132 -0
  183. gam7-7.6.1/wiki/l-Context-Aware-Access-Levels.md +129 -0
  184. gam7-7.6.1/wiki/l-Creating-client_secrets.json-and-oauth2service.json.md +39 -0
  185. gam7-7.6.1/wiki/l-CreatingClientSecretsFile.md +185 -0
  186. gam7-7.6.1/wiki/l-Custom-Schemas.md +71 -0
  187. gam7-7.6.1/wiki/l-Data-Transfers.md +75 -0
  188. gam7-7.6.1/wiki/l-DomainVerification.md +128 -0
  189. gam7-7.6.1/wiki/l-ExamplesAccountAuditing.md +317 -0
  190. gam7-7.6.1/wiki/l-ExamplesCSV.md +155 -0
  191. gam7-7.6.1/wiki/l-ExamplesEmailSettings.md +897 -0
  192. gam7-7.6.1/wiki/l-ExamplesOrganizations.md +111 -0
  193. gam7-7.6.1/wiki/l-GAM-Discussion-Group.md +1 -0
  194. gam7-7.6.1/wiki/l-GAM-on-Android-and-Chrome-OS.md +5 -0
  195. gam7-7.6.1/wiki/l-GAM-options-files.md +65 -0
  196. gam7-7.6.1/wiki/l-GAM-with--minimal-GCP-rights.md +41 -0
  197. gam7-7.6.1/wiki/l-GAM3CSVListings.md +434 -0
  198. gam7-7.6.1/wiki/l-GAM3DirectoryCommands.md +1153 -0
  199. gam7-7.6.1/wiki/l-GAM3GroupSettings.md +448 -0
  200. gam7-7.6.1/wiki/l-GAM7-FAQ.md +56 -0
  201. gam7-7.6.1/wiki/l-Google-Vault---Takeout-Commands.md +306 -0
  202. gam7-7.6.1/wiki/l-GoogleDriveManagement.md +389 -0
  203. gam7-7.6.1/wiki/l-Grouping-18-or-Older-Users.md +33 -0
  204. gam7-7.6.1/wiki/l-Home.md +199 -0
  205. gam7-7.6.1/wiki/l-How-to-upgrade-from-Standard-GAM.md +1262 -0
  206. gam7-7.6.1/wiki/l-Inbound-SSO-Settings.md +192 -0
  207. gam7-7.6.1/wiki/l-LicenseExamples.md +121 -0
  208. gam7-7.6.1/wiki/l-Managing-Admins.md +92 -0
  209. gam7-7.6.1/wiki/l-Managing-CloudPrint-Printers.md +219 -0
  210. gam7-7.6.1/wiki/l-Managing-Devices.md +94 -0
  211. gam7-7.6.1/wiki/l-Managing-Google-Classroom.md +298 -0
  212. gam7-7.6.1/wiki/l-OAuthKeyManagement.md +148 -0
  213. gam7-7.6.1/wiki/l-Printers.md +115 -0
  214. gam7-7.6.1/wiki/l-ResellerCommands.md +212 -0
  215. gam7-7.6.1/wiki/l-Running-GAM-on-Google-Compute-Engine-(GCE)-Securely.md +54 -0
  216. gam7-7.6.1/wiki/l-SecurityExamples.md +289 -0
  217. gam7-7.6.1/wiki/l-UnmanagedUsersExamples.md +78 -0
  218. gam7-7.6.1/wiki/l-Use-a-Yubikey.md +49 -0
  219. gam7-7.6.1/wiki/l-Using-GAM-with-a-delegated-admin-service-account-(DASA).md +88 -0
  220. gam7-7.6.1/wiki/l-_Footer.md +1 -0
  221. {gam7-7.5.22 → gam7-7.6.1}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  222. {gam7-7.5.22 → gam7-7.6.1}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  223. {gam7-7.5.22 → gam7-7.6.1}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  224. {gam7-7.5.22 → gam7-7.6.1}/.github/ISSUE_TEMPLATE.txt +0 -0
  225. {gam7-7.5.22 → gam7-7.6.1}/.github/actions/creds.tar.xz.gpg +0 -0
  226. {gam7-7.5.22 → gam7-7.6.1}/.github/actions/decrypt.sh +0 -0
  227. {gam7-7.5.22 → gam7-7.6.1}/.github/actions/entitlements.plist +0 -0
  228. {gam7-7.5.22 → gam7-7.6.1}/.github/actions/package_exclusions.txt +0 -0
  229. {gam7-7.5.22 → gam7-7.6.1}/.github/stale.yml +0 -0
  230. {gam7-7.5.22 → gam7-7.6.1}/.github/workflows/pypi.yml +0 -0
  231. {gam7-7.5.22 → gam7-7.6.1}/.pre-commit-config.yaml +0 -0
  232. {gam7-7.5.22 → gam7-7.6.1}/LICENSE +0 -0
  233. {gam7-7.5.22 → gam7-7.6.1}/README.md +0 -0
  234. {gam7-7.5.22 → gam7-7.6.1}/pyproject.toml +0 -0
  235. {gam7-7.5.22 → gam7-7.6.1}/src/.gitignore +0 -0
  236. {gam7-7.5.22 → gam7-7.6.1}/src/GamCommands.txt +0 -0
  237. {gam7-7.5.22 → gam7-7.6.1}/src/LICENSE +0 -0
  238. {gam7-7.5.22 → gam7-7.6.1}/src/cacerts.pem +0 -0
  239. {gam7-7.5.22 → gam7-7.6.1}/src/callgam.py +0 -0
  240. {gam7-7.5.22 → gam7-7.6.1}/src/gam/__main__.py +0 -0
  241. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/__init__.py +0 -0
  242. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/auth.py +0 -0
  243. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/client.py +0 -0
  244. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/core.py +0 -0
  245. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/data.py +0 -0
  246. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/http.py +0 -0
  247. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/http_core.py +0 -0
  248. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/http_interface.py +0 -0
  249. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/mock_http.py +0 -0
  250. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/mock_http_core.py +0 -0
  251. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/mock_service.py +0 -0
  252. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/service.py +0 -0
  253. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/token_store.py +0 -0
  254. {gam7-7.5.22 → gam7-7.6.1}/src/gam/atom/url.py +0 -0
  255. {gam7-7.5.22 → gam7-7.6.1}/src/gam/cacerts.pem +0 -0
  256. {gam7-7.5.22 → gam7-7.6.1}/src/gam/cbcm-v1.1beta1.json +0 -0
  257. {gam7-7.5.22 → gam7-7.6.1}/src/gam/contactdelegation-v1.json +0 -0
  258. {gam7-7.5.22 → gam7-7.6.1}/src/gam/datastudio-v1.json +0 -0
  259. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/__init__.py +0 -0
  260. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glaction.py +0 -0
  261. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glapi.py +0 -0
  262. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glcfg.py +0 -0
  263. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glclargs.py +0 -0
  264. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glentity.py +0 -0
  265. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glgdata.py +0 -0
  266. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glglobals.py +0 -0
  267. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glindent.py +0 -0
  268. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glmsgs.py +0 -0
  269. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glskus.py +0 -0
  270. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/gluprop.py +0 -0
  271. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/glverlibs.py +0 -0
  272. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gamlib/yubikey.py +0 -0
  273. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/__init__.py +0 -0
  274. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/alt/__init__.py +0 -0
  275. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/alt/app_engine.py +0 -0
  276. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/alt/appengine.py +0 -0
  277. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/apps/__init__.py +0 -0
  278. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/apps/audit/__init__.py +0 -0
  279. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/apps/audit/service.py +0 -0
  280. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  281. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/apps/contacts/service.py +0 -0
  282. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/apps/service.py +0 -0
  283. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/service.py +0 -0
  284. {gam7-7.5.22 → gam7-7.6.1}/src/gam/gdata/urlfetch.py +0 -0
  285. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/__init__.py +0 -0
  286. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/_auth.py +0 -0
  287. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/_helpers.py +0 -0
  288. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/channel.py +0 -0
  289. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/discovery.py +0 -0
  290. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  291. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  292. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  293. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  294. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/errors.py +0 -0
  295. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/http.py +0 -0
  296. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/mimeparse.py +0 -0
  297. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/model.py +0 -0
  298. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/schema.py +0 -0
  299. {gam7-7.5.22 → gam7-7.6.1}/src/gam/googleapiclient/version.py +0 -0
  300. {gam7-7.5.22 → gam7-7.6.1}/src/gam/iso8601/__init__.py +0 -0
  301. {gam7-7.5.22 → gam7-7.6.1}/src/gam/iso8601/iso8601.py +0 -0
  302. {gam7-7.5.22 → gam7-7.6.1}/src/gam/meet-v2beta.json +0 -0
  303. {gam7-7.5.22 → gam7-7.6.1}/src/gam/serviceaccountlookup-v1.json +0 -0
  304. {gam7-7.5.22 → gam7-7.6.1}/src/gam/six.py +0 -0
  305. {gam7-7.5.22 → gam7-7.6.1}/src/gam-install.sh +0 -0
  306. {gam7-7.5.22 → gam7-7.6.1}/src/gam-setup.bat +0 -0
  307. {gam7-7.5.22 → gam7-7.6.1}/src/gam.exe.manifest +0 -0
  308. {gam7-7.5.22 → gam7-7.6.1}/src/gam.py +0 -0
  309. {gam7-7.5.22 → gam7-7.6.1}/src/gam.spec +0 -0
  310. {gam7-7.5.22 → gam7-7.6.1}/src/gam.wxs +0 -0
  311. {gam7-7.5.22 → gam7-7.6.1}/src/license.rtf +0 -0
  312. {gam7-7.5.22 → gam7-7.6.1}/src/requirements-dev.txt +0 -0
  313. {gam7-7.5.22 → gam7-7.6.1}/src/requirements.txt +0 -0
  314. {gam7-7.5.22 → gam7-7.6.1}/src/setup.cfg +0 -0
  315. {gam7-7.5.22 → gam7-7.6.1}/src/setup.py +0 -0
  316. {gam7-7.5.22 → gam7-7.6.1}/src/tools/a_atleast_b.py +0 -0
  317. {gam7-7.5.22 → gam7-7.6.1}/src/tools/gen-wix-xml-filelist.py +0 -0
  318. {gam7-7.5.22 → gam7-7.6.1}/src/tools/mkGamRef.py +0 -0
  319. {gam7-7.5.22 → gam7-7.6.1}/src/tools/openssl.props +0 -0
  320. {gam7-7.5.22 → gam7-7.6.1}/src/version_info.txt.in +0 -0
@@ -2,7 +2,11 @@ name: Build and test GAM
2
2
 
3
3
  on:
4
4
  push:
5
+ paths-ignore:
6
+ - 'wiki/**'
5
7
  pull_request:
8
+ paths-ignore:
9
+ - 'wiki/**'
6
10
  schedule:
7
11
  - cron: '37 22 * * *'
8
12
  workflow_dispatch:
@@ -18,7 +22,7 @@ defaults:
18
22
  working-directory: src
19
23
 
20
24
  env:
21
- SCRATCH_COUNTER: 11
25
+ SCRATCH_COUNTER: 13
22
26
  OPENSSL_CONFIG_OPTS: no-fips --api=3.0.0
23
27
  OPENSSL_INSTALL_PATH: ${{ github.workspace }}/bin/ssl
24
28
  OPENSSL_SOURCE_PATH: ${{ github.workspace }}/src/openssl
@@ -130,7 +134,7 @@ jobs:
130
134
  with:
131
135
  path: |
132
136
  cache.tar.xz
133
- key: gam-${{ matrix.jid }}-20250204
137
+ key: gam-${{ matrix.jid }}-20250408-01
134
138
 
135
139
  - name: Untar Cache archive
136
140
  if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true'
@@ -607,9 +611,11 @@ jobs:
607
611
  # arm64 needs to build a wheel and needs scons to build
608
612
  sudo apt-get -qq --yes install scons
609
613
  "${PYTHON}" -m pip install --upgrade patchelf-wrapper
610
- "${PYTHON}" -m pip install --upgrade staticx
614
+ # "${PYTHON}" -m pip install --upgrade staticx
615
+ # install latest github src for staticx
616
+ "${PYTHON}" -m pip install --upgrade "git+https://github.com/JonathonReinhart/staticx"
611
617
 
612
- - name: Make StaticX
618
+ - name: Make StaticX GAM build
613
619
  if: matrix.staticx == 'yes'
614
620
  run: |
615
621
  case $RUNNER_ARCH in
@@ -821,9 +827,9 @@ jobs:
821
827
 
822
828
  # cleanup old runs
823
829
  $gam config enable_dasa false save
824
- $gam config csv_output_row_filter "name:regex:gha_test_${JID}_" print vaultholds || if [ $? != 55 ]; then exit $?; fi | $gam csv - gam delete vaulthold "id:~~holdId~~" matter "id:~~matterId~~"
825
- $gam config csv_output_row_filter "name:regex:gha_test_${HID}_" print vaultmatters matterstate OPEN | $gam csv - gam update vaultmatter "id:~~matterId~~" action close
826
- $gam config csv_output_row_filter "name:regex:gha_test_${HID}_" print vaultmatters matterstate CLOSED | $gam csv - gam update vaultmatter "id:~~matterId~~" action delete
830
+ $gam config csv_output_row_filter "name:regex:gha_test_${JID}_" print vaultholds | $gam csv - gam delete vaulthold "id:~~holdId~~" matter "id:~~matterId~~" || if [ $? != 55 ]; then exit $?; fi
831
+ $gam config csv_output_row_filter "name:regex:gha_test_${JID}_" print vaultmatters matterstate OPEN | $gam csv - gam update vaultmatter "id:~~matterId~~" action close
832
+ $gam config csv_output_row_filter "name:regex:gha_test_${JID}_" print vaultmatters matterstate CLOSED | $gam csv - gam update vaultmatter "id:~~matterId~~" action delete
827
833
  $gam config csv_output_row_filter "Emails.1.address:regex:^gha_test-${JID}_" print contacts | $gam csv - gam delete contact ~ContactID
828
834
  $gam config enable_dasa true save
829
835
  $gam config csv_output_row_filter "name:regex:gha_test_${JID}_" print features | $gam csv - gam delete feature ~name
@@ -13,10 +13,11 @@ name: "CodeQL"
13
13
 
14
14
  on:
15
15
  push:
16
- branches: [ main ]
16
+ paths-ignore:
17
+ - 'wiki/**'
17
18
  pull_request:
18
- # The branches below must be a subset of the branches above
19
- branches: [ main ]
19
+ paths-ignore:
20
+ - 'wiki/**'
20
21
  schedule:
21
22
  - cron: '25 10 * * 1'
22
23
 
@@ -2,7 +2,11 @@ name: Check for Google Root CA Updates
2
2
 
3
3
  on:
4
4
  push:
5
+ paths-ignore:
6
+ - 'wiki/**'
5
7
  pull_request:
8
+ paths-ignore:
9
+ - 'wiki/**'
6
10
  schedule:
7
11
  - cron: '23 23 * * *'
8
12
 
@@ -0,0 +1,41 @@
1
+ name: Push wiki
2
+ permissions:
3
+ contents: write
4
+ on:
5
+ push:
6
+ paths:
7
+ - 'wiki/**'
8
+ jobs:
9
+ pushwiki:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout GAM source
13
+ run: |
14
+ # checkout via normal shell here
15
+ # so we're not authorized to actually make any changes
16
+ git clone https://github.com/GAM-team/GAM
17
+
18
+ - name: Checkout Wiki source
19
+ uses: actions/checkout@master
20
+ with:
21
+ path: GAM.wiki
22
+ repository: GAM-team/GAM.wiki
23
+ persist-credentials: true
24
+ fetch-depth: 0
25
+
26
+ - name: Overwrite all Wiki repo files with /wiki from main git
27
+ run: |
28
+ # remove all wiki repo files so deletes work
29
+ rm -fv GAM.wiki/*.md
30
+ # copy all files from main GAM repo wiki folder
31
+ cp -fv GAM/wiki/*.md GAM.wiki/
32
+
33
+ - name: Commit Wiki changes
34
+ run: |
35
+ cd GAM.wiki
36
+ git config --local user.email "action@github.com"
37
+ git config --local user.name "GitHub Action"
38
+ git add *.md
39
+ git commit -m "[no ci] Push Wiki changes"
40
+ git status
41
+ git push
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.5.22
3
+ Version: 7.6.1
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
@@ -1,3 +1,15 @@
1
+ 7.06.01
2
+
3
+ Updated `gam <UserTypeEntity> create|update drivefileacl ... expiration <Time>`
4
+ to handle additional API errors.
5
+
6
+ 7.06.00
7
+
8
+ Upgraded to OpenSSL 3.5.0.
9
+
10
+ Fixed bug in `gam print cigroups` where `createTime`, `updateTime` and `statusTime`
11
+ were not converted according to `gam.cfg timezone`.
12
+
1
13
  7.05.22
2
14
 
3
15
  Updated progress messages for `gam <UserTypeEntity> print filelist|filecounts|filesharecounts|filetree select shareddriveid <SharedDriveID>`
@@ -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.05.22'
28
+ __version__ = '7.06.01'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -33563,14 +33563,14 @@ def doPrintGroups():
33563
33563
  groupSettings.pop(key)
33564
33564
  if FJQC.formatJSON:
33565
33565
  row['email'] = groupEntity['email']
33566
- row['JSON'] = json.dumps(groupEntity, ensure_ascii=False, sort_keys=True)
33566
+ row['JSON'] = json.dumps(cleanJSON(groupEntity), ensure_ascii=False, sort_keys=True)
33567
33567
  if rolesSet and groupMembers is not None:
33568
33568
  row['JSON-members'] = json.dumps(groupMembers, ensure_ascii=False, sort_keys=True)
33569
33569
  if isinstance(groupSettings, dict):
33570
- row['JSON-settings'] = json.dumps(groupSettings, ensure_ascii=False, sort_keys=True)
33570
+ row['JSON-settings'] = json.dumps(cleanJSON(groupSettings), ensure_ascii=False, sort_keys=True)
33571
33571
  groupCloudIdentity = ciGroups.get(row['email'], {})
33572
33572
  if groupCloudIdentity:
33573
- row['JSON-cloudIdentity'] = json.dumps(groupCloudIdentity, ensure_ascii=False, sort_keys=True)
33573
+ row['JSON-cloudIdentity'] = json.dumps(cleanJSON(groupCloudIdentity, timeObjects=CIGROUP_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)
33574
33574
  csvPF.WriteRowNoFilter(row)
33575
33575
  return
33576
33576
  for field in groupFieldsLists['cd']:
@@ -35935,7 +35935,7 @@ def doPrintCIGroups():
35935
35935
  row = {}
35936
35936
  if FJQC.formatJSON:
35937
35937
  row['email'] = groupEntity['groupKey']['id'].lower()
35938
- row['JSON'] = json.dumps(groupEntity, ensure_ascii=False, sort_keys=True)
35938
+ row['JSON'] = json.dumps(cleanJSON(groupEntity, timeObjects=CIGROUP_TIME_OBJECTS), ensure_ascii=False, sort_keys=True)
35939
35939
  if rolesSet and groupMembers is not None:
35940
35940
  row['JSON-members'] = json.dumps(groupMembers, ensure_ascii=False, sort_keys=True)
35941
35941
  csvPF.WriteRowNoFilter(row)
@@ -63090,7 +63090,8 @@ def createDriveFileACL(users, useDomainAdminAccess=False):
63090
63090
  if showDetails:
63091
63091
  _showDriveFilePermission(permission, printKeys, timeObjects)
63092
63092
  except (GAPI.badRequest, GAPI.invalid, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
63093
- GAPI.cannotSetExpiration, GAPI.expirationDateNotAllowedForSharedDriveMembers,
63093
+ GAPI.cannotSetExpiration, GAPI.cannotSetExpirationOnAnyoneOrDomain,
63094
+ GAPI.expirationDateNotAllowedForSharedDriveMembers, GAPI.expirationDatesMustBeInTheFuture,
63094
63095
  GAPI.insufficientFilePermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
63095
63096
  GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
63096
63097
  GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
@@ -63225,7 +63226,8 @@ def updateDriveFileACLs(users, useDomainAdminAccess=False):
63225
63226
  if showDetails:
63226
63227
  _showDriveFilePermission(permission, printKeys, timeObjects)
63227
63228
  except (GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError, GAPI.insufficientFilePermissions, GAPI.unknownError,
63228
- GAPI.cannotSetExpiration, GAPI.expirationDateNotAllowedForSharedDriveMembers,
63229
+ GAPI.cannotSetExpiration, GAPI.cannotSetExpirationOnAnyoneOrDomain,
63230
+ GAPI.expirationDateNotAllowedForSharedDriveMembers, GAPI.expirationDatesMustBeInTheFuture,
63229
63231
  GAPI.badRequest, GAPI.invalidOwnershipTransfer, GAPI.cannotRemoveOwner,
63230
63232
  GAPI.fileNeverWritable, GAPI.ownershipChangeAcrossDomainNotPermitted, GAPI.sharingRateLimitExceeded,
63231
63233
  GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges,
@@ -63325,7 +63327,8 @@ def createDriveFilePermissions(users, useDomainAdminAccess=False):
63325
63327
  body=_makePermissionBody(ri[RI_ITEM]), fields='', supportsAllDrives=True)
63326
63328
  entityActionPerformed([Ent.DRIVE_FILE_OR_FOLDER_ID, ri[RI_ENTITY], Ent.PERMITTEE, ri[RI_ITEM]], int(ri[RI_J]), int(ri[RI_JCOUNT]))
63327
63329
  except (GAPI.badRequest, GAPI.invalid, GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
63328
- GAPI.cannotSetExpiration, GAPI.expirationDateNotAllowedForSharedDriveMembers,
63330
+ GAPI.cannotSetExpiration, GAPI.cannotSetExpirationOnAnyoneOrDomain,
63331
+ GAPI.expirationDateNotAllowedForSharedDriveMembers, GAPI.expirationDatesMustBeInTheFuture,
63329
63332
  GAPI.insufficientFilePermissions, GAPI.unknownError, GAPI.ownershipChangeAcrossDomainNotPermitted,
63330
63333
  GAPI.teamDriveDomainUsersOnlyRestriction, GAPI.teamDriveTeamMembersOnlyRestriction,
63331
63334
  GAPI.targetUserRoleLimitedByLicenseRestriction, GAPI.insufficientAdministratorPrivileges, GAPI.sharingRateLimitExceeded,
@@ -48,6 +48,7 @@ CANNOT_MOVE_TRASHED_ITEM_INTO_TEAMDRIVE = 'cannotMoveTrashedItemIntoTeamDrive'
48
48
  CANNOT_MOVE_TRASHED_ITEM_OUT_OF_TEAMDRIVE = 'cannotMoveTrashedItemOutOfTeamDrive'
49
49
  CANNOT_REMOVE_OWNER = 'cannotRemoveOwner'
50
50
  CANNOT_SET_EXPIRATION = 'cannotSetExpiration'
51
+ CANNOT_SET_EXPIRATION_ON_ANYONE_OR_DOMAIN = 'cannotSetExpirationOnAnyoneOrDomain'
51
52
  CANNOT_SHARE_GROUPS_WITHLINK = 'cannotShareGroupsWithLink'
52
53
  CANNOT_SHARE_USERS_WITHLINK = 'cannotShareUsersWithLink'
53
54
  CANNOT_SHARE_TEAMDRIVE_TOPFOLDER_WITH_ANYONEORDOMAINS = 'cannotShareTeamDriveTopFolderWithAnyoneOrDomains'
@@ -71,6 +72,7 @@ DOMAIN_POLICY = 'domainPolicy'
71
72
  DOWNLOAD_QUOTA_EXCEEDED = 'downloadQuotaExceeded'
72
73
  DUPLICATE = 'duplicate'
73
74
  EVENT_DURATION_EXCEEDS_LIMIT = 'eventDurationExceedsLimit'
75
+ EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE = 'expirationDatesMustBeInTheFuture'
74
76
  EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS = 'expirationDateNotAllowedForSharedDriveMembers'
75
77
  FAILED_PRECONDITION = 'failedPrecondition'
76
78
  FIELD_IN_USE = 'fieldInUse'
@@ -211,7 +213,8 @@ DRIVE_COPY_THROW_REASONS = DRIVE_ACCESS_THROW_REASONS+[CANNOT_COPY_FILE, BAD_REQ
211
213
  STORAGE_QUOTA_EXCEEDED, TEAMDRIVE_FILE_LIMIT_EXCEEDED, TEAMDRIVE_HIERARCHY_TOO_DEEP]
212
214
  DRIVE_GET_THROW_REASONS = DRIVE_USER_THROW_REASONS+[FILE_NOT_FOUND, DOWNLOAD_QUOTA_EXCEEDED]
213
215
  DRIVE3_CREATE_ACL_THROW_REASONS = [BAD_REQUEST, INVALID, INVALID_SHARING_REQUEST, OWNERSHIP_CHANGE_ACROSS_DOMAIN_NOT_PERMITTED,
214
- CANNOT_SET_EXPIRATION, EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS,
216
+ CANNOT_SET_EXPIRATION, CANNOT_SET_EXPIRATION_ON_ANYONE_OR_DOMAIN,
217
+ EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE, EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS,
215
218
  NOT_FOUND, TEAMDRIVE_DOMAIN_USERS_ONLY_RESTRICTION, TEAMDRIVE_TEAM_MEMBERS_ONLY_RESTRICTION,
216
219
  TARGET_USER_ROLE_LIMITED_BY_LICENSE_RESTRICTION, INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
217
220
  PUBLISH_OUT_NOT_PERMITTED, SHARE_IN_NOT_PERMITTED, SHARE_OUT_NOT_PERMITTED, SHARE_OUT_NOT_PERMITTED_TO_USER,
@@ -228,7 +231,8 @@ DRIVE3_GET_ACL_REASONS = DRIVE_USER_THROW_REASONS+[FILE_NOT_FOUND, FORBIDDEN, IN
228
231
  INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, INSUFFICIENT_FILE_PERMISSIONS,
229
232
  UNKNOWN_ERROR, INVALID]
230
233
  DRIVE3_UPDATE_ACL_THROW_REASONS = [BAD_REQUEST, INVALID_OWNERSHIP_TRANSFER, CANNOT_REMOVE_OWNER,
231
- CANNOT_SET_EXPIRATION, EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS,
234
+ CANNOT_SET_EXPIRATION, CANNOT_SET_EXPIRATION_ON_ANYONE_OR_DOMAIN,
235
+ EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE, EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS,
232
236
  OWNERSHIP_CHANGE_ACROSS_DOMAIN_NOT_PERMITTED,
233
237
  NOT_FOUND, TEAMDRIVE_DOMAIN_USERS_ONLY_RESTRICTION, TEAMDRIVE_TEAM_MEMBERS_ONLY_RESTRICTION,
234
238
  TARGET_USER_ROLE_LIMITED_BY_LICENSE_RESTRICTION, INSUFFICIENT_ADMINISTRATOR_PRIVILEGES, SHARING_RATE_LIMIT_EXCEEDED,
@@ -300,6 +304,7 @@ REASON_MESSAGE_MAP = {
300
304
  ('userId', USER_NOT_FOUND),
301
305
  ('memberKey', INVALID_MEMBER),
302
306
  ('A system error has occurred', SYSTEM_ERROR),
307
+ ('Expiration dates must be in the future', EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE),
303
308
  ('Invalid attribute value', INVALID_ATTRIBUTE_VALUE),
304
309
  ('Invalid Customer Id', INVALID_CUSTOMER_ID),
305
310
  ('Invalid Input: INVALID_OU_ID', INVALID_ORGUNIT),
@@ -405,6 +410,8 @@ class cannotRemoveOwner(Exception):
405
410
  pass
406
411
  class cannotSetExpiration(Exception):
407
412
  pass
413
+ class cannotSetExpirationOnAnyoneOrDomain(Exception):
414
+ pass
408
415
  class cannotShareGroupsWithLink(Exception):
409
416
  pass
410
417
  class cannotShareUsersWithLink(Exception):
@@ -449,6 +456,8 @@ class duplicate(Exception):
449
456
  pass
450
457
  class eventDurationExceedsLimit(Exception):
451
458
  pass
459
+ class expirationDatesMustBeInTheFuture(Exception):
460
+ pass
452
461
  class expirationDateNotAllowedForSharedDriveMembers(Exception):
453
462
  pass
454
463
  class failedPrecondition(Exception):
@@ -690,6 +699,7 @@ REASON_EXCEPTION_MAP = {
690
699
  CANNOT_MOVE_TRASHED_ITEM_OUT_OF_TEAMDRIVE: cannotMoveTrashedItemOutOfTeamDrive,
691
700
  CANNOT_REMOVE_OWNER: cannotRemoveOwner,
692
701
  CANNOT_SET_EXPIRATION: cannotSetExpiration,
702
+ CANNOT_SET_EXPIRATION_ON_ANYONE_OR_DOMAIN: cannotSetExpirationOnAnyoneOrDomain,
693
703
  CANNOT_SHARE_GROUPS_WITHLINK: cannotShareGroupsWithLink,
694
704
  CANNOT_SHARE_USERS_WITHLINK: cannotShareUsersWithLink,
695
705
  CANNOT_SHARE_TEAMDRIVE_TOPFOLDER_WITH_ANYONEORDOMAINS: cannotShareTeamDriveTopFolderWithAnyoneOrDomains,
@@ -712,6 +722,7 @@ REASON_EXCEPTION_MAP = {
712
722
  DOWNLOAD_QUOTA_EXCEEDED: downloadQuotaExceeded,
713
723
  DUPLICATE: duplicate,
714
724
  EVENT_DURATION_EXCEEDS_LIMIT: eventDurationExceedsLimit,
725
+ EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE: expirationDatesMustBeInTheFuture,
715
726
  EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS: expirationDateNotAllowedForSharedDriveMembers,
716
727
  FAILED_PRECONDITION: failedPrecondition,
717
728
  FIELD_IN_USE: fieldInUse,
@@ -0,0 +1,5 @@
1
+ # Scratch Me Wiki
2
+ editing these files shouldn't trigger a regular GitHub Action build.
3
+
4
+ # Counter
5
+ 00010
@@ -0,0 +1,30 @@
1
+ # Addresses
2
+ - [API documentation](#api-documentation)
3
+ - [Display addresses](#display-addresses)
4
+
5
+ ## API documentation
6
+ * [Directory API - Domains](https://developers.google.com/admin-sdk/directory/reference/rest/v1/domains)
7
+ * [Directory API - Groups](https://developers.google.com/admin-sdk/directory/reference/rest/v1/groups)
8
+ * [Directory API - Resources Calendars](https://developers.google.com/admin-sdk/directory/reference/rest/v1/resources.calendars)
9
+ * [Directory API - Users](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users)
10
+
11
+ ## Display addresses
12
+ Produces a three column CSV file (headers Type, Email, Target) that displays all group and user primary
13
+ email addresses and aliases; resource calendar addresses and domain names.
14
+
15
+ The types are:
16
+ ```
17
+ DomainPrimary, DomainSecondary, DomainAlias
18
+ Group, GroupAlias, GroupNEAlias
19
+ Resource
20
+ SuspendedUser, SuspendedUserAlias, SuspendedUserNEAlias
21
+ User, UserAlias, UserNEAlias
22
+ ```
23
+ 'NE' is an abbreviation for NonEditable.
24
+ ```
25
+ gam print addresses [todrive <ToDriveAttribute>*]
26
+ [domain <DomainName>]
27
+ ```
28
+ By default, groups and users in all domains in the account are selected; this options allows selection of subsets of groups and users:
29
+ * `domain <DomainName>` - Limit groups and users to those in `<DomainName>`
30
+