mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-13 18:51:36 +00:00
Compare commits
55 Commits
v7.00.16
...
20241105.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f24629602c | ||
|
|
e5125b6853 | ||
|
|
31e8ac11a2 | ||
|
|
a9c4c006b2 | ||
|
|
378c763aa3 | ||
|
|
e46c837416 | ||
|
|
a478d45258 | ||
|
|
5476c4d14f | ||
|
|
2759d59cbf | ||
|
|
d2213709f0 | ||
|
|
d2840b95d5 | ||
|
|
49cdad014b | ||
|
|
532271130c | ||
|
|
628ef4aeff | ||
|
|
34b344baf9 | ||
|
|
b2daeffa36 | ||
|
|
3440fa7415 | ||
|
|
77bf001195 | ||
|
|
5d0003ce93 | ||
|
|
a0c4be1d5c | ||
|
|
95be4e2d53 | ||
|
|
5f8705fc09 | ||
|
|
975833bf87 | ||
|
|
b4e3f25c1e | ||
|
|
bb198c8c1a | ||
|
|
40899de989 | ||
|
|
01a6781454 | ||
|
|
f448a75da4 | ||
|
|
8e5f5c9a6b | ||
|
|
04156061c4 | ||
|
|
36f96f75c7 | ||
|
|
197bcb3599 | ||
|
|
1474335a79 | ||
|
|
0f8c361dcd | ||
|
|
beb75dbc20 | ||
|
|
cbb95a47f8 | ||
|
|
d7e36bc5eb | ||
|
|
ef14359d9b | ||
|
|
b1444d7c04 | ||
|
|
c3c7d629f7 | ||
|
|
eb33b6521b | ||
|
|
932fe5db02 | ||
|
|
6885bcae92 | ||
|
|
d35e9fcae4 | ||
|
|
861279e614 | ||
|
|
b80dd15f4b | ||
|
|
ae95c8fdea | ||
|
|
090b5937ab | ||
|
|
2323e130b1 | ||
|
|
6ef127f283 | ||
|
|
266f00d3a8 | ||
|
|
5c61867e1f | ||
|
|
0bbe1cc958 | ||
|
|
d1e02e4695 | ||
|
|
f707c83e1a |
BIN
.github/actions/creds.tar.xz.gpg
vendored
BIN
.github/actions/creds.tar.xz.gpg
vendored
Binary file not shown.
18
.github/actions/decrypt.sh
vendored
Normal file → Executable file
18
.github/actions/decrypt.sh
vendored
Normal file → Executable file
@@ -23,10 +23,16 @@ fi
|
||||
gpg --batch \
|
||||
--yes \
|
||||
--decrypt \
|
||||
--passphrase="${PASSCODE}" \
|
||||
--output "${credsfile}" \
|
||||
"${gpgfile}"
|
||||
--passphrase="$PASSCODE" \
|
||||
--output "$credsfile" \
|
||||
"$gpgfile"
|
||||
|
||||
tar xvvf "${credsfile}" --directory "${credspath}"
|
||||
rm -rvf "${gpgfile}"
|
||||
rm -rvf "${credsfile}"
|
||||
if [[ "$RUNNER_OS" == "macOS" ]]; then
|
||||
tar="gtar"
|
||||
else
|
||||
tar="tar"
|
||||
fi
|
||||
|
||||
"$tar" xlvvf "$credsfile" --directory "$credspath"
|
||||
rm -rvf "$gpgfile"
|
||||
rm -rvf "$credsfile"
|
||||
|
||||
49
.github/workflows/build.yml
vendored
49
.github/workflows/build.yml
vendored
@@ -17,7 +17,7 @@ defaults:
|
||||
working-directory: src
|
||||
|
||||
env:
|
||||
SCRATCH_COUNTER: 2
|
||||
SCRATCH_COUNTER: 3
|
||||
OPENSSL_CONFIG_OPTS: no-fips --api=3.0.0
|
||||
OPENSSL_INSTALL_PATH: ${{ github.workspace }}/bin/ssl
|
||||
OPENSSL_SOURCE_PATH: ${{ github.workspace }}/src/openssl
|
||||
@@ -36,58 +36,63 @@ jobs:
|
||||
goal: build
|
||||
arch: x86_64
|
||||
openssl_archs: linux-x86_64
|
||||
- os: [self-hosted, linux, arm64]
|
||||
- os: ubuntu-24.04
|
||||
jid: 2
|
||||
goal: build
|
||||
arch: x86_64
|
||||
openssl_archs: linux-x86_64
|
||||
- os: [self-hosted, linux, arm64]
|
||||
jid: 3
|
||||
goal: build
|
||||
arch: aarch64
|
||||
openssl_archs: linux-aarch64
|
||||
- os: ubuntu-22.04
|
||||
jid: 3
|
||||
jid: 4
|
||||
goal: build
|
||||
arch: x86_64
|
||||
openssl_archs: linux-x86_64
|
||||
staticx: yes
|
||||
- os: [self-hosted, linux, arm64]
|
||||
jid: 4
|
||||
jid: 5
|
||||
goal: build
|
||||
arch: aarch64
|
||||
openssl_archs: linux-aarch64
|
||||
staticx: yes
|
||||
- os: macos-13
|
||||
jid: 5
|
||||
jid: 6
|
||||
goal: build
|
||||
arch: x86_64
|
||||
openssl_archs: darwin64-x86_64
|
||||
- os: macos-14
|
||||
jid: 6
|
||||
jid: 7
|
||||
goal: build
|
||||
arch: aarch64
|
||||
openssl_archs: darwin64-arm64
|
||||
- os: windows-2022
|
||||
jid: 7
|
||||
jid: 8
|
||||
goal: build
|
||||
arch: Win64
|
||||
openssl_archs: VC-WIN64A
|
||||
- os: ubuntu-24.04
|
||||
goal: test
|
||||
python: "3.9"
|
||||
jid: 8
|
||||
arch: x86_64
|
||||
- os: ubuntu-24.04
|
||||
goal: test
|
||||
python: "3.10"
|
||||
jid: 9
|
||||
arch: x86_64
|
||||
- os: ubuntu-24.04
|
||||
goal: test
|
||||
python: "3.11"
|
||||
python: "3.10"
|
||||
jid: 10
|
||||
arch: x86_64
|
||||
- os: ubuntu-24.04
|
||||
goal: test
|
||||
python: "3.12"
|
||||
python: "3.11"
|
||||
jid: 11
|
||||
arch: x86_64
|
||||
- os: ubuntu-24.04
|
||||
goal: test
|
||||
python: "3.12"
|
||||
jid: 12
|
||||
arch: x86_64
|
||||
|
||||
steps:
|
||||
|
||||
@@ -110,7 +115,7 @@ jobs:
|
||||
with:
|
||||
path: |
|
||||
cache.tar.xz
|
||||
key: gam-${{ matrix.jid }}-20241008
|
||||
key: gam-${{ matrix.jid }}-20241022
|
||||
|
||||
- name: Untar Cache archive
|
||||
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true'
|
||||
@@ -181,7 +186,7 @@ jobs:
|
||||
run: |
|
||||
echo "RUNNING: apt update..."
|
||||
sudo apt-get -qq --yes update
|
||||
sudo apt-get -qq --yes install swig libpcsclite-dev libxslt1-dev
|
||||
sudo apt-get -qq --yes install swig libpcsclite-dev libxslt1-dev libsqlite3-dev
|
||||
|
||||
- name: MacOS install tools
|
||||
if: runner.os == 'macOS'
|
||||
@@ -697,6 +702,7 @@ jobs:
|
||||
export MSI_FILENAME="${GITHUB_WORKSPACE}/gam-${GAMVERSION}-windows-${GAM_ARCHIVE_ARCH}.msi"
|
||||
# auto-generate a lib.wxs based on the files PyInstaller created for the lib/ directory
|
||||
/c/Program\ Files\ \(x86\)/WiX\ Toolset\ v3.14/bin/heat.exe dir "${gampath}/lib" -ke -srd -cg Lib -gg -dr lib -directoryid lib -out lib.wxs
|
||||
$PYTHON tools/gen-wix-xml-filelist.py lib.wxs
|
||||
echo "-- begin lib.wxs --"
|
||||
cat lib.wxs
|
||||
echo "-- end lib.wxs --"
|
||||
@@ -799,6 +805,8 @@ jobs:
|
||||
# cleanup old runs
|
||||
$gam config enable_dasa false save
|
||||
$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~~"
|
||||
$gam config csv_output_row_filter "name:regex:gha_test_${HID}_" print vaultmatters matterstate OPEN | $gam csv - gam update vaultmatter "id:~~matterId~~" action close
|
||||
$gam config csv_output_row_filter "name:regex:gha_test_${HID}_" print vaultmatters matterstate CLOSED | $gam csv - gam update vaultmatter "id:~~matterId~~" action delete
|
||||
$gam config enable_dasa true save
|
||||
$gam config csv_output_row_filter "name:regex:gha_test_${JID}_" print features | $gam csv - gam delete feature ~name
|
||||
$gam config csv_output_row_filter "name:regex:^gha_test_${JID}_" user $gam_user print shareddrives asadmin | $gam csv - gam user $gam_user delete shareddrive ~id nukefromorbit
|
||||
@@ -818,8 +826,7 @@ jobs:
|
||||
done
|
||||
driveid=$($gam user $gam_user add shareddrive "${newbase}" returnidonly)
|
||||
echo "Created shared drive ${driveid}"
|
||||
# 9/17/24 - temp create in root due to Google API issues creating users in new OUs
|
||||
$gam create user $newuser firstname GHA lastname $JID displayname "Github Actions ${JID}" password random recoveryphone 12125121110 recoveryemail jay0lee@gmail.com gha.jid $JID languages en+,en-GB- # ou "${newou}"
|
||||
$gam create user $newuser firstname GHA lastname $JID displayname "Github Actions ${JID}" password random recoveryphone 12125121110 recoveryemail jay0lee@gmail.com gha.jid $JID languages en+,en-GB- ou "${newou}"
|
||||
$gam user $newuser add license workspaceenterpriseplus
|
||||
$gam user $newuser update photo https://dummyimage.com/400x600/000/fff
|
||||
$gam user $newuser get photo
|
||||
@@ -828,7 +835,9 @@ jobs:
|
||||
$gam create group $newgroup name "GHA $JID group" description "This is a description" isarchived true
|
||||
$gam user $gam_user sendemail recipient dev-null@pdl.jaylee.us subject "test message $newbase" message "GHA test message"
|
||||
$gam config enable_dasa false save
|
||||
#$gam create contact firstname GHA lastname "$JID" email work "${newbase}@example.com" primary
|
||||
# don't expose policy output
|
||||
$gam show policies > policies.csv
|
||||
$gam create contact firstname GHA lastname "$JID" email work "${newbase}@example.com" primary
|
||||
$gam print contacts
|
||||
$gam print privileges
|
||||
$gam config enable_dasa true save
|
||||
@@ -854,7 +863,7 @@ jobs:
|
||||
$gam info group $newgroup
|
||||
$gam info cigroup $newgroup membertree
|
||||
# confirm mailbox is provisoned before continuing
|
||||
$gam user $newuser waitformailbox retries 20
|
||||
$gam user $newuser waitformailbox retries 50
|
||||
$gam user $newuser imap on
|
||||
$gam user $newuser show imap
|
||||
$gam user $newuser show delegates
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Addresses
|
||||
# Addresses
|
||||
- [API documentation](#api-documentation)
|
||||
- [Display addresses](#display-addresses)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Administrators
|
||||
# Administrators
|
||||
- [Administrator roles documentation](#administrator-roles-documentation)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Alert Center
|
||||
# Alert Center
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Introduction](#introduction)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Authorization
|
||||
- [Introduction](#introduction)
|
||||
- [Headless computers and Cloud Shells](#headless-computers-and-cloud-shells)
|
||||
- [Version 5 Update](#version-5-update)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Python Regular Expressions](Python-Regular-Expressions)
|
||||
- [Definitions](#definitions)
|
||||
@@ -127,25 +126,6 @@ as required by Google for headless computers/cloud shells; this is required as o
|
||||
* See: https://developers.googleblog.com/2022/02/making-oauth-flows-safer.html
|
||||
* OAuth out-of-band (oob) flow will be deprecated
|
||||
|
||||
## Version 5 Update
|
||||
GAM version `5.00.00` replaced the deprecated `oauth2client` library with the `google-auth` library.
|
||||
This change requires a one-time update of the client access file `oauth2.txt`; GAM will continue
|
||||
to use the old version of `oauth2.txt` until you perform the update. There is a small performance
|
||||
impact until the update is performed. However, you can't use the updated version of `oauth2.txt`
|
||||
in prior versions of GAM; if you want to run GAM `5.00.00` and prior versions of GAM,
|
||||
do not perform the update until you no longer need to run the prior versions of GAM.
|
||||
|
||||
If you are running any GAM version `4.85.00` or later, perform the following command
|
||||
after installing `5.00.00` to perform the update.
|
||||
```
|
||||
gam oauth refresh
|
||||
```
|
||||
If you are running any GAM version before `4.85.00`, perform the following command
|
||||
after installing `5.00.00` to perform the update.
|
||||
```
|
||||
gam oauth update
|
||||
```
|
||||
|
||||
## API documentation
|
||||
* https://cloud.google.com/resource-manager/docs/creating-managing-organization#adding_an_organization_administrator
|
||||
* https://cloud.google.com/service-usage/docs/reference/rest
|
||||
@@ -183,12 +163,11 @@ gam oauth update
|
||||
```
|
||||
## Manage Projects
|
||||
In all of the project commands, the Google Workspace admin/GCP project manager `<EmailAddress>` can be omitted; you will be prompted for a value.
|
||||
You must enter a full address, i.e., user@domain.com; you will be required to enter the password.
|
||||
You must enter a full address, i.e., user@domain.com; you will be required to authenticate.
|
||||
|
||||
For `print|show projects`, you can eliminate the password requirement by enabling the following scope in `gam update serviceaccount`;
|
||||
GAM will then use Service Account access to display projects.
|
||||
For `print|show projects`, you can eliminate the password prompt and authentication requirement by specifying the super admin emailaddress used in `gam oauth create`.
|
||||
```
|
||||
[*] 9) Cloud Resource Manager API v3
|
||||
gam print projects admin admin@domain.com
|
||||
```
|
||||
|
||||
## Authorize a super admin to create projects
|
||||
@@ -213,7 +192,7 @@ perform these steps and then retry the create project command.
|
||||
|
||||
## Authorize Service Account Key Uploads
|
||||
|
||||
If you try to create a project and get an error saying that Constraint `constraints/iam.disableServiceAccountKeyUpload violated for service account projects/gam-project-xxx`,
|
||||
If you try to create a project and get an error saying that Constraint `constraints/iam.disableServiceAccountKeyUpload violated for service account projects/gam-project-xxxxx`,
|
||||
perform these steps and then you should be able to authorize and use your project.
|
||||
|
||||
* Login as an existing super admin at console.cloud.google.com
|
||||
@@ -293,7 +272,7 @@ You can skip these steps if you know that untrusted third-party apps are allowed
|
||||
|
||||
### Default values
|
||||
* `<AppName>` - "GAM"
|
||||
* `<ProjectID>` - "gam-project-abc-def-jki" where "abc-def-ghi" are randomly generated
|
||||
* `<ProjectID>` - "gam-project-a1b2c" where "a1b2c" are randomly generated
|
||||
* `<ProjectName>` - "GAM Project"
|
||||
* `<ServiceAccountName>` - `<ProjectID>`
|
||||
* `<ServiceAccountDisplayName>` - `<ProjectName>`
|
||||
@@ -382,7 +361,7 @@ gam update project [[admin] <EmailAddress>] [<ProjectIDEntity>]
|
||||
* `<EmailAddress>` - A Google Workspace admin/GCP project manager; if omitted, you will be prompted for the address
|
||||
|
||||
Use these options to select projects.
|
||||
* `current` - The project referenced in `client_secret.json`; this is the default
|
||||
* `current` - The project referenced in `client_secrets.json`; this is the default
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -394,7 +373,7 @@ gam delete project [[admin] <EmailAddress>] [<ProjectIDEntity>]
|
||||
* `<EmailAddress>` - A Google Workspace admin/GCP project manager; if omitted, you will be prompted for the address
|
||||
|
||||
Use these options to select projects.
|
||||
* `current` - The project referenced in `client_secret.json`; this is the default
|
||||
* `current` - The project referenced in `client_secrets.json`; this is the default
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -414,7 +393,7 @@ gam show projects [[admin] <EmailAddress>] [all|<ProjectIDEntity>]
|
||||
|
||||
Use these options to select projects.
|
||||
* `all` - All projects accessible by the administrator; this is the default
|
||||
* `current` - The project referenced in `client_secret.json`
|
||||
* `current` - The project referenced in `client_secrets.json`
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -432,7 +411,7 @@ gam print projects [[admin] <EmailAddress>] [all|<ProjectIDEntity>] [todrive <To
|
||||
|
||||
Use these options to select projects.
|
||||
* `all` - All projects accessible by the administrator; this is the default
|
||||
* `current` - The project referenced in `client_secret.json`
|
||||
* `current` - The project referenced in `client_secrets.json`
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -718,7 +697,7 @@ gam create|add svcacct [[admin] <EmailAddress>] [<ProjectIDEntity>]
|
||||
* `<EmailAddress>` - Google Workspace admin/GCP project manager; if omitted, you will be prompted for the address
|
||||
|
||||
Use these options to select projects.
|
||||
* `current` - The project referenced in `client_secret.json`; this is the default
|
||||
* `current` - The project referenced in `client_secrets.json`; this is the default
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -741,7 +720,7 @@ gam delete svcacct [[admin] <EmailAddress>] [<ProjectIDEntity>]
|
||||
* `<EmailAddress>` - Google Workspace admin/GCP project manager; if omitted, you will be prompted for the address
|
||||
|
||||
Use these options to select projects.
|
||||
* `current` - The project referenced in `client_secret.json`; this is the default
|
||||
* `current` - The project referenced in `client_secrets.json`; this is the default
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -762,7 +741,7 @@ gam print svcaccts [[admin] <EmailAddress>] [all|<ProjectIDEntity>]
|
||||
|
||||
Use these options to select projects.
|
||||
* `all` - All projects accessible by the administrator; this is the default
|
||||
* `current` - The project referenced in `client_secret.json`
|
||||
* `current` - The project referenced in `client_secrets.json`
|
||||
* `gam` - Projects accessible by the administrator that were created by Gam, i.e, their project ID begins with `gam-project-`
|
||||
* `<ProjectID>` - A Google API project ID
|
||||
* `filter <String>` - A filter to select projects accessible by the administrator; see the API documentation
|
||||
@@ -994,8 +973,8 @@ gam user user@domain.com update serviceaccount
|
||||
[*] 18) Drive API (supports readonly)
|
||||
[*] 19) Drive API - todrive
|
||||
[*] 20) Drive Activity API v2 - must pair with Drive API
|
||||
[*] 21) Drive Labels API v2beta - Admin (supports readonly)
|
||||
[*] 22) Drive Labels API v2beta - User (supports readonly)
|
||||
[*] 21) Drive Labels API - Admin (supports readonly)
|
||||
[*] 22) Drive Labels API - User (supports readonly)
|
||||
[*] 23) Forms API
|
||||
[*] 24) Gmail API - Basic Settings (Filters,IMAP, Language, POP, Vacation) - read/write, Sharing Settings (Delegates, Forwarding, SendAs) - read
|
||||
[*] 25) Gmail API - Full Access (Labels, Messages)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Syntax
|
||||
# Syntax
|
||||
|
||||
## BNF Syntax
|
||||
This Wiki describes the GAM7 command line syntax in modified BNF.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Basic Items
|
||||
# Basic Items
|
||||
- [Primitives](#primitives)
|
||||
- [Items built from primitives](#items-built-from-primitives)
|
||||
- [Named items](#named-items)
|
||||
@@ -274,14 +274,20 @@
|
||||
<EmailAddress>|user:<EmailAddress>|group:<EmailAddress>|
|
||||
domain:<DomainName>|domain|default
|
||||
<CalendarItem> ::= <EmailAddress>
|
||||
<GIGroupAlias> ::= <EmailAddress>
|
||||
<GIGroupItem> ::= <EmailAddress>|<UniqueID>|groups/<String>
|
||||
<CIGroupType> ::= customer|group|other|serviceaccount|user
|
||||
<ChannelCustomerID> ::= <String>
|
||||
<ChatMember> ::= spaces/<String>/members/<String>
|
||||
<ChatMessage> ::= spaces/<String>/messages/<String>
|
||||
<ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String>
|
||||
<ChatThread> ::= spaces/<String>/threads/<String>
|
||||
<GIGroupAlias> ::= <EmailAddress>
|
||||
<GIGroupItem> ::= <EmailAddress>|<UniqueID>|groups/<String>
|
||||
<CIGroupType> ::= customer|group|other|serviceaccount|user
|
||||
<CIPolicyName> ::= policies/<String>|settings/<String>|<String>
|
||||
<ClassificationLabelID> ::= <String>
|
||||
<ClassificationLabelFieldID> ::= <String>
|
||||
<ClassificationLabelSelectionID> ::= <String>
|
||||
<ClassificationLabelName> ::= labels/<ClassificationLabelID>[@latest|@published|@<Number>]
|
||||
<ClassificationLabelPermissionName> ::= labels/<ClassificationLabelID>[@latest|@published|@<Number>]/permissions/(audiences|groups|people)/<String>
|
||||
<ClassroomInvitationID> ::= <String>
|
||||
<ClientID> ::= <String>
|
||||
<CommandID> ::= <String>
|
||||
@@ -351,11 +357,6 @@
|
||||
<DriveFilePermissionID> ::= anyone|anyonewithlink|id:<String>
|
||||
<DriveFilePermissionIDorEmail> ::= <DriveFilePermissionID>|<EmailAddress>
|
||||
<DriveFileRevisionID> ::= <String>
|
||||
<DriveLabelID> ::= <String>
|
||||
<DriveLabelFieldID> ::= <String>
|
||||
<DriveLabelSelectionID> ::= <String>
|
||||
<DriveLabelName> ::= labels/<DriveLabelID>[@latest|@published|@<Number>]
|
||||
<DriveLabelPermissionName> ::= labels/<DriveLabelID>[@latest|@published|@<Number>]/permissions/(audiences|groups|people)/<String>
|
||||
<EmailAddress> ::= <String>@<DomainName>
|
||||
<EmailItem> ::= <EmailAddress>|<UniqueID>|<String>
|
||||
<EmailReplacement> ::= <String>
|
||||
@@ -533,6 +534,7 @@
|
||||
(tdnotify [<Boolean>])|
|
||||
(tdparent (id:<DriveFolderID>)|<DriveFolderName>)|
|
||||
(tdretaintitle [<Boolean>])|
|
||||
(tdreturnidonly [<Boolean>])|
|
||||
(tdshare <EmailAddress> commenter|reader|writer)*|
|
||||
(tdsheet (id:<Number>)|<String>)|
|
||||
(tdsheettimestamp [<Boolean>] [tdsheettimeformat <String>])
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Bulk Processing
|
||||
# Bulk Processing
|
||||
- [Introduction](#introduction)
|
||||
- [Python Regular Expressions](Python-Regular-Expressions)
|
||||
- [GAM Configuration](gam.cfg)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# CSV Output Filtering
|
||||
# CSV Output Filtering
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Search function
|
||||
- [Definitions](#definitions)
|
||||
- [Quoting rules](#quoting-rules)
|
||||
@@ -11,9 +11,11 @@
|
||||
- [Column row limiting](#column-row-limiting)
|
||||
- [Saving filters in gam.cfg](#saving-filters-in-gamcfg)
|
||||
|
||||
There are five values in `gam.cfg` that can be used to filter the output from `gam print` commands.
|
||||
There are seven values in `gam.cfg` that can be used to filter the output from `gam print` commands.
|
||||
* `csv_output_header_filter` - A list of `<RegularExpressions>` used to select specific column headers to include
|
||||
* `csv_output_header_drop_filter` - A list of `<RegularExpressions>` used to select specific column headers to exclude
|
||||
* `csv_output_header_force` - A list of <Strings> used to specify the exact column headers to include
|
||||
* `csv_output_header_order` - A list of <Strings> used to specify the column header order; any headers in the file but not in the list will appear after the headers in the list.
|
||||
* `csv_output_row_filter` - A list or JSON dictionary used to include specific rows based on column values
|
||||
* `csv_output_row_drop_filter` - A list or JSON dictionary used to exclude specific rows based on column values
|
||||
* `csv_output_row_limit` - A limit on the number of rows written
|
||||
@@ -334,7 +336,7 @@ gam config csv_output_row_limit 10 auto_batch_min 1 redirect csv ./BigQuotaFiles
|
||||
```
|
||||
|
||||
## Saving filters in gam.cfg
|
||||
If you define a value for `csv_output_header_filter`, `csv_output_header_drop_filter`, `csv_output_row_filter`, `csv_output_row_drop_filter` or `csv_output_row_limit` in the `[DEFAULT]` section of `gam.cfg`,
|
||||
If you define a value for `csv_output_header_filter`, `csv_output_header_drop_filter`, `csv_output_header_force`, `csv_output_header_order`, `csv_output_row_filter`, `csv_output_row_drop_filter` or `csv_output_row_limit` in the `[DEFAULT]` section of `gam.cfg`,
|
||||
it will apply to every `gam print` command which is probably not desirable. You can store them in `gam.cfg` in named sections.
|
||||
```
|
||||
[Filter510]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# CSV Special Characters
|
||||
# CSV Special Characters
|
||||
- [Python CSV documentation](https://docs.python.org/3/library/csv.html#dialects-and-formatting-parameters)
|
||||
|
||||
## Python variables that control CSV file reading/writing:
|
||||
|
||||
@@ -66,9 +66,12 @@ Client access works when accessing Resource calendars.
|
||||
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
|
||||
<DomainName> ::= <String>(.<String>)+
|
||||
<EmailAddress> ::= <String>@<DomainName>
|
||||
<EmailAddressList> ::= "<EmailAddess>(,<EmailAddress>)*"
|
||||
<EmailAddressEntity> ::= <EmailAddressList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
<EmailAddressList> ::= "<EmailAddress>(,<EmailAddress>)*"
|
||||
<EmailAddressEntity> ::=
|
||||
<EmailAddressList> | <FileSelector> | <CSVFileSelector> |
|
||||
<CSVkmdSelector> | <CSVDataSelector>
|
||||
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
|
||||
<iCalUID> ::= <String>
|
||||
|
||||
<EventAttachmentsSubfieldName> ::=
|
||||
attachments.fileid|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chat Bot
|
||||
# Chat Bot
|
||||
|
||||
- [Notes](#notes)
|
||||
- [API documentation](#api-documentation)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Auto Update Expiration Counts
|
||||
# Chrome Auto Update Expiration Counts
|
||||
|
||||
- [Chrome Auto Update Expiration Counts](#chrome-auto-update-expiration-counts)
|
||||
- [API documentation](#api-documentation)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Installed Apps Counts
|
||||
# Chrome Installed Apps Counts
|
||||
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Device Needs Attention Counts
|
||||
# Chrome Device Needs Attention Counts
|
||||
|
||||
- [Chrome Device Needs Attention Counts](#chrome-device-needs-attention-counts)
|
||||
- [API documentation](#api-documentation)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Policies
|
||||
# Chrome Policies
|
||||
|
||||
- [Chrome Policies](#chrome-policies)
|
||||
- [Chrome Version History](Chrome-Version-History)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Printers
|
||||
# Chrome Printers
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Version Counts
|
||||
# Chrome Version Counts
|
||||
|
||||
- [Chrome Version Counts](#chrome-version-counts)
|
||||
- [API documentation](#api-documentation)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Chrome Version History
|
||||
# Chrome Version History
|
||||
|
||||
- [Chrome Version History](#chrome-version-history)
|
||||
- [API documentation](#api-documentation)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Cloud Channel
|
||||
# Cloud Channel
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Cloud Identity Devices
|
||||
# Cloud Identity Devices
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](#query-documentation)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
373
docs/Cloud-Identity-Policies.md
Normal file
373
docs/Cloud-Identity-Policies.md
Normal file
@@ -0,0 +1,373 @@
|
||||
# Cloud Identity Policies
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
- [Policies](#policies)
|
||||
- [Display Cloud Identity Policies](#display-cloud-identity-policies)
|
||||
|
||||
## API documentation
|
||||
* https://cloud.google.com/identity/docs/concepts/overview-policies
|
||||
* https://cloud.google.com/identity/docs/reference/rest/v1beta1/policies/list
|
||||
|
||||
## Notes
|
||||
To use these commands you must update your client access authentication.
|
||||
You'll enter 19R to turn on the Cloud Identity Policy scope; then continue
|
||||
with authentication.
|
||||
```
|
||||
gam oauth delete
|
||||
gam oauth create
|
||||
...
|
||||
[R] 19) Cloud Identity - Policy
|
||||
```
|
||||
|
||||
## Definitions
|
||||
```
|
||||
<CIPolicyName> ::= policies/<String>|settings/<String>|<String>
|
||||
<CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
|
||||
<CIPolicyNameEntity> ::=
|
||||
<CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
|
||||
```
|
||||
|
||||
## Policies
|
||||
These are the supported policies GAM can show today.
|
||||
|
||||
See: https://cloud.google.com/identity/docs/concepts/supported-policy-api-settings
|
||||
```
|
||||
user_takeout_status (is takeout enabled for service)
|
||||
blogger.user_takeout
|
||||
books.user_takeout
|
||||
location_history.user_takeout
|
||||
maps.user_takeout
|
||||
pay.user_takeout
|
||||
photos.user_takeout
|
||||
play.user_takeout
|
||||
play_console.user_takeout
|
||||
youtube.user_takeout
|
||||
service_status (is service enabled)
|
||||
ad_manager
|
||||
ads
|
||||
adsense
|
||||
alerts
|
||||
analytics
|
||||
applied_digital_skills
|
||||
appsheet
|
||||
arts_and_culture
|
||||
beyondcorp_enterprise
|
||||
blogger
|
||||
bookmarks
|
||||
books
|
||||
calendar
|
||||
campaign_manager
|
||||
chat
|
||||
chrome_canvas
|
||||
chrome_remote_desktop
|
||||
chrome_sync
|
||||
chrome_web_store
|
||||
classroom
|
||||
cloud
|
||||
cloud_search
|
||||
colab
|
||||
cs_first
|
||||
data_studio
|
||||
developers
|
||||
domains
|
||||
drive_and_docs
|
||||
earth
|
||||
enterprise_service_restrictions
|
||||
experimental_apps
|
||||
feedburner
|
||||
fi
|
||||
gmail
|
||||
groups
|
||||
groups_for_business
|
||||
jamboard
|
||||
keep
|
||||
location_history
|
||||
managed_play
|
||||
maps
|
||||
material_gallery
|
||||
meet
|
||||
merchant_center
|
||||
messages
|
||||
migrate
|
||||
my_business
|
||||
my_maps
|
||||
news
|
||||
partner_dash
|
||||
pay
|
||||
pay_for_business
|
||||
photos
|
||||
pinpoint
|
||||
play
|
||||
play_books_partner_center
|
||||
play_console
|
||||
public_data
|
||||
question_hub
|
||||
scholar_profiles
|
||||
search_ads_360
|
||||
search_and_assistant
|
||||
search_console
|
||||
sites
|
||||
socratic
|
||||
takeout
|
||||
tasks
|
||||
third_party_app_backups
|
||||
translate
|
||||
trips
|
||||
vault
|
||||
voice
|
||||
work_insights
|
||||
youtube
|
||||
calendar.appointment_schedules
|
||||
enablePayments
|
||||
chat.chat_apps_access
|
||||
enableApps
|
||||
enableWebhooks
|
||||
chat.chat_file_sharing
|
||||
externalFileSharing
|
||||
internalFileSharing
|
||||
chat.chat_history
|
||||
enableChatHistory
|
||||
historyOnByDefault
|
||||
allowUserModification
|
||||
chat.external_chat_restriction
|
||||
allowExternalChat
|
||||
chat.space_history
|
||||
historyState
|
||||
classroom.api_data_access
|
||||
enableApiAccess
|
||||
classroom.class_membership
|
||||
whoCanJoinClasses
|
||||
whichClassesCanUsersJoin
|
||||
classroom.guardian_access
|
||||
allowAccess
|
||||
whoCanManageGuardianAccess
|
||||
classroom.originality_reports
|
||||
enableOriginalityReportsSchoolMatches
|
||||
classroom.roster_import
|
||||
rosterImportOption
|
||||
classroom.student_unenrollment
|
||||
whoCanUnenrollStudents
|
||||
classroom.teacher_permissions
|
||||
whoCanCreateClasses
|
||||
cloud_sharing_options.cloud_data_sharing
|
||||
sharingOptions
|
||||
detector.regular_expression
|
||||
displayName
|
||||
regularExpression
|
||||
createTime
|
||||
updateTime
|
||||
detector.word_list
|
||||
displayName
|
||||
wordList
|
||||
createTime
|
||||
updateTime
|
||||
description
|
||||
drive_and_docs.drive_for_desktop
|
||||
allowDriveForDesktop
|
||||
restrictToAuthorizedDevices
|
||||
showDownloadLink
|
||||
allowRealTimePresence
|
||||
drive_and_docs.external_sharing
|
||||
externalSharingMode
|
||||
allowReceivingExternalFiles
|
||||
warnForSharingOutsideAllowlistedDomains
|
||||
allowReceivingFilesOutsideAllowlistedDomains
|
||||
allowNonGoogleInvitesInAllowlistedDomains
|
||||
warnForExternalSharing
|
||||
allowNonGoogleInvites
|
||||
allowPublishingFiles
|
||||
accessCheckerSuggestions
|
||||
allowedPartiesForDistributingContent
|
||||
drive_and_docs.file_security_update
|
||||
securityUpdate
|
||||
allowUsersToManageUpdate
|
||||
drive_and_docs.shared_drive_creation
|
||||
allowSharedDriveCreation
|
||||
orgUnitForNewSharedDrives
|
||||
customOrgUnit
|
||||
allowManagersToOverrideSettings
|
||||
allowExternalUserAccess
|
||||
allowNonMemberAccess
|
||||
allowedPartiesForDownloadPrintCopy
|
||||
allowContentManagersToShareFolders
|
||||
gmail.auto_forwarding
|
||||
enableAutoForwarding
|
||||
gmail.confidential_mode
|
||||
enableConfidentialMode
|
||||
gmail.email_attachment_safety
|
||||
enableEncryptedAttachmentProtection
|
||||
encryptedAttachmentProtectionConsequence
|
||||
enableAttachmentWithScriptsProtection
|
||||
attachmentWithScriptsProtectionConsequence
|
||||
enableAnomalousAttachmentProtection
|
||||
anomalousAttachmentProtectionConsequence
|
||||
allowedAnomalousAttachmentFiletypes
|
||||
applyFutureRecommendedSettingsAutomatically
|
||||
encryptedAttachmentProtectionQuarantineId
|
||||
attachmentWithScriptsProtectionQuarantineId
|
||||
anomalousAttachmentProtectionQuarantineId
|
||||
gmail.email_image_proxy_bypass
|
||||
imageProxyBypassPattern
|
||||
enableImageProxy
|
||||
gmail.enhanced_pre_delivery_message_scanning
|
||||
enableImprovedSuspiciousContentDetection
|
||||
gmail.enhanced_smime_encryption
|
||||
enableSmimeEncryption
|
||||
allowUserToUploadCertificates
|
||||
gmail.gmail_name_format
|
||||
allowCustomDisplayNames
|
||||
defaultDisplayNameFormat
|
||||
gmail.imap_access
|
||||
enableImapAccess
|
||||
gmail.links_and_external_images
|
||||
enableShortenerScanning
|
||||
enableExternalImageScanning
|
||||
enableAggressiveWarningsOnUntrustedLinks
|
||||
applyFutureSettingsAutomatically
|
||||
gmail.per_user_outbound_gateway
|
||||
allowUsersToUseExternalSmtpServers
|
||||
gmail.pop_access
|
||||
enablePopAccess
|
||||
gmail.spoofing_and_authentication
|
||||
detectDomainNameSpoofing
|
||||
detectEmployeeNameSpoofing
|
||||
detectDomainSpoofingFromUnauthenticatedSenders
|
||||
detectUnauthenticatedEmails
|
||||
domainNameSpoofingConsequence
|
||||
employeeNameSpoofingConsequence
|
||||
domainSpoofingConsequence
|
||||
unauthenticatedEmailConsequence
|
||||
detectGroupsSpoofing
|
||||
groupsSpoofingVisibilityType
|
||||
groupsSpoofingConsequence
|
||||
applyFutureSettingsAutomatically
|
||||
domainNameSpoofingQuarantineId
|
||||
employeeNameSpoofingQuarantineId
|
||||
domainSpoofingQuarantineId
|
||||
unauthenticatedEmailQuarantineId
|
||||
groupsSpoofingQuarantineId
|
||||
gmail.user_email_uploads
|
||||
enableMailAndContactsImport
|
||||
gmail.workspace_sync_for_outlook
|
||||
enableGoogleWorkspaceSyncForMicrosoftOutlook
|
||||
groups_for_business.groups_sharing
|
||||
ownersCanAllowIncomingMailFromPublic
|
||||
collaborationCapability
|
||||
createGroupsAccessLevel
|
||||
ownersCanAllowExternalMembers
|
||||
ownersCanHideGroups
|
||||
newGroupsAreHidden
|
||||
viewTopicsDefaultAccessLevel
|
||||
meet.safety_access
|
||||
meetingsAllowedToJoin
|
||||
meet.safety_domain
|
||||
usersAllowedToJoin
|
||||
meet.safety_external_participants
|
||||
enableExternalLabel
|
||||
meet.safety_host_management
|
||||
enableHostManagement
|
||||
meet.video_recording
|
||||
enableRecording
|
||||
rule.dlp
|
||||
displayName
|
||||
description
|
||||
triggers
|
||||
condition
|
||||
action
|
||||
state
|
||||
createTime
|
||||
updateTime
|
||||
ruleTypeMetadata
|
||||
rule.system_defined_alerts
|
||||
displayName
|
||||
description
|
||||
action
|
||||
state
|
||||
createTime
|
||||
updateTime
|
||||
security.advanced_protection_program
|
||||
enableAdvancedProtectionSelfEnrollment
|
||||
securityCodeOption
|
||||
security.less_secure_apps
|
||||
allowLessSecureApps
|
||||
security.login_challenges
|
||||
enableEmployeeIdChallenge
|
||||
security.password
|
||||
allowedStrength
|
||||
minimumLength
|
||||
maximumLength
|
||||
enforceRequirementsAtLogin
|
||||
allowReuse
|
||||
expirationDuration
|
||||
security.session_controls
|
||||
webSessionDuration
|
||||
security.super_admin_account_recovery
|
||||
enableAccountRecovery
|
||||
security.user_account_recovery
|
||||
enableAccountRecovery
|
||||
sites.sites_creation_and_modification
|
||||
allowSitesCreation
|
||||
allowSitesModification
|
||||
workspace_marketplace.apps_allowlist
|
||||
apps
|
||||
```
|
||||
## Display Cloud Identity Policies
|
||||
Display selected policies.
|
||||
```
|
||||
gam info policies <CIPolicyEntity>
|
||||
[nowarnings] [noappnames]
|
||||
[formatjson]
|
||||
```
|
||||
|
||||
Select policies::
|
||||
* `polices/<String>` - A policy name, `policies/ahv4hg7qc24kvaghb7zihwf4riid4`
|
||||
* `settings/<String>` - A policy setting type, `settings/workspace_marketplace.apps_allowlist'
|
||||
* `<String>` - A policy setting type, `workspace_marketplace.apps_allowlist'
|
||||
|
||||
By default, policy warnings are displayed, use the 'nowarnings` option to suppress their display.
|
||||
|
||||
By default, additional API calls are made for `settings/workspace_marketplace.apps_allowlist`
|
||||
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
||||
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
Display all or filtered policies.
|
||||
```
|
||||
gam show policies
|
||||
[filter <String>] [nowarnings] [noappnames]
|
||||
[formatjson]
|
||||
```
|
||||
By default, all policies are displayed.
|
||||
* `filter <String>` - Display filtered policies, See https://cloud.google.com/identity/docs/reference/rest/v1beta1/policies/list
|
||||
|
||||
By default, policy warnings are displayed, use the 'nowarnings` option to suppress their display.
|
||||
|
||||
By default, additional API calls are made for `settings/workspace_marketplace.apps_allowlist`
|
||||
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
||||
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam print policies [todrive <ToDriveAttribute>*]
|
||||
[filter <String>] [nowarnings] [noappnames]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
By default, all policies are displayed:
|
||||
* `filter <String>` - Display filtered policies, See https://cloud.google.com/identity/docs/reference/rest/v1beta1/policies/list
|
||||
|
||||
By default, policy warnings are displayed, use the 'nowarnings` option to suppress their display.
|
||||
|
||||
By default, additional API calls are made for `settings/workspace_marketplace.apps_allowlist`
|
||||
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
||||
|
||||
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
|
||||
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
|
||||
When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
|
||||
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
||||
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Cloud Storage
|
||||
# Cloud Storage
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Collections of ChromeOS Devices
|
||||
# Collections of ChromeOS Devices
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Match function
|
||||
- [Definitions](#definitions)
|
||||
- [Organization Unit Quoting](#organization-unit-quoting)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Collections of Items
|
||||
# Collections of Items
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Match function
|
||||
- [Definitions](#definitions)
|
||||
- [ListSelector](#listselector)
|
||||
@@ -144,6 +144,12 @@ Data fields identified in a `csvkmd` argument.
|
||||
<CalendarACLScopeList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
<CalendarEntity> ::=
|
||||
<CalendarList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
<CIPolicyNameEntity> ::=
|
||||
<CIPolicyNameList> | <FileSelector> | <CSVFileSelector>
|
||||
<ClassificationLabelNameEntity> ::=
|
||||
<ClassificationLabelNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
<ClassificationLabelPermissionNameEntity> ::=
|
||||
<ClassificationLabelPermissionNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
<ClassroomInvitationIDEntity> ::=
|
||||
<ClassroomInvitationIDList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
<ContactEntity> ::=
|
||||
@@ -265,10 +271,6 @@ Data fields identified in a `csvkmd` argument.
|
||||
(first|last|allexceptfirst|allexceptlast <Number>)|
|
||||
(before|after <Time>) | (range <Time> <Time>)|
|
||||
<FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
<DriveLabelNameEntity> ::=
|
||||
<DriveLabelNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
<DriveLabelPermissionNameEntity> ::=
|
||||
<DriveLabelPermissionNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
<EmailAddressEntity> ::=
|
||||
<EmailAddressList> | <FileSelector> | <CSVFileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
<FilterIDEntity> ::=
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Collections of Users
|
||||
# Collections of Users
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Match function
|
||||
- [Definitions](#definitions)
|
||||
- [List quoting rules](#list-quoting-rules)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Command data from Google Docs, Sheets and Cloud Storage
|
||||
# Command data from Google Docs, Sheets and Cloud Storage
|
||||
- [Introduction](#introduction)
|
||||
- [Definitions](#definitions)
|
||||
- [Read data from a Google Doc or Drive File](#read-data-from-a-google-doc-or-drive-file)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Command Line Parsing
|
||||
# Command Line Parsing
|
||||
- [Linux and MacOS](#linux-and-macos)
|
||||
- [Windows Command Prompt](#windows-command-prompt)
|
||||
- [Windows PowerShell](#windows-powershell)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Command Logging and Progress
|
||||
# Command Logging and Progress
|
||||
- [Introduction](#introduction)
|
||||
- [GAM Configuration](gam.cfg)
|
||||
- [Command Logging](#command-logging)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
- [Parameters for Basic Levels](#parameters-for-basic-levels)
|
||||
- [Create an Access Level](#create-an-access-level)
|
||||
- [Update an Access Level](#update-an-access-level)
|
||||
- [Update Access Levels with JSON](#update-access-levels-with-json)
|
||||
- [Delete an Access Level](#delete-an-access-level)
|
||||
- [Display all Access Levels](#display-all-access-levels)
|
||||
- [CAA Region Codes](#caa-region-codes)
|
||||
@@ -177,6 +178,27 @@ This example adds UK to the allowed regions for CORP_COUNTRIES
|
||||
gam update caalevel CORP_COUNTRIES basic condition regions US,CA,UK endcondition
|
||||
```
|
||||
|
||||
## Update Access Levels with JSON
|
||||
Update existing CAA levels via their JSON data; create a CSV file of CAA levels.
|
||||
```
|
||||
gam redirect csv ./CAAlevels.csv print caalevels formatjson quotechar "'"
|
||||
```
|
||||
Edit the JSON column for the desired CAA level(s) in CAAlevels.csv.
|
||||
Update the desired CAA level by selecting the row by it's title; repeat for each title to update.
|
||||
```
|
||||
gam config csv_input_row_filter "title:text='Example Title'" csv CAAlevels.csv quotechar "'" gam update caalevel "~name" json "~JSON"
|
||||
```
|
||||
|
||||
## Example
|
||||
Edit CAAlevels.csv and add UK to the allowed regions for CORP_COUNTRIES
|
||||
```
|
||||
{"regions": ["US", "CA", "UK"]}
|
||||
```
|
||||
Do the update.
|
||||
```
|
||||
gam config csv_input_row_filter "title:text='CORP_COUNTRIES'" csv CAAlevels.csv quotechar "'" gam update caalevel "~name" json "~JSON"
|
||||
```
|
||||
|
||||
## Delete an Access Level
|
||||
Deletes the specified access level.
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Customer
|
||||
# Customer
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Update customer](#update-customer)
|
||||
|
||||
@@ -306,26 +306,10 @@ The `quotechar <Character>` option allows you to choose an alternate quote chara
|
||||
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
||||
|
||||
## Display global address list
|
||||
```
|
||||
gam info gal <ContactEntity>
|
||||
[basic|full]
|
||||
[fields <ContactFieldNameList>] [formatjson]
|
||||
gam show gal <ContactSelection>
|
||||
[basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
||||
[fields <ContactFieldNameList>] [formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
```
|
||||
gam print gal [todrive <ToDriveAttribute>*] <ContactSelection>
|
||||
[basic|full] [orderby <ContactOrderByFieldName> [ascending|descending]]
|
||||
[fields <ContactFieldNameList>] [formatjson [quotechar <Character>]]
|
||||
```
|
||||
By default, Gam displays the information as columns of fields.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
As of mid-October 2024, Google deprecated the API that retrieved the Global Address List.
|
||||
|
||||
By default, when writing CSV files, Gam uses a quote character of double quote `"`. The quote character is used to enclose columns that contain
|
||||
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
|
||||
When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output.
|
||||
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
||||
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
||||
These commands are a work-around.
|
||||
```
|
||||
gam config csv_output_row_filter "includeInGlobalAddressList:boolean:true" redirect csv ./UserGAL.csv print users fields name,gal
|
||||
gam config csv_output_row_filter "includeInGlobalAddressList:boolean:true" batch_size 25 redirect csv ./GroupGAL.csv print groups fields name,gal
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Domains - Verification
|
||||
# Domains - Verification
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Introduction](#introduction)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Domains
|
||||
# Domains
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Create a domain](#create-a-domain)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Downloads-Installs-GAM7
|
||||
# Downloads-Installs-GAM7
|
||||
You can download and install the current GAM7 release from the [GitHub Releases](https://github.com/GAM-team/GAM/releases/latest) page.
|
||||
Choose one of the following:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Drive Items
|
||||
# Drive Items
|
||||
- [Basic Items](Basic-Items)
|
||||
- [List Items](List-Items)
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Email Audit Monitor
|
||||
# Email Audit Monitor
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Find File Owner
|
||||
# Find File Owner
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Display File Ownership](#display-file-ownership)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# GAM Return Codes
|
||||
# GAM Return Codes
|
||||
|
||||
These are the return codes used by GAM7.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# GAM setup with minimal GCP permissions.
|
||||
# GAM setup with minimal GCP permissions.
|
||||
|
||||
- GCP Admin can create a project for the Workspace / GAM admin.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# GAM7 on Android Devices
|
||||
# GAM7 on Android Devices
|
||||
GAM7 now runs on 64-bit Android devices such as Google's Pixel phones. The installation requires an app that adds the Linux environment to Android such as [UserLAnd](https://play.google.com/store/apps/details?id=tech.ula&hl=en_US).
|
||||
|
||||
_Note: Chromebooks / Chrome OS devices should install GAM7 using [these instructions](GAM7-on-Chrome-OS-Devices)._
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# GAM7 on Chrome OS Devices
|
||||
# GAM7 on Chrome OS Devices
|
||||
Chrome OS devices that [support Linux apps](https://support.google.com/chromebook/answer/9145439?hl=en) can run GAM7. This includes Intel/AMD x86_64 Chromebooks as well as ARM-based Chromebooks with Mediatek or Rockchip 64-bit CPUs.
|
||||
|
||||
1. [Set up Linux on your Chromebook](https://support.google.com/chromebook/answer/9145439?hl=en).
|
||||
|
||||
@@ -10,6 +10,145 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
||||
|
||||
See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
||||
|
||||
### 7.00.36
|
||||
|
||||
Updated `gam print chromeapps` to correct a trap caused by an API change.
|
||||
|
||||
### 7.00.35
|
||||
|
||||
Classification labels are now available for Gmail in addition to Drive.
|
||||
|
||||
* See: https://workspaceupdates.googleblog.com/2024/11/open-beta-data-classification-labels-gmail.html
|
||||
|
||||
The following command synonyms are available, there is no change in functionality:
|
||||
```
|
||||
gam [<UserTypeEntity>] info classificationlabels|drivelabels
|
||||
gam [<UserTypeEntity>] print classificationlabels|drivelabels
|
||||
gam [<UserTypeEntity>] show classificationlabels|drivelabels
|
||||
gam [<UserTypeEntity>] create classificationlabelpermission|drivelabelpermission
|
||||
gam [<UserTypeEntity>] delete classificationlabelpermission|drivelabelpermission
|
||||
gam [<UserTypeEntity>] remove classificationlabelpermission|drivelabelpermission
|
||||
gam [<UserTypeEntity>] print classificationlabelpermissions|drivelabelpermission
|
||||
gam [<UserTypeEntity>] show classificationlabelpermissions|drivelabelpermission
|
||||
```
|
||||
|
||||
### 7.00.34
|
||||
|
||||
Fixed bug introduced in 7.00.33 in `gam print group-members` that caused a trap.
|
||||
|
||||
### 7.00.33
|
||||
|
||||
Fixed bug in `gam print group-members ... cachememberinfo` that caused a trap.
|
||||
|
||||
### 7.00.32
|
||||
|
||||
Updated `gam info policies` to accept different policy specifications:
|
||||
* `polices/<String>` - A policy name, `policies/ahv4hg7qc24kvaghb7zihwf4riid4`
|
||||
* `settings/<String>` - A policy setting type, `settings/workspace_marketplace.apps_allowlist`
|
||||
* `<String>` - A policy setting type, `workspace_marketplace.apps_allowlist`
|
||||
|
||||
### 7.00.31
|
||||
|
||||
Updated `gam info|print|show policies` to make additional API calls for `settings/workspace_marketplace.apps_allowlist`
|
||||
to get the application name for the application ID. Use option `noappnames` to suppress these calls.
|
||||
|
||||
### 7.00.30
|
||||
|
||||
Added command to display selected Cloud Identity policies.
|
||||
```
|
||||
gam info policies <CIPolicyNameEntity>
|
||||
[nowarnings]
|
||||
[formatjson]
|
||||
```
|
||||
|
||||
Removed option `name <CIPolicyName>` from `gam print|show policies`; use `info policies`.
|
||||
|
||||
### 7.00.29
|
||||
|
||||
Added option `name <CIPolicyName>` to `gam print|show policies` that displays
|
||||
information about a specific policy.
|
||||
|
||||
### 7.00.28
|
||||
|
||||
Fixed issue that caused `gam print/show policies` to fail on some group policies.
|
||||
|
||||
### 7.00.27
|
||||
|
||||
Updated `gam <UserTypeEntity> collect orphans` and all commands that print file paths to recognize
|
||||
that a file owned by a user that has no parents is not an orphan if `sharedWithMeTime` is set.
|
||||
This occurs when user A creates a file in a shared folder owned by user B and user B then removes
|
||||
user A's access to the folder.
|
||||
|
||||
Added commands to display Cloud Identity policies.
|
||||
```
|
||||
gam print policies [todrive <ToDriveAttribute>*]
|
||||
(filter <String>) [nowarnings]
|
||||
[formatjson [quotechar <Character>]]
|
||||
gam show policies (filter <String>) [nowarnings]
|
||||
[formatjson]
|
||||
```
|
||||
### 7.00.26
|
||||
|
||||
Updated `drive_dir` in `gam.cfg` to allow the value `.` that causes `redirect csv|stdout|stderr <FileName>`
|
||||
to write `<FileName>` in the current directory without having to prefix `<FileName>` with `./`.
|
||||
|
||||
Upgraded to OpenSSL 3.4.0.
|
||||
|
||||
### 7.00.25
|
||||
|
||||
Updated authentication process for `gam print|show projects`.
|
||||
|
||||
### 7.00.24
|
||||
|
||||
Updated `gam print|show projects ... showiampolicies 0|1|3` to use non-service account authentication.
|
||||
|
||||
### 7.00.23
|
||||
|
||||
Updated `gam <UserTypeEntity> create|delete chatmember` to accept external (non-domain) email addresses.
|
||||
|
||||
### 7.00.22
|
||||
|
||||
Fixed bug in `gam create vaultmatter ... showdetails` that caused a trap.
|
||||
|
||||
### 7.00.21
|
||||
|
||||
Added `csv_output_header_order` variable to `gam.cfg` that is a list of `<Strings>`
|
||||
that are used to specify the order of column headers in the CSV file written by a gam print command.
|
||||
Any headers in the file but not in the list will appear after the headers in the list.
|
||||
|
||||
This might be used when the CSV file data is to be processed by another program
|
||||
that requires that the headers be in a particular order.
|
||||
|
||||
### 7.00.20
|
||||
|
||||
Fix Windows MSI installer issues on version upgrade. If you are having issues upgrading from a version older than 7.00.20 to this version or newer you may need to do a one time uninstall of GAM7 and then reinstall the new version. No configuration files will be lost during the uninstall / reinstall.
|
||||
|
||||
### 7.00.19
|
||||
|
||||
Updated `gam update shareddrive <SharedDriveEntity> ou <OrgUnitItem>` to handle the following error
|
||||
that occurs when an invalid `<SharedDriveEntity>` is specified.
|
||||
```
|
||||
ERROR: 400: invalidArgument - Invalid org membership name 0AJ3b2FTPakToUk9PVAxx.~
|
||||
```
|
||||
|
||||
Updated `gam print browsers` to properly format the time field `deviceIdentifiersHistory.records.0.firstRecordTime`.
|
||||
|
||||
### 7.00.18
|
||||
|
||||
Updated `gam create project` to use a default project name of `gam-project-a1b2c` (`a1b2c` is a random string of 5 characters)
|
||||
instead of `gam-project-abc-123-xyz` to avoid the following warning:
|
||||
```
|
||||
Project: gam-project-abc-123-xyz, Service Account: gam-project-abc-123-xyz@gam-project-abc-123-xyz.iam.gserviceaccount.com, Extracting public certificate
|
||||
init.py:12382: UserWarning: Attribute's length must be >= 1 and <= 64, but it was 70
|
||||
init.py:12383: UserWarning: Attribute's length must be >= 1 and <= 64, but it was 70
|
||||
Project: gam-project-abc-123-xyz, Service Account: gam-project-abc-123-xyz@gam-project-abc-123-xyz.iam.gserviceaccount.com, Done generating private key and public certificate
|
||||
```
|
||||
|
||||
### 7.00.17
|
||||
|
||||
Update all user calendar commands to disable falling back to client access if service account
|
||||
authorization has never been performed.
|
||||
|
||||
### 7.00.16
|
||||
|
||||
Updated `gam <UserTypeEntity> claim|transfer ownership` to show `Got N Drive Files/Folders that matched query` messages
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Google Data Transfers
|
||||
# Google Data Transfers
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Display transfer apps](#display-transfer-apps)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Google Network Addresses
|
||||
# Google Network Addresses
|
||||
|
||||
All GAM calls are made on port 443 (HTTPS) to the following addresses:
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# HTTPS Proxy
|
||||
# HTTPS Proxy
|
||||
|
||||
GAM should be run on a server with direct access to talk to Google servers via the Internet.
|
||||
However, if you must push GAM traffic through an HTTPS proxy this can be done by setting the HTTPS_PROXY environment variable.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Installing GAM7
|
||||
# Installing GAM7
|
||||
Use these steps if you have never used any version of GAM in your domain. They will create your GAM project
|
||||
and all necessary authentications.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Uninstalling GAM7
|
||||
# Uninstalling GAM7
|
||||
|
||||
- [Get Project Info](#get-project-info)
|
||||
- [Remove Client API access](#remove-client-api-access)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Updating GAM7
|
||||
# Updating GAM7
|
||||
Use these steps to update your version of GAM7.
|
||||
|
||||
- [Downloads-Installs](Downloads-Installs)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Installation - Upgrading from Legacy GAM
|
||||
# Installation - Upgrading from Legacy GAM
|
||||
Use these steps if you have used any version of GAM in your domain. They will update your GAM project
|
||||
and all necessary authentications.
|
||||
|
||||
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
|
||||
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||
admin@server:/Users/admin$ gam version
|
||||
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
||||
GAM 7.00.16 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM 7.00.36 - https://github.com/GAM-team/GAM - pyinstaller
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.13.0 64-bit final
|
||||
MacOS Sonoma 14.5 x86_64
|
||||
@@ -923,7 +923,7 @@ writes the credentials into the file oauth2.txt.
|
||||
C:\>del C:\GAMConfig\oauth2.txt
|
||||
C:\>gam version
|
||||
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
||||
GAM7 7.00.16 - https://github.com/GAM-team/GAM - pythonsource
|
||||
GAM7 7.00.36 - https://github.com/GAM-team/GAM - pythonsource
|
||||
GAM Team <google-apps-manager@googlegroups.com>
|
||||
Python 3.13.0 64-bit final
|
||||
Windows-10-10.0.17134 AMD64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Inbound SSO
|
||||
# Inbound SSO
|
||||
- [Admin Console](#admin-console)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Licenses
|
||||
# Licenses
|
||||
- [API documentation](#api-documentation)
|
||||
- [License Products and SKUs](#license-products-and-skus)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# List Items
|
||||
# List Items
|
||||
- [Lists of basic items](#lists-of-basic-items)
|
||||
- [List quoting rules](#list-quoting-rules)
|
||||
- [Basic Items](Basic-Items)
|
||||
@@ -13,6 +13,12 @@
|
||||
<ChatSpaceList> ::= "<ChatSpace>(,<ChatSpace>)*"
|
||||
<CIGroupAliasList> ::= "<CIGroupAlias>(,<CIGroupAlias>)*"
|
||||
<CIGroupTypeList> ::= "<CIGroupType>(,<CIGroupType>)*"
|
||||
<CIPolicyNameList> ::= "<CIPolicyName>(,<CIPolicyName>)*"
|
||||
<ClassificationLabelIDList> ::= "<ClassificationLabelID>(,<ClassificationLabelID>)*"
|
||||
<ClassificationLabelNameList> ::= "<ClassificationLabelName>(,<ClassificationLabelName>)*"
|
||||
<ClassificationLabelPermissionNameList> ::= "<ClassificationLabelPermissionName>(,<ClassificationLabelPermissionName>)*"
|
||||
<ClassificationLabelFieldIDList> ::= "<ClassificationLabelFieldID>(,<ClassificationLabelFieldID>)*"
|
||||
<ClassificationLabelSelectionIDList> ::= "<ClassificationLabelSelectionID>(,<ClassificationLabelSelectionID>)*"
|
||||
<ClassroomInvitationIDList> ::= "<ClassroomInvitationID>(,<ClassroomInvitationID>)*"
|
||||
<ContactGroupList> ::= "<ContactGroupItem>(,<ContactGroupItem>)*"
|
||||
<ContactIDList> ::= "<ContactID>(,<ContactID>)*"
|
||||
@@ -41,11 +47,6 @@
|
||||
<DriveFileRevisionIDList> ::= "<DriveFileRevisionID>(,<DriveFileRevisionID>)*"
|
||||
<DriveFolderIDList> ::= "<DriveFolderID>(,<DriveFolderID>)*"
|
||||
<DriveFolderNameList> ::= "<DriveFolderName>(,<DriveFolderName>)*"
|
||||
<DriveLabelIDList> ::= "<DriveLabelID>(,<DriveLabelID>)*"
|
||||
<DriveLabelNameList> ::= "<DriveLabelName>(,<DriveLabelName>)*"
|
||||
<DriveLabelPermissionNameList> ::= "<DriveLabelPermissionName>(,<DriveLabelPermissionName>)*"
|
||||
<DriveLabelFieldIDList> ::= "<DriveLabelFieldID>(,<DriveLabelFieldID>)*"
|
||||
<DriveLabelSelectionIDList> ::= "<DriveLabelSelectionID>(,<DriveLabelSelectionID>)*"
|
||||
<EmailAddressList> ::= "<EmailAddress>(,<EmailAddress>)*"
|
||||
<EmailItemList> ::= "<EmailItem>(,<EmailItem>)*"
|
||||
<EventIDList> ::= "<EventID>(,<EventID>)*"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# List
|
||||
# List
|
||||
|
||||
The list command is used to verify collections of objects.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Meta Commands and File Redirection
|
||||
# Meta Commands and File Redirection
|
||||
|
||||
- [GAM Configuration](gam.cfg)
|
||||
- [Todrive](Todrive)
|
||||
@@ -51,6 +51,7 @@ The only `<VariableNames>` recognized in this `<Section>` are:
|
||||
* `csv_output_header_filter`
|
||||
* `csv_output_header_drop_filter`
|
||||
* `csv_output_header_force`
|
||||
* `csv_output_header_order`
|
||||
* `csv_output_row_filter`
|
||||
* `csv_output_row_filter_mode`
|
||||
* `csv_output_row_drop_filter`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Mobile Devices
|
||||
# Mobile Devices
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](#query-documentation)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Organizational Units
|
||||
# Organizational Units
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Special quoting](#special-quoting)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Other Resources
|
||||
# Other Resources
|
||||
|
||||
The following are links to contributions of others in support of GAM7.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Permission Matches
|
||||
# Permission Matches
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Match function
|
||||
- [Definitions](#definitions)
|
||||
- [File Selection](#file-selection)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Python Regular Expressions
|
||||
# Python Regular Expressions
|
||||
- [Documentation](#documentation)
|
||||
- [Match function](#match-function)
|
||||
- [Sub function](#sub-function)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Rclone
|
||||
# Rclone
|
||||
|
||||
GAM7 has the capability to upload and download single files between your local computer and Google Drive;
|
||||
it has no capability for uploading and dowloading folders. For this you can use Rclone: https://rclone.org/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Reseller
|
||||
# Reseller
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Manage Multiple Domains](#manage-multiple-domains)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# SSL Root CA Certificates
|
||||
# SSL Root CA Certificates
|
||||
|
||||
For an overall discussion of SSL, see: https://sites.google.com/site/x509certificateusage/
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Scripts
|
||||
# Scripts
|
||||
|
||||
These scripts can be used to enhance GAM's capabilities; all are supported with Advanced GAM,
|
||||
many are supported with Legacy GAM. They require that Python 3 be installed on you computer.
|
||||
|
||||
@@ -427,6 +427,15 @@ gam info ou <OrgUnitPath> nousers
|
||||
gam show teamdrives query "orgUnitId='03ph8a2z21rexy'" fields id,name,orgunit,createdtime
|
||||
gam print teamdrives query "orgUnitId='03ph8a2z21rexy'" fields id,name,orgunit,createdtime
|
||||
```
|
||||
Alternative method; `<OrgUnitPath>` defaults to `/`.
|
||||
```
|
||||
gam show oushareddrives
|
||||
[ou|org|orgunit <OrgUnitPath>]
|
||||
[formatjson]
|
||||
gam print oushareddrives [todrive <ToDriveAttribute>*]
|
||||
[ou|org|orgunit <OrgUnitPath>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
|
||||
## Manage Shared Drive access
|
||||
These commands are used to manage the ACLs on Shared Drives themselves, not the files/folders on the Shared Drives.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Tag Replace
|
||||
# Tag Replace
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Sub function
|
||||
- [Definitions](#definitions)
|
||||
- [Introduction](#introduction)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Todrive
|
||||
# Todrive
|
||||
- [Introduction](#introduction)
|
||||
- [Definitions](#definitions)
|
||||
- [Config file options](#config-file-options)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Unmanaged Accounts
|
||||
# Unmanaged Accounts
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Collections of Users](Collections-of-Users)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Upgrade Benefits
|
||||
# Upgrade Benefits
|
||||
- [Configuration](#Configuration)
|
||||
- [Syntax Checking](#syntax-checking)
|
||||
- [API error checking](#api-error-checking)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Analytics Admin
|
||||
# Users - Analytics Admin
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Application Specific Passwords
|
||||
# Users - Application Specific Passwords
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Manage application specific passwords](#manage-application-specific-passwords)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Backup Verification Codes
|
||||
# Users - Backup Verification Codes
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Manage backup verification codes](#manage-backup-verification-codes)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Calendars - Access
|
||||
# Users - Calendars - Access
|
||||
- [Notes](#Notes)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -91,20 +91,23 @@
|
||||
|
||||
<JSONData> ::= (json [charset <Charset>] <String>) | (json file <FileName> [charset <Charset>]) |
|
||||
|
||||
<CalendarItem> ::= <EmailAddress>
|
||||
<CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
|
||||
<CalendarEntity> ::= <CalendarList> | <FileSelector> | <CSVkmdSelector> | <CSVDataSelector>
|
||||
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Items
|
||||
<DomainName> ::= <String>(.<String>)+
|
||||
<EmailAddress> ::= <String>@<DomainName>
|
||||
<EmailAddressList> ::= "<EmailAddress>(,<EmailAddress>)*"
|
||||
<EmailAddressEntity> ::=
|
||||
<EmailAddressList> | <FileSelector> | <CSVFileSelector> |
|
||||
<EmailAddressList> | <FileSelector> | <CSVFileSelector> |
|
||||
<CSVkmdSelector> | <CSVDataSelector>
|
||||
See: https://github.com/GAM-team/GAM/wiki/Collections-of-Users
|
||||
<CalendarItem> ::= <EmailAddress>
|
||||
<CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
|
||||
<CourseAlias> ::= <String>
|
||||
<CourseID> ::= <Number>|d:<CourseAlias>
|
||||
<CourseIDList> ::= "<CourseID>(,<CourseID>)*"
|
||||
<CourseState> ::= active|archived|provisioned|declined
|
||||
<CourseStateList> ::= all|"<CourseState>(,<CourseState>)*"
|
||||
<iCalUID> ::= <String>
|
||||
<ResourceID> ::= <String>
|
||||
<ResourceIDList> ::= "<ResourceID>(,<ResourceID>)*"
|
||||
<UniqueID> ::= id:<String>
|
||||
@@ -122,7 +125,7 @@
|
||||
allcalendars|
|
||||
primary|
|
||||
<EmailAddress>|
|
||||
<UniqueUD>|
|
||||
<UniqueID>|
|
||||
(courses <CourseIDList>)|
|
||||
((courses_with_teacher <UserItem>)|my_courses_as_teacher
|
||||
[coursestates <CourseStateList>])|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Chat
|
||||
# Users - Chat
|
||||
- [API documentation](#api-documentation)
|
||||
- [Introduction](#introduction)
|
||||
- [Set up a Chat Bot](#set-up-a-chat-bot)
|
||||
@@ -434,6 +434,7 @@ gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
||||
```
|
||||
|
||||
### Add members to a chat space, asadmin
|
||||
Creating memberships for users outside the administrator's Google Workspace organization isn't supported using asadmin.
|
||||
```
|
||||
gam <UserItem> create chatmember asadmin <ChatSpace>
|
||||
[type human|bot] [role member|manager]
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
!# Users - Drive - Labels
|
||||
# Users - Classification Labels
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
- [Introduction](#introduction)
|
||||
- [Display Drive Labels](#display-drive-labels)
|
||||
- [Process File Drive Labels](#process-file-drive-labels)
|
||||
- [Manage Drive Label Permissions](#manage-drive-label-permissions)
|
||||
- [Display Drive Label Permissions](#display-drive-label-permissions)
|
||||
- [Display Classification Labels](#display-classification-labels)
|
||||
- [Manage Classification Label Permissions](#manage-classification-label-permissions)
|
||||
- [Display Classification Label Permissions](#display-classification-label-permissions)
|
||||
- [Process Drive File Classification Labels](#process-drive-file-classification-labels)
|
||||
|
||||
## API documentation
|
||||
* https://support.google.com/a/answer/9292382
|
||||
* https://developers.google.com/drive/labels/guides/overview
|
||||
* https://developers.google.com/drive/labels/guides/authorize
|
||||
* https://developers.google.com/drive/labels/reference/rest/v2beta/labels
|
||||
* https://developers.google.com/drive/labels/reference/rest/v2beta/labels.permissions
|
||||
* https://developers.google.com/drive/labels/reference/rest/v2/labels
|
||||
* https://developers.google.com/drive/labels/reference/rest/v2/labels.permissions
|
||||
* https://developers.google.com/drive/api/guides/about-labels
|
||||
* https://developers.google.com/drive/api/v3/reference/files
|
||||
|
||||
@@ -24,31 +24,39 @@ To use these commands you must add the 'Drive Labels API' to your project and up
|
||||
gam update project
|
||||
gam user user@domain.com update serviceaccount
|
||||
```
|
||||
Supported editions for this feature: Business Standard and Business Plus; Enterprise; Education Standard and Education Plus; G Suite Business; Essentials.
|
||||
Supported editions for this feature:
|
||||
```
|
||||
Frontline Starter and Frontline Standard
|
||||
Business Standard and Business Plus
|
||||
Enterprise Standard and Enterprise Plus
|
||||
Education Standard and Education Plus
|
||||
Essentials, Enterprise Essentials, and Enterprise Essentials Plus
|
||||
G Suite Business
|
||||
```
|
||||
|
||||
## Definitions
|
||||
* [`<DriveFileEntity>`](Drive-File-Selection)
|
||||
* [`<UserTypeEntity>`](Collections-of-Users)
|
||||
* [`<DriveLabelNameEntity>`, `<DriveLabelPermissionNameEntity'](Collections-of-Items)
|
||||
* [`<ClassificationLabelNameEntity>`, `<ClassificationLabelPermissionNameEntity`](Collections-of-Items)
|
||||
* [`<UserTypeEntity>`](Collections-of-Items)
|
||||
|
||||
```
|
||||
<DriveLabelID> ::= <String>
|
||||
<DriveLabelIDList> ::= "<DriveLabelID>(,<DriveLabelID)*"
|
||||
<ClassificationLabelID> ::= <String>
|
||||
<ClassificationLabelIDList> ::= "<ClassificationLabelID>(,<ClassificationLabelID)*"
|
||||
|
||||
<DriveLabelName> ::= labels/<DriveLabelID>[@latest|@published|@<Number>]
|
||||
<DriveLabelNameList> ::= "<DriveLabelName>(,<DriveLabelName)*"
|
||||
<DriveLabelNameEntity> ::=
|
||||
<DriveLabelNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
<ClassificationLabelName> ::= labels/<ClassificationLabelID>[@latest|@published|@<Number>]
|
||||
<ClassificationLabelNameList> ::= "<ClassificationLabelName>(,<ClassificationLabelName)*"
|
||||
<ClassificationLabelNameEntity> ::=
|
||||
<ClassificationLabelNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
|
||||
<DriveLabelPermissionName> ::= labels/<DriveLabelID>[@latest|@published|@<Number>]/permissions/(audiences|groups|people)/<String>
|
||||
<DriveLabelPermissionNameList> ::= "<DriveLabelPermissionName>(,<DriveLabelPermissionName>)*"
|
||||
<DriveLabelPermissionNameEntity> ::=
|
||||
<DriveLabelPermissionNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
<ClassificationLabelPermissionName> ::= labels/<ClassificationLabelID>[@latest|@published|@<Number>]/permissions/(audiences|groups|people)/<String>
|
||||
<ClassificationLabelPermissionNameList> ::= "<ClassificationLabelPermissionName>(,<ClassificationLabelPermissionName>)*"
|
||||
<ClassificationLabelPermissionNameEntity> ::=
|
||||
<ClassificationLabelPermissionNameList> | <FileSelector> | <CSVFileSelector> | <CSVDataSelector>
|
||||
|
||||
<DriveLabelFieldID> ::= <String>
|
||||
<DriveLabelSelectionID> ::= <String>
|
||||
<DriveLabelSelectionIDList> ::= "<DriveLabelSelectionID>(,<DriveLabelSelectionID)*"
|
||||
<ClassificationLabelFieldID> ::= <String>
|
||||
<ClassificationLabelSelectionID> ::= <String>
|
||||
<ClassificationLabelSelectionIDList> ::= "<ClassificationLabelSelectionID>(,<ClassificationLabelSelectionID)*"
|
||||
|
||||
<BCP47LanguageCode> ::=
|
||||
ar-sa| # Arabic Saudi Arabia
|
||||
@@ -99,10 +107,10 @@ Three forms of the commands are available:
|
||||
* `gam <UserTypeEntity> action ... adminaccess` - The user named in `<UserTypeEntty>` is used, adminaccess indicates that labels of type `SHARED` and `ADMIN`can be processed
|
||||
* `gam <UserTypeEntity> action ...` - The user named in `<UserTypeEntty>` is used, access is limited, onlylabels of type `SHARED` can be processed
|
||||
|
||||
## Display Drive Labels
|
||||
## Display Classification Labels
|
||||
|
||||
```
|
||||
gam [<UserTypeEntity>] info drivelabels <DriveLabelNameEntity>
|
||||
gam [<UserTypeEntity>] info classificationlabels <ClassificationLabelNameEntity>
|
||||
[[basic|full] [languagecode <BCP47LanguageCode>]
|
||||
[formatjson] [adminaccess|asadmin]
|
||||
```
|
||||
@@ -115,7 +123,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam [<UserTypeEntity>] show drivelabels
|
||||
gam [<UserTypeEntity>] show classificationlabels
|
||||
[basic|full] [languagecode <BCP47LanguageCode>]
|
||||
[publishedonly [<Boolean>]] [minimumrole applier|editor|organizer|reader]
|
||||
[formatjson] [adminaccess|asadmin]
|
||||
@@ -130,7 +138,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam [<UserTypeEntity>] print drivelabels [todrive <ToDriveAttribute>*]
|
||||
gam [<UserTypeEntity>] print classificationlabels [todrive <ToDriveAttribute>*]
|
||||
[basic|full] [languagecode <BCP47LanguageCode>]
|
||||
[publishedonly [<Boolean>]] [minimumrole applier|editor|organizer|reader]
|
||||
[formatjson [quotechar <Character>]] [adminaccess|asadmin]
|
||||
@@ -150,25 +158,10 @@ When using the `formatjson` option, double quotes are used extensively in the da
|
||||
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
||||
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
||||
|
||||
## Process File Drive Labels
|
||||
`<DriveLabelID>`, `<DriveLabelFieldID>` and `<DriveLabelSelectionID>` values are obtained from the commands above.
|
||||
## Manage Classification Label Permissions
|
||||
Create a permission for a Classification Label by specifying the label name and the principal.
|
||||
```
|
||||
gam <UserTypeEntity> process filedrivelabels <DriveFileEntity>
|
||||
(addlabel <DriveLabelIDList>)*
|
||||
(deletelabel <DriveLabelIDList>)*
|
||||
(addlabelfield <DriveLabelID> <DriveLabelFieldID>
|
||||
(text <String>)|selection <DriveLabelSelectionIDList>)|
|
||||
(integer <Number>)|(date <Date>)|(user <EmailAddressList>))*
|
||||
(deletelabelfield <DriveLabelID> <DriveLabelFieldID>)*
|
||||
[nodetails]
|
||||
```
|
||||
|
||||
By default, details of the process labels are displayed, use `nodetails` to suppress this display.
|
||||
|
||||
## Manage Drive Label Permissions
|
||||
Create a permission for a Drive Label by specifying the label name and the principal.
|
||||
```
|
||||
gam [<UserTypeEntity>] create drivelabelpermission <DriveLabelNameEntity>
|
||||
gam [<UserTypeEntity>] create classificationlabelpermission <ClassificationLabelNameEntity>
|
||||
(user <UserItem>) | (group <GroupItem) | (audience <String>)
|
||||
role applier|editor|organizer|reader
|
||||
[nodetails|formatjson] [adminaccess|asadmin]
|
||||
@@ -178,22 +171,22 @@ By default, when a permission is created, GAM outputs details of the permission
|
||||
* `nodetails` - Suppress the details output.
|
||||
* `formatjson` - Output the details in JSON format.
|
||||
|
||||
Delete a Drive Label permission by specifying the label name and the principal.
|
||||
Delete a Classification Label permission by specifying the label name and the principal.
|
||||
```
|
||||
gam [<UserTypeEntity>] delete drivelabelpermission <DriveLabelNameEntity>
|
||||
gam [<UserTypeEntity>] delete classificationlabelpermission <ClassificationLabelNameEntity>
|
||||
(user <UserItem>) | (group <GroupItem) | (audience <String>)
|
||||
[adminaccess|asadmin]
|
||||
```
|
||||
|
||||
Delete a Drive Label permission by specifying the label permission name.
|
||||
Delete a Classification Label permission by specifying the label permission name.
|
||||
```
|
||||
gam [<UserTypeEntity>] remove drivelabelpermission <DriveLabelPermissionNameEntity>
|
||||
gam [<UserTypeEntity>] remove classificationlabelpermission <ClassificationLabelPermissionNameEntity>
|
||||
[adminaccess|asadmin]
|
||||
```
|
||||
## Display Drive Label Permissions
|
||||
Display permissions for a collection of Drive Label permission names.
|
||||
## Display Classification Label Permissions
|
||||
Display permissions for a collection of Classification Label permission names.
|
||||
```
|
||||
gam [<UserTypeEntity>] show drivelabelpermissions <DriveLabelNameEntity>
|
||||
gam [<UserTypeEntity>] show classificationlabelpermissions <ClassificationLabelNameEntity>
|
||||
[formatjson] [adminaccess|asadmin]
|
||||
```
|
||||
|
||||
@@ -201,7 +194,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam [<UserTypeEntity>] print drivelabelpermissions <DriveLabelNameEntity> [todrive <ToDriveAttribute>*]
|
||||
gam [<UserTypeEntity>] print classificationlabelpermissions <ClassificationLabelNameEntity> [todrive <ToDriveAttribute>*]
|
||||
[formatjson [quotechar <Character>]] [adminaccess|asadmin]
|
||||
```
|
||||
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
||||
@@ -213,3 +206,17 @@ When using the `formatjson` option, double quotes are used extensively in the da
|
||||
The `quotechar <Character>` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
|
||||
`quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used.
|
||||
|
||||
## Process Drive File Classification Labels
|
||||
`<ClassificationLabelID>`, `<ClassificationLabelFieldID>` and `<ClassificationLabelSelectionID>` values are obtained from the commands above.
|
||||
```
|
||||
gam <UserTypeEntity> process filedrivelabels <DriveFileEntity>
|
||||
(addlabel <ClassificationLabelIDList>)*
|
||||
(deletelabel <ClassificationLabelIDList>)*
|
||||
(addlabelfield <ClassificationLabelID> <ClassificationLabelFieldID>
|
||||
(text <String>)|selection <ClassificationLabelSelectionIDList>)|
|
||||
(integer <Number>)|(date <Date>)|(user <EmailAddressList>))*
|
||||
(deletelabelfield <ClassificationLabelID> <ClassificationLabelFieldID>)*
|
||||
[nodetails]
|
||||
```
|
||||
|
||||
By default, details of the process labels are displayed, use `nodetails` to suppress this display.
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Classroom - Profile
|
||||
# Users - Classroom - Profile
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Display Classroom profile](#display-classroom-profile)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# User Contacts
|
||||
# User Contacts
|
||||
- [Notes](#notes)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](#query-documentation)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Deprovision
|
||||
# Users - Deprovision
|
||||
- [Introduction](#introduction)
|
||||
- [Definitions](#definitions)
|
||||
- [Deprovision a user](#deprovision-a-user)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Activity/Settings
|
||||
# Users - Drive - Activity/Settings
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Cleanup
|
||||
# Users - Drive - Cleanup
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Display empty folders](#display-empty-folders)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Comments
|
||||
# Users - Drive - Comments
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -416,7 +416,7 @@ gam <UserTypeEntity> show fileinfo <DriveFileEntity>
|
||||
[allfields|<DriveFieldName>*|(fields <DriveFieldNameList>)]
|
||||
(orderby <DriveFileOrderByFieldName> [ascending|descending])*
|
||||
[showdrivename] [showshareddrivepermissions]
|
||||
[(showlabels details|ids)|(includelabels <DriveLabelIDList>)]
|
||||
[(showlabels details|ids)|(includelabels <ClassificationLabelIDList>)]
|
||||
[showparentsidsaslist] [followshortcuts [<Boolean>]]
|
||||
[stripcrsfromname]
|
||||
[formatjson]
|
||||
@@ -426,7 +426,7 @@ gam <UserTypeEntity> info drivefile <DriveFileEntity>
|
||||
[allfields|<DriveFieldName>*|(fields <DriveFieldNameList>)]
|
||||
(orderby <DriveFileOrderByFieldName> [ascending|descending])*
|
||||
[showdrivename] [showshareddrivepermissions]
|
||||
[(showlabels details|ids)|(includelabels <DriveLabelIDList>)]
|
||||
[(showlabels details|ids)|(includelabels <ClassificationLabelIDList>)]
|
||||
[showparentsidsaslist] [followshortcuts [<Boolean>]]
|
||||
[stripcrsfromname]
|
||||
[formatjson]
|
||||
@@ -471,18 +471,18 @@ an API call per file is required to get the information.
|
||||
* `showlabels details`
|
||||
```
|
||||
labels:
|
||||
id: <DriveLabelID>
|
||||
id: <ClassificationLabelID>
|
||||
revisionId: <Number>
|
||||
id: <DriveLabelID>
|
||||
id: <ClassificationLabelID>
|
||||
revisionId: <Number>
|
||||
```
|
||||
* `showlabels ids`
|
||||
```
|
||||
labelsIds: <DriveLabelID> <DriveLabelID> ...
|
||||
labelsIds: <ClassificationLabelID> <ClassificationLabelID> ...
|
||||
```
|
||||
|
||||
Starting in version 6.27.02, you can get Drive label information without an extra API call
|
||||
if you know the `<DriveLabelID>`s. Add `labelinfo` to your `fields` list and use `includelabels <DriveLabelIDList>`
|
||||
if you know the `<ClassificationLabelID>`s. Add `labelinfo` to your `fields` list and use `includelabels <ClassificationLabelIDList>`
|
||||
to specify the Drive labels.
|
||||
```
|
||||
gam user user@domain.com show fileinfo <DriveFileEntity> fields id,name,mimetype,labelinfo includelabels "mRoha85IbwCRl490E00xGLvBsSbkwIiuZ6PRNNEbbFcb"
|
||||
@@ -811,7 +811,7 @@ User: testuser@domain.com, Drive Files/Folders: 261, Size: 13822521
|
||||
```
|
||||
Print file counts for a user.
|
||||
```
|
||||
$ gam user testuser@domain,com print filecounts showsize
|
||||
$ gam user testuser@domain.com print filecounts showsize
|
||||
Getting all Drive Files/Folders that match query ('me' in owners) for testuser@domain.com
|
||||
Got 261 Drive Files/Folders that matched query ('me' in owners) for testuser@domain.com...
|
||||
User,Total,Size,application/octet-stream,application/pdf,application/vnd.google-apps.document,application/vnd.google-apps.drawing,application/vnd.google-apps.drive-sdk.423565144751,application/vnd.google-apps.folder,application/vnd.google-apps.form,application/vnd.google-apps.jam,application/vnd.google-apps.presentation,application/vnd.google-apps.shortcut,application/vnd.google-apps.site,application/vnd.google-apps.spreadsheet,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template,application/x-gzip,application/zip,image/jpeg,image/vnd.adobe.photoshop,text/csv,text/plain,text/rtf,text/x-sh
|
||||
@@ -825,6 +825,14 @@ Got 261 Drive Files/Folders that matched query ('me' in owners) for testuser@dom
|
||||
User,Total,Size,application/octet-stream,application/octet-stream-size,application/pdf,application/pdf-size,application/vnd.google-apps.document,application/vnd.google-apps.document-size,application/vnd.google-apps.drawing,application/vnd.google-apps.drawing-size,application/vnd.google-apps.drive-sdk.423565144751,application/vnd.google-apps.drive-sdk.423565144751-size,application/vnd.google-apps.folder,application/vnd.google-apps.folder-size,application/vnd.google-apps.form,application/vnd.google-apps.form-size,application/vnd.google-apps.jam,application/vnd.google-apps.jam-size,application/vnd.google-apps.presentation,application/vnd.google-apps.presentation-size,application/vnd.google-apps.shortcut,application/vnd.google-apps.shortcut-size,application/vnd.google-apps.site,application/vnd.google-apps.site-size,application/vnd.google-apps.spreadsheet,application/vnd.google-apps.spreadsheet-size,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet-size,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.document-size,application/vnd.openxmlformats-officedocument.wordprocessingml.template,application/vnd.openxmlformats-officedocument.wordprocessingml.template-size,application/x-gzip,application/x-gzip-size,application/zip,application/zip-size,image/jpeg,image/jpeg-size,image/vnd.adobe.photoshop,image/vnd.adobe.photoshop-size,text/csv,text/csv-size,text/plain,text/plain-size,text/rtf,text/rtf-size,text/x-sh,text/x-sh-size
|
||||
testuser@domain.com,261,13822521,8,17,1,9879,98,52858,2,2048,1,0,68,0,3,0,1,1024,1,0,14,0,1,0,24,11264,1,8157,3,34407,1,25906,4,2768,2,765,8,16498,1,13613198,2,397,13,41461,3,1738,1,136
|
||||
```
|
||||
Print file counts for a Shared Drive
|
||||
```
|
||||
$ gam user testuser@domain.com print filecounts select <SharedDriveID> showsize
|
||||
Getting all Drive Files/Folders for testuser@domain.com
|
||||
Got 261 Drive Files/Folders for testuser@domain.com...
|
||||
User,id,name,Total,Size,Item cap,application/octet-stream,application/pdf,application/vnd.google-apps.document,application/vnd.google-apps.drawing,application/vnd.google-apps.drive-sdk.423565144751,application/vnd.google-apps.folder,application/vnd.google-apps.form,application/vnd.google-apps.jam,application/vnd.google-apps.presentation,application/vnd.google-apps.shortcut,application/vnd.google-apps.site,application/vnd.google-apps.spreadsheet,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.wordprocessingml.template,application/x-gzip,application/zip,image/jpeg,image/vnd.adobe.photoshop,text/csv,text/plain,text/rtf,text/x-sh
|
||||
testuser@domain.com,0AMzwfhFBpwLHUkWXYZ,Shared Drive Name,261,13822521,3.45%,8,1,98,2,1,68,3,1,1,14,1,24,1,3,1,4,2,8,1,2,13,3,1
|
||||
```
|
||||
Get file count summaries by OU; top level selector is ou, sub level selectors are ou_and_children
|
||||
```
|
||||
gam redirect csv ./TopLevelOUs.csv print ous showparent toplevelonly parentselector ou childselector ou_and_children fields orgunitpath
|
||||
@@ -1071,7 +1079,7 @@ gam <UserTypeEntity> print|show filelist [todrive <ToDriveAttribute>*]
|
||||
[filepath|fullpath [folderpathonly [<Boolean>]] [pathdelimiter <Character>] [addpathstojson] [showdepth]] [buildtree]
|
||||
[allfields|<DriveFieldName>*|(fields <DriveFieldNameList>)]
|
||||
[showdrivename] [showshareddrivepermissions]
|
||||
[(showlabels details|ids)|(includelabels <DriveLabelIDList>)]
|
||||
[(showlabels details|ids)|(includelabels <ClassificationLabelIDList>)]
|
||||
[showparentsidsaslist] [showpermissionslast]
|
||||
(orderby <DriveFileOrderByFieldName> [ascending|descending])* [delimiter <Character>]
|
||||
[stripcrsfromname]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Sub function
|
||||
- [Folders with Limited Access Beta](#folders-with-limited-access-beta)
|
||||
- [Permission Matches](Permission-Matches)
|
||||
- [Definitions](#definitions)
|
||||
- [Create files](#create-files)
|
||||
@@ -17,7 +18,7 @@
|
||||
- [Purge files](#purge-files)
|
||||
- [Copy/Move Files](Users-Drive-Copy-Move)
|
||||
- [Shortcuts](Users-Drive-Shortcuts)
|
||||
- [Drive Labels](Users-Drive-Labels)
|
||||
- [Classification Labels](Users-Classification-Labels)
|
||||
- [Download Google Documents as JSON](#download-google-documents-as-json)
|
||||
- [Upload changes to Google Documents](#upload-changes-to-google-documents)
|
||||
|
||||
@@ -31,6 +32,15 @@
|
||||
* https://support.google.com/a/users/answer/7338880
|
||||
* https://developers.google.com/docs/api/reference/rest
|
||||
|
||||
## Folders with Limited Access Beta
|
||||
|
||||
If you are enrolled in the Beta and want to access the `inheritedpermissionsdisabled` field,
|
||||
you must turn on Drive API v3 beta.
|
||||
|
||||
```
|
||||
gam config drive_v3_beta true user user@domain.com update drivefile <FolderID> inheritedpermissionsdisabled true
|
||||
```
|
||||
|
||||
## Definitions
|
||||
* [`<DriveFileEntity>`](Drive-File-Selection)
|
||||
* [`<UserTypeEntity>`](Collections-of-Users)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Orphans
|
||||
# Users - Drive - Orphans
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Collect orphaned files](#collect-orphaned-files)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Ownership
|
||||
# Users - Drive - Ownership
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Query
|
||||
# Users - Drive - Query
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](#query-documentation)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Revisions
|
||||
# Users - Drive - Revisions
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive Shortcuts
|
||||
# Users - Drive Shortcuts
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Python Regular Expressions](Python-Regular-Expressions) Sub function
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Drive - Transfer
|
||||
# Users - Drive - Transfer
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](Users-Drive-Query)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Forms
|
||||
# Users - Forms
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Create a Form](#create-a-form)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Gmail - Client Side Encryption
|
||||
# Users - Gmail - Client Side Encryption
|
||||
- [API documentation](#api-documentation)
|
||||
- [Notes](#notes)
|
||||
- [Definitions](#definitions)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Gmail - Profile
|
||||
# Users - Gmail - Profile
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Display Gmail profile](#display-gmail-profile)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Gmail - S/MIME
|
||||
# Users - Gmail - S/MIME
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Create Gmail S/MIME configuration](#create-gmail-smime-configuration)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Gmail - Settings
|
||||
# Users - Gmail - Settings
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Manage IMAP/POP](#manage-imappop)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Meet
|
||||
# Users - Meet
|
||||
- [API documentation](#api-documentation)
|
||||
- [Query documentation](#query-documentation)
|
||||
- [Introduction](#introduction)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Photo
|
||||
# Users - Photo
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Upload a user's photo from a default file](#upload-a-users-photo-from-a-default-file)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!# Users - Profile Sharing
|
||||
# Users - Profile Sharing
|
||||
- [Definitions](#definitions)
|
||||
- [Manage user's profile sharing](#manage-users-profile-sharing)
|
||||
- [Display user's profile sharing](#display-users-profile-sharing)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user