mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-22 07:01:37 +00:00
Compare commits
41 Commits
20240530.0
...
20240622.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f6f6a191d | ||
|
|
9388b8497c | ||
|
|
28ca319632 | ||
|
|
d5ad1cb2fb | ||
|
|
c12ee6438c | ||
|
|
e18eb0931e | ||
|
|
2c0295d674 | ||
|
|
ced1e84567 | ||
|
|
5adc996f3e | ||
|
|
a3b3353e71 | ||
|
|
f084096658 | ||
|
|
d9188da059 | ||
|
|
12c150f64d | ||
|
|
6d25ada6a4 | ||
|
|
c0cd121a91 | ||
|
|
e8e508eb18 | ||
|
|
deda162375 | ||
|
|
b69601c5c2 | ||
|
|
87f9aa37b5 | ||
|
|
b74e2e1fd2 | ||
|
|
e40cbc32a6 | ||
|
|
636a49b1a6 | ||
|
|
7239f252da | ||
|
|
5d85ea63b0 | ||
|
|
cf50fcc78f | ||
|
|
eead1bd8b9 | ||
|
|
206a09aad3 | ||
|
|
eb365a3eb5 | ||
|
|
1690daccb5 | ||
|
|
233eeb0744 | ||
|
|
3f17525169 | ||
|
|
100df45d46 | ||
|
|
cb00e6de9f | ||
|
|
82585dc28a | ||
|
|
cb16747125 | ||
|
|
8632c98556 | ||
|
|
6c3a805a4d | ||
|
|
f6b949e4c1 | ||
|
|
1f9624ad5c | ||
|
|
9c9ddff973 | ||
|
|
f1636c7768 |
37
.github/workflows/build.yml
vendored
37
.github/workflows/build.yml
vendored
@@ -17,6 +17,7 @@ defaults:
|
||||
working-directory: src
|
||||
|
||||
env:
|
||||
SCRATCH_COUNTER: 1
|
||||
OPENSSL_CONFIG_OPTS: no-fips --api=3.0.0
|
||||
OPENSSL_INSTALL_PATH: ${{ github.workspace }}/bin/ssl
|
||||
OPENSSL_SOURCE_PATH: ${{ github.workspace }}/src/openssl
|
||||
@@ -114,7 +115,7 @@ jobs:
|
||||
with:
|
||||
path: |
|
||||
cache.tar.xz
|
||||
key: gam-${{ matrix.jid }}-20240526
|
||||
key: gam-${{ matrix.jid }}-20240620
|
||||
|
||||
- name: Untar Cache archive
|
||||
if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit == 'true'
|
||||
@@ -195,9 +196,10 @@ jobs:
|
||||
bash ./rust.sh -y
|
||||
source $HOME/.cargo/env
|
||||
# Install needed packages
|
||||
# brew update
|
||||
# brew install gpg
|
||||
brew install swig
|
||||
#brew update
|
||||
#brew install gpg
|
||||
#brew install swig
|
||||
#brew install ncurses
|
||||
|
||||
- name: Windows Configure VCode
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
@@ -224,7 +226,9 @@ jobs:
|
||||
MAKE=make
|
||||
MAKEOPT="-j$(sysctl -n hw.logicalcpu)"
|
||||
PERL=perl
|
||||
echo "MACOSX_DEPLOYMENT_TARGET=10.15" >> $GITHUB_ENV
|
||||
MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}')
|
||||
echo "MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}" >> $GITHUB_ENV
|
||||
echo "We are running on and targetting MacOS ${MACOSX_DEPLOYMENT_TARGET}"
|
||||
echo "PYTHON=${PYTHON_INSTALL_PATH}/bin/python3" >> $GITHUB_ENV
|
||||
elif [[ "${RUNNER_OS}" == "Linux" ]]; then
|
||||
MAKE=make
|
||||
@@ -322,15 +326,27 @@ jobs:
|
||||
-output "${GITHUB_WORKSPACE}/bin/ssl/bin/openssl"
|
||||
rm -rf ${GITHUB_WORKSPACE}/bin/ssl-darwin64-x86_64
|
||||
rm -rf ${GITHUB_WORKSPACE}/bin/ssl-darwin64-arm64
|
||||
echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
|
||||
echo "CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1" >> $GITHUB_ENV
|
||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include -arch arm64 -arch x86_64 ${CFLAGS}" >> $GITHUB_ENV
|
||||
echo "ARCHFLAGS=-arch x86_64 -arch arm64" >> $GITHUB_ENV
|
||||
else
|
||||
cd "${GITHUB_WORKSPACE}/src/openssl-${openssl_archs}"
|
||||
# install_sw saves us ages processing man pages :-)
|
||||
$MAKE install_sw
|
||||
fi
|
||||
echo "LDFLAGS=-L${OPENSSL_INSTALL_PATH}/lib" >> $GITHUB_ENV
|
||||
echo "CRYPTOGRAPHY_SUPPRESS_LINK_FLAGS=1" >> $GITHUB_ENV
|
||||
case $arch in
|
||||
universal2)
|
||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include -arch arm64 -arch x86_64 ${CFLAGS}" >> $GITHUB_ENV
|
||||
echo "ARCHFLAGS=-arch x86_64 -arch arm64" >> $GITHUB_ENV
|
||||
;;
|
||||
x86_64)
|
||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
|
||||
echo "ARCHFLAGS=-arch x86_64" >> $GITHUB_ENV
|
||||
;;
|
||||
aarch64)
|
||||
echo "CFLAGS=-I${OPENSSL_INSTALL_PATH}/include ${CFLAGS}" >> $GITHUB_ENV
|
||||
echo "ARCHFLAGS=-arch arm64" >> $GITHUB_ENV
|
||||
;;
|
||||
esac
|
||||
|
||||
- name: Run OpenSSL
|
||||
if: matrix.goal == 'build'
|
||||
@@ -370,7 +386,8 @@ jobs:
|
||||
--with-ensurepip=upgrade \
|
||||
--enable-optimizations \
|
||||
--with-lto \
|
||||
"${extra_args[@]}"
|
||||
"${extra_args[@]}" || : # exit 0
|
||||
cat config.log
|
||||
|
||||
- name: Windows Get External Python deps
|
||||
if: matrix.goal == 'build' && runner.os == 'Windows' && steps.cache-python-ssl.outputs.cache-hit != 'true'
|
||||
|
||||
@@ -837,7 +837,7 @@ gam update sakey
|
||||
(algorithm KEY_ALG_RSA_1024|KEY_ALG_RSA_2048)|
|
||||
(localkeysize 1024|2048|4096 [validityhours <Number>])|
|
||||
(yubikey yubikey_pin yubikey_slot AUTHENTICATION|SIGNATURE yubikey_serialnumber <Number>)
|
||||
gam rotate sakey replace_existing
|
||||
gam rotate sakey replace_current
|
||||
(algorithm KEY_ALG_RSA_1024|KEY_ALG_RSA_2048)|
|
||||
(localkeysize 1024|2048|4096 [validityhours <Number>])|
|
||||
(yubikey yubikey_pin yubikey_slot AUTHENTICATION|SIGNATURE yubikey_serialnumber <Number>)
|
||||
|
||||
@@ -178,6 +178,7 @@ Client access works when accessing Resource calendars.
|
||||
<EventType> ::=
|
||||
default|
|
||||
focustime|
|
||||
fromgmail|
|
||||
outofoffice|
|
||||
workinglocation
|
||||
<EventTypeList> ::= "<EventType>(,<EventType>)*"
|
||||
|
||||
@@ -47,6 +47,64 @@ This Wiki page was built directly from Jay Lee's Wiki page; my sincere thanks fo
|
||||
<ChatMessageID> ::= client-<String>
|
||||
<String> must contain only lowercase letters, numbers, and hyphens up to 56 characters in length.
|
||||
```
|
||||
```
|
||||
<ChatSpaceFieldName> ::=
|
||||
accesssettings|
|
||||
admininstalled|
|
||||
createtime|
|
||||
displayname|
|
||||
externaluserallowed|
|
||||
importmode|
|
||||
lastactivetime|
|
||||
membershipcount|
|
||||
name|
|
||||
singleuserbotdm|
|
||||
spacedetails|
|
||||
spacehistorystate|
|
||||
spacethreadingstate|threaded|
|
||||
spacetype|type|
|
||||
spaceuri
|
||||
<ChatSpaceFieldNameList> ::= "<ChatSpaceFieldName>(,<ChatSpaceFieldName>)*"
|
||||
|
||||
<ChatMemberFieldName> ::=
|
||||
createtime|
|
||||
deletetime|
|
||||
groupmember|
|
||||
member|
|
||||
name|
|
||||
role|
|
||||
state|
|
||||
<ChatMemberFieldNameList> ::= "<ChatMemberFieldName>(,<ChatMemberFieldName>)*"
|
||||
|
||||
<ChatMessageFieldName> ::=
|
||||
accessorywidgets|
|
||||
actionresponse|
|
||||
annotations|
|
||||
argumenttext|
|
||||
attachedgifs|
|
||||
attachment|
|
||||
cards|
|
||||
cardsv2|
|
||||
clientassignedmessageid|
|
||||
createtime|
|
||||
deletetime|
|
||||
deletionmetadata|
|
||||
emojireactionsummaries|
|
||||
fallbacktext|
|
||||
formattedtext|
|
||||
lastupdatetime|
|
||||
matchedurl|
|
||||
name|
|
||||
privatemessageviewer|
|
||||
quotedmessagemetadata|
|
||||
sender|
|
||||
slashcommand|
|
||||
space|
|
||||
text|
|
||||
thread|
|
||||
threadreply
|
||||
<ChatMessageFieldNameList> ::= "<ChatMessageFieldName>(,<ChatMessageFieldName>)*"
|
||||
```
|
||||
|
||||
## Set up a Chat Bot
|
||||
Since GAM 6.04.00, GAM is capable of acting as a Chat Bot and sending messages to Chat Rooms or direct messages to users. You first need to configure your Chat Bot.
|
||||
@@ -69,6 +127,7 @@ At first you'll have no spaces listed. Try [finding your bot and chatting it](ht
|
||||
### Display information about a specific chat space
|
||||
```
|
||||
gam info chatspace space <ChatSpace>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -77,6 +136,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
### Display information about all chat spaces
|
||||
```
|
||||
gam show chatspaces
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -84,11 +144,12 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
|
||||
```
|
||||
gam print chatspaces [todrive <ToDriveAttribute>*]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
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.
|
||||
@@ -101,6 +162,7 @@ The `quotechar <Character>` option allows you to choose an alternate quote chara
|
||||
### Display information about a specific chat member
|
||||
```
|
||||
gam info chatmember member <ChatMember>
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -110,6 +172,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
```
|
||||
gam show chatmembers space <ChatSpace>
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -118,6 +181,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
```
|
||||
gam print chatmembers [todrive <ToDriveAttribute>*] space <ChatSpace>
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
|
||||
@@ -238,6 +302,7 @@ Display the given Chat message.
|
||||
|
||||
```
|
||||
gam info chatmessage name <ChatMessage>
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
# Chrome Installed Apps Counts
|
||||
|
||||
- [Chrome Policies](#chrome-policies)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Quoting rules](#quoting-rules)
|
||||
- [Display Chrome installed app details](#display-chrome-installed-app-details)
|
||||
- [Display Chrome installed apps counts](#display-chrome-installed-apps-counts)
|
||||
- [Display Chrome devices with a specific installed application](#display-chrome-devices-with-a-specific-installed-application)
|
||||
- [API documentation](#api-documentation)
|
||||
- [Definitions](#definitions)
|
||||
- [Quoting rules](#quoting-rules)
|
||||
- [Display Chrome installed app details](#display-chrome-installed-app-details)
|
||||
- [Display Chrome installed apps counts](#display-chrome-installed-apps-counts)
|
||||
- [Display Chrome devices with a specific installed application](#display-chrome-devices-with-a-specific-installed-application)
|
||||
|
||||
## API documentation
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -272,6 +272,7 @@ gam create|add course [id|alias <CourseAlias>] <CourseAttribute>*
|
||||
[announcementstates <CourseAnnouncementStateList>]
|
||||
[materialstates <CourseMaterialStateList>]
|
||||
[workstates <CourseWorkStateList>]
|
||||
[individualstudentassignments copy|delete|maptoall]
|
||||
[removeduedate [<Boolean>]]
|
||||
[mapsharemodestudentcopy edit|none|view]
|
||||
[copymaterialsfiles [<Boolean>]]
|
||||
@@ -286,6 +287,7 @@ gam update course <CourseID> <CourseAttribute>+
|
||||
[announcementstates <CourseAnnouncementStateList>]
|
||||
[materialstates <CourseMaterialStateList>]
|
||||
[workstates <CourseWorkStateList>]
|
||||
[individualstudentassignments copy|delete|maptoall]
|
||||
[removeduedate [<Boolean>]]
|
||||
[mapsharemodestudentcopy edit|none|view]
|
||||
[copymaterialsfiles [<Boolean>]]
|
||||
@@ -299,6 +301,7 @@ gam update courses <CourseEntity> <CourseAttribute>+
|
||||
[announcementstates <CourseAnnouncementStateList>]
|
||||
[materialstates <CourseMaterialStateList>]
|
||||
[workstates <CourseWorkStateList>]
|
||||
[individualstudentassignments copy|delete|maptoall]
|
||||
[removeduedate [<Boolean>]]
|
||||
[mapsharemodestudentcopy edit|none|view]
|
||||
[copymaterialsfiles [<Boolean>]]
|
||||
@@ -315,6 +318,9 @@ gam update courses <CourseEntity> <CourseAttribute>+
|
||||
* `materialstates <CourseMaterialsStateList>` - Copy class materials with the specified states
|
||||
* Work - By default, no course work is copied
|
||||
* `workstates <CourseWorkStateList>` - Copy class work with the specified states
|
||||
* `individualstudentassignments copy` - Copy individual student assignments; this is the default. You will get an error if the student is not a member of the course.
|
||||
* `individualstudentassignments delete` - Delete individual student assignments
|
||||
* `individualstudentassignments maptoall` - Map individual student assignments to all student assignments
|
||||
* `removeduedate false` - Remove due dates before the current time; this is the default
|
||||
* `removeduedate|removeduedate true` - Remove all due dates
|
||||
* Announcements, Materials and Work Materials files
|
||||
|
||||
@@ -10,6 +10,94 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
||||
|
||||
See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation
|
||||
|
||||
### 6.77.00
|
||||
|
||||
Added option `individualstudentassignments copy|delete|maptoall` to `gam create|update course ... copyfrom`
|
||||
that controls how individual student assignments in the `copyfrom` course are processed.
|
||||
* `individualstudentassignments copy` - Copy individual student assignments; this is the default. You will get an error if the student is not a member of the course.
|
||||
* `individualstudentassignments delete` - Delete individual student assignments
|
||||
* `individualstudentassignments maptoall` - Map individual student assignments to all student assignments
|
||||
|
||||
Upgraded to Python 3.12.4 where possible.
|
||||
|
||||
Added option `asadmin` to the following Chat commands that allows admin access.
|
||||
These commands are in Developer Preview, your project must have Developer Preview enabled for the Chat API
|
||||
in order to use these commands.
|
||||
```
|
||||
gam <UserItem> delete chatspace asadmin
|
||||
gam <UserItem> update chatspace asadmin
|
||||
gam <UserItem> info chatspace asadmin
|
||||
gam <UserItem> print|show chatspaces asadmin
|
||||
gam <UserItem> create chatmember asadmin
|
||||
gam <UserItem> delete|remove chatmember asadmin
|
||||
gam <UserItem> update|modify chatmember asadmin
|
||||
gam <UserItem> sync chatmembers asadmin
|
||||
gam <UserItem> info chatmember asadmin
|
||||
gam <UserItem> print|show chatmembers|asadmin
|
||||
```
|
||||
|
||||
* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Chat#developer-preview-admin-access
|
||||
|
||||
Added `use_chat_admin_access` Boolean variable to `gam.cfg`.
|
||||
```
|
||||
* When False, GAM uses user access when making all Chat API calls. For calls that support admin access,
|
||||
this can be overridden with the asadmin command line option.
|
||||
* When True, GAM uses admin access for Chat API calls that support admin access; other calls will use user access.
|
||||
* Default: False
|
||||
```
|
||||
|
||||
### 6.76.15
|
||||
|
||||
Fixed bug in `gam <UserTypeEntity> print|show filesharecounts summary only summaryuser <String>`
|
||||
that printed an erroneous row if `<UserTypeEntity>` specified a single user and `<String>` matched
|
||||
the user's email address.
|
||||
|
||||
### 6.76.14
|
||||
|
||||
Added the following Gemini License SKUs:
|
||||
```
|
||||
1010470004 - Gemini Education
|
||||
1010470005 - Gemini Education Premium
|
||||
```
|
||||
|
||||
### 6.76.13
|
||||
|
||||
Updated `gam <UserTypeEntity> show fileinfo ... showlabels` and `gam <UserTypeEntity> print filelist ... showlabels`
|
||||
to retry these errors that occur when trying to get the drive labels for a file/folder.
|
||||
```
|
||||
ERROR: 500: unknownError - Unknown Error.
|
||||
ERROR: 503: serviceNotAvailable - The service is currently unavailable.
|
||||
```
|
||||
|
||||
Upgraded to OpenSSL 3.3.1 where possible.
|
||||
|
||||
### 6.76.12
|
||||
|
||||
Fixed bug in `gam <UserTypeEntity> print|show chatspaces` that caused the following error:
|
||||
```
|
||||
ERROR: Got an unexpected keyword argument orderBy
|
||||
```
|
||||
|
||||
### 6.76.11
|
||||
|
||||
Thanks to Jay, added `gam report vault`.
|
||||
|
||||
Thanks to Jay, added the following Gemini SKUs:
|
||||
```
|
||||
1010470006 - AI Security
|
||||
1010470007 - AI Meetings and Messaging
|
||||
```
|
||||
|
||||
Updated `gam <UserTypeEntity> print filelist ... showshareddrivepermissions` to display
|
||||
progress messages to stderr as a separate API call must be made for every file/folder on the Shared Drive
|
||||
to get its permissions. As this can take a long time, the progress messages indicate that progress is being made.
|
||||
|
||||
### 6.76.10
|
||||
|
||||
Added `fromgmail` to `<EventType>` that can be used in `gam calendars <CalendarEntity> print|show events ... eventtype fromgmail`.
|
||||
|
||||
* See: https://workspaceupdates.googleblog.com/2024/05/google-calendar-api-event-type-fromgmail.html
|
||||
|
||||
### 6.76.09
|
||||
|
||||
Updated `gam update|delete|info adminrole` to handle the following error:
|
||||
|
||||
@@ -279,6 +279,7 @@ If `actioncsv` is specified, a CSV file with columns `group,email,role,action,me
|
||||
that shows the actions performed when updating the group.
|
||||
|
||||
The option `additionalmembers [<GroupRole>] <EmailAddressEntity>` can be used to specify members in addition to those specified with `<UserTypeEntity>`.
|
||||
If a <GroupRole> is specified, it must match the same role as the one used for the group sync.
|
||||
|
||||
For example,
|
||||
```
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
- [Definitions](#definitions)
|
||||
- [GUI API Group settings mapping](#gui-api-group-settings-mapping)
|
||||
- [GUI API Group access type settings mapping](#gui-api-group-access-type-settings-mapping)
|
||||
- [whoCanViewMembership and whoCanDiscoverGroup interactions](#whocanviewmembership-and-whocandiscovergroup-interactions)
|
||||
- [Manage groups](#manage-groups)
|
||||
- [Update a group's settings with JSON data](#update-a-groups-settings-with-json-data)
|
||||
- [Display information about specific groups](#display-information-about-specific-groups)
|
||||
@@ -303,6 +304,46 @@ Restricted
|
||||
whoCanViewMembership ALL_MEMBERS_CAN_VIEW
|
||||
```
|
||||
|
||||
## whoCanViewMembership and whoCanDiscoverGroup interactions
|
||||
Some combinations of these two settings are not allowed:
|
||||
```
|
||||
gam update group group@domain.com whoCanViewMembership ALL_IN_DOMAIN_CAN_VIEW whoCanDiscoverGroup ANYONE_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_OWNERS_CAN_VIEW whoCanDiscoverGroup ANYONE_CAN_DISCOVER
|
||||
Group: group@domain.com, Update Failed: Failed request validation in update settings: DONT_USE_OR_ELSE_WHO_CAN_MANAGE_MEMBERS_CANNOT_BE_BROADER_THAN_WHO_CAN_VIEW_MEMBERSHIP
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_MANAGERS_CAN_VIEW whoCanDiscoverGroup ANYONE_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_MEMBERS_CAN_VIEW whoCanDiscoverGroup ANYONE_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_IN_DOMAIN_CAN_VIEW whoCanDiscoverGroup ALL_IN_DOMAIN_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_OWNERS_CAN_VIEW whoCanDiscoverGroup ALL_IN_DOMAIN_CAN_DISCOVER
|
||||
Group: group@domain.com, Update Failed: Failed request validation in update settings: DONT_USE_OR_ELSE_WHO_CAN_MANAGE_MEMBERS_CANNOT_BE_BROADER_THAN_WHO_CAN_VIEW_MEMBERSHIP
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_MANAGERS_CAN_VIEW whoCanDiscoverGroup ALL_IN_DOMAIN_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_MEMBERS_CAN_VIEW whoCanDiscoverGroup ALL_IN_DOMAIN_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_IN_DOMAIN_CAN_VIEW whoCanDiscoverGroup ALL_MEMBERS_CAN_DISCOVER
|
||||
Group: group@domain.com, Update Failed: Failed request validation in update settings: WHO_CAN_VIEW_MEMBERSHIP_CANNOT_BE_BROADER_THAN_WHO_CAN_SEE_GROUP
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_OWNERS_CAN_VIEW whoCanDiscoverGroup ALL_MEMBERS_CAN_DISCOVER
|
||||
Group: group@domain.com, Update Failed: Failed request validation in update settings: DONT_USE_OR_ELSE_WHO_CAN_MANAGE_MEMBERS_CANNOT_BE_BROADER_THAN_WHO_CAN_VIEW_MEMBERSHIP
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_MANAGERS_CAN_VIEW whoCanDiscoverGroup ALL_MEMBERS_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
|
||||
gam update group group@domain.com whoCanViewMembership ALL_MEMBERS_CAN_VIEW whoCanDiscoverGroup ALL_MEMBERS_CAN_DISCOVER
|
||||
Group: group@domain.com, Updated
|
||||
```
|
||||
|
||||
## Manage groups
|
||||
|
||||
These commands allow you to create, update and delete groups.
|
||||
|
||||
@@ -335,10 +335,10 @@ writes the credentials into the file oauth2.txt.
|
||||
admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||
admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version
|
||||
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
|
||||
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
GAMADV-XTD3 6.77.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
Ross Scroggs <ross.scroggs@gmail.com>
|
||||
Python 3.12.3 64-bit final
|
||||
MacOS Sonoma 14.4.1 x86_64
|
||||
Python 3.12.4 64-bit final
|
||||
MacOS Sonoma 14.5 x86_64
|
||||
Path: /Users/admin/bin/gamadv-xtd3
|
||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||
|
||||
@@ -1009,9 +1009,9 @@ writes the credentials into the file oauth2.txt.
|
||||
C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt
|
||||
C:\GAMADV-XTD3>gam version
|
||||
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
||||
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
GAMADV-XTD3 6.77.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
Ross Scroggs <ross.scroggs@gmail.com>
|
||||
Python 3.12.3 64-bit final
|
||||
Python 3.12.4 64-bit final
|
||||
Windows-10-10.0.17134 AMD64
|
||||
Path: C:\GAMADV-XTD3
|
||||
Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
|
||||
| License Name | License SKU | Abbreviation |
|
||||
|--------------|-------------|---------------|
|
||||
| AI Meetings and Messaging | 1010470007 | aimeetingsandmessaging |
|
||||
| AI Security | 1010470006 | aisecurity |
|
||||
| AppSheet Core | 1010380001 | appsheetcore |
|
||||
| AppSheet Enterprise Standard | 1010380002 | appsheetstandard |
|
||||
| AppSheet Enterprise Plus | 1010380003 | appsheetplus |
|
||||
@@ -53,6 +55,8 @@
|
||||
| G Suite Legacy | Google-Apps | standard |
|
||||
| G Suite Lite | Google-Apps-Lite | gsuitelite |
|
||||
| Gemini Business | 1010470003 | geminibiz
|
||||
| Gemini Education | 1010470004 | geminiedu |
|
||||
| Gemini Education Premium | 1010470005 | geminiedupremium |
|
||||
| Gemini Enterprise | 1010470001 | geminient | duetai |
|
||||
| Google Apps Message Security | Google-Apps-For-Postini | postini |
|
||||
| Google Chrome Device Management | Google-Chrome-Device-Management | cdm |
|
||||
@@ -136,6 +140,8 @@
|
||||
4tb | drive4tb | googledrivestorage4tb | Google-Drive-storage-4TB |
|
||||
8tb | drive8tb | googledrivestorage8tb | Google-Drive-storage-8TB |
|
||||
16tb | drive16tb | googledrivestorage16tb | Google-Drive-storage-16TB |
|
||||
aimeetingsandmessaging | 1010470007 | AI Meetings and Messaging |
|
||||
aisecurity | 1010470006 | AI Security |
|
||||
appsheetcore | 1010380001 | AppSheet Core |
|
||||
appsheetstandard | appsheetenterprisestandard | 1010380002 | AppSheet Enterprise Standard |
|
||||
appsheetplus | appsheetenterpriseplus | 1010380003 | AppSheet Enterprise Plus |
|
||||
@@ -147,6 +153,8 @@
|
||||
cloudsearch | 1010350001 | Cloud Search |
|
||||
eeu | 1010490001 | SKU Endpoint Education Upgrade |
|
||||
geminibiz | 1010470003 | Gemini Business |
|
||||
geminiedu | 1010470004 | Gemini Education |
|
||||
geminiedupremium| 1010470005 | Gemini Education Premium |
|
||||
geminient| duetai | 1010470001 | Gemini Enterprise |
|
||||
gsuitebasic | gafb | gafw | basic | Google-Apps-For-Business |
|
||||
gsuitebusiness | gau | gsb | unlimited | Google-Apps-Unlimited |
|
||||
|
||||
@@ -10,7 +10,8 @@ Thank you.
|
||||
* Goldy Arora - https://www.goldyarora.com/license-notifier/
|
||||
* Iain Macleod - https://docs.google.com/document/d/1QxWAPdhROcx70OXLpSD9Trh3vs-nJKSMiaMZCTwOOTg/edit?pli=1#heading=h.2a2azzpy36k0
|
||||
* James Seymour - https://sites.google.com/jis.edu.bn/gam-commands/home
|
||||
* Kevin Melillo - https://github.com/KevinMelilloIEEE/gam-script
|
||||
* Kevin Melillo - https://github.com/KevinMelilloIEEE/gam-script
|
||||
* Korey Rideout - https://chatgpt.com/g/g-PTxxnVPMG-gam-assist - A helpful tool to assist with, GAM (+Advance) and GYB commands to assist with syntax for Google Workspace Administrators.
|
||||
* Paul Ogier (Taming.Tech) - GAMADV-XTD3 Course on Udemy https://taming.tech/GAMCourse
|
||||
* Paul Ogier (Taming.Tech) - GAMADV-XTD3 Tutorials https://www.youtube.com/watch?v=g9LDeyXQNLI&list=PL_dLiK09pJVhKJxZHNk9CHK0q5hkZ856w
|
||||
* Paul Ogier (Taming.Tech) - https://taming.tech/taming-gam-a-practical-guide-to-gam-and-gamadv-xtd3/
|
||||
|
||||
@@ -97,7 +97,7 @@ In the `print/show drivefileacls` and `create/delete permissions` commands you c
|
||||
* `expirationend <Time>` - For types user and group, will the permission expire before or on <Time>.
|
||||
* `deleted <Boolean>` - For types user and groups, has the user or group been deleted.
|
||||
* `inherited <Boolean>` - For Shared Drive files/folders, is the permission inherited
|
||||
* `pmtype member|file` - For Shared Drive files/folders, is the permission derived from membership or explicitly granted.
|
||||
* `pmtype member|file` - For Shared Drive files/folders, is the permission derived from membership or explicitly granted.
|
||||
* `em|endmatch` - End of permission match definition
|
||||
|
||||
## File Selection Examples
|
||||
|
||||
@@ -49,7 +49,8 @@
|
||||
rules|
|
||||
saml|
|
||||
token|tokens|oauthtoken|
|
||||
useraccounts
|
||||
useraccounts|
|
||||
vault
|
||||
|
||||
gam report <ActivityApplicationName> [todrive <ToDriveAttributes>*]
|
||||
[(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath> [showorgunit])|(select <UserTypeEntity>)]
|
||||
@@ -390,6 +391,10 @@ Report on users Google Drive usage.
|
||||
```
|
||||
gam report users parameters accounts:drive_used_quota_in_mb,accounts:total_quota_in_mb,accounts:used_quota_in_mb,accounts:used_quota_in_percentage
|
||||
```
|
||||
Report on users total storage usage.
|
||||
```
|
||||
gam report users parameters accounts:drive_used_quota_in_mb,accounts:gmail_used_quota_in_mb,accounts:gplus_photos_used_quota_in_mb,accounts:total_quota_in_mb,accounts:used_quota_in_mb,accounts:used_quota_in_percentage
|
||||
```
|
||||
Report on email activity for individual users.
|
||||
```
|
||||
$ gam report users select users testuser1,testuser2,testuser3 fields gmail:num_emails_received,gmail:num_emails_sent range 2023-07-01 2023-07-07
|
||||
|
||||
@@ -59,17 +59,21 @@ Thanks to Duncan Isaksen-Loxton for a script to help manage multiple domains.
|
||||
4tb | drive4tb | googledrivestorage4tb | Google-Drive-storage-4TB |
|
||||
8tb | drive8tb | googledrivestorage8tb | Google-Drive-storage-8TB |
|
||||
16tb | drive16tb | googledrivestorage16tb | Google-Drive-storage-16TB |
|
||||
aimeetingsandmessaging | 1010470007 | AI Meetings and Messaging |
|
||||
aisecurity | 1010470006 | AI Security |
|
||||
appsheetcore | 1010380001 | AppSheet Core |
|
||||
appsheetstandard | appsheetenterprisestandard | 1010380002 | AppSheet Enterprise Standard |
|
||||
appsheetplus | appsheetenterpriseplus | 1010380003 | AppSheet Enterprise Plus |
|
||||
assuredcontrols | 1010390001 | Assured Controls |
|
||||
bce | beyondcorp | beyondcorpenterprise | 1010400001 | Beyond Corp Enterprise |
|
||||
bce | beyondcorp | beyondcorpenterprise | cep | chromeenterprisepremium | 1010400001 | Chrome Enterprise Premium |
|
||||
cdm | chrome | googlechromedevicemanagement | Google-Chrome-Device-Management |
|
||||
cloudidentity | identity | 1010010001 | Cloud Identity |
|
||||
cloudidentitypremium | identitypremium | 1010050001 | Cloud Identity Premium |
|
||||
cloudsearch | 1010350001 | Cloud Search |
|
||||
eeu | 1010490001 | SKU Endpoint Education Upgrade |
|
||||
geminibiz | 1010470003 | Gemini Business |
|
||||
geminiedu | 1010470004 | Gemini Education |
|
||||
geminiedupremium| 1010470005 | Gemini Education Premium |
|
||||
geminient| duetai | 1010470001 | Gemini Enterprise |
|
||||
gsuitebasic | gafb | gafw | basic | Google-Apps-For-Business |
|
||||
gsuitebusiness | gau | gsb | unlimited | Google-Apps-Unlimited |
|
||||
|
||||
@@ -243,6 +243,7 @@
|
||||
<EventType> ::=
|
||||
default|
|
||||
focustime|
|
||||
fromgmail|
|
||||
outofoffice|
|
||||
workinglocation
|
||||
<EventTypeList> ::= "<EventType>(,<EventType>)*"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Users - Chat
|
||||
- [API documentation](#api-documentation)
|
||||
- [Introduction](#introduction)
|
||||
- [Developer Preview Admin Access](#developer-preview-admin-access)
|
||||
- [Set up a Chat Bot](#set-up-a-chat-bot)
|
||||
- [Definitions](#definitions)
|
||||
- [Manage Chat Spaces](#manage-chat-spaces)
|
||||
@@ -19,6 +20,7 @@
|
||||
* https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/list
|
||||
* https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents/list
|
||||
* https://support.google.com/chat/answer/7655820
|
||||
* https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
|
||||
## Introduction
|
||||
These features were added in version 6.60.00.
|
||||
@@ -27,12 +29,55 @@ To use these commands you must update your service account authorization.
|
||||
```
|
||||
gam user user@domain.com update serviceaccount
|
||||
|
||||
[*] 3) Chat API - Memberships (supports readonly)
|
||||
[*] 4) Chat API - Messages (supports readonly)
|
||||
[*] 5) Chat API - Spaces (supports readonly)
|
||||
[*] 6) Chat API - Spaces Delete
|
||||
[*] 4) Chat API - Memberships (supports readonly)
|
||||
[*] 6) Chat API - Messages (supports readonly)
|
||||
[*] 7) Chat API - Spaces (supports readonly)
|
||||
[*] 9) Chat API - Spaces Delete
|
||||
|
||||
```
|
||||
|
||||
## Developer Preview Admin Access
|
||||
The Chat API Developer Preview allows an admin to perform certain actions
|
||||
on all Chat Spaces. These commands were added in version 6.77.00.
|
||||
|
||||
You must be enrolled in the Developer Preview program for the CHAT API to use these commands.
|
||||
|
||||
```
|
||||
gam <UserItem> delete chatspace asadmin
|
||||
gam <UserItem> update chatspace asadmin
|
||||
gam <UserItem> info chatspace asadmin
|
||||
gam <UserItem> print|show chatspaces asadmin
|
||||
gam <UserItem> create chatmember asadmin
|
||||
gam <UserItem> delete|remove chatmember asadmin
|
||||
gam <UserItem> update|modify chatmember asadmin
|
||||
gam <UserItem> sync chatmembers asadmin
|
||||
gam <UserItem> info chatmember asadmin
|
||||
gam <UserItem> print|show chatmembers|asadmin
|
||||
```
|
||||
To use these commands you must update your service account authorization.
|
||||
```
|
||||
gam user user@domain.com update serviceaccount
|
||||
|
||||
[*] 5) Chat API - Memberships Admin (supports readonly)
|
||||
[*] 8) Chat API - Spaces Admin (supports readonly)
|
||||
[*] 10) Chat API - Spaces Delete Admin
|
||||
```
|
||||
|
||||
Added `use_chat_admin_access` Boolean variable to `gam.cfg`.
|
||||
```
|
||||
* When False, GAM uses user access when making all Chat API calls. For calls that support admin access,
|
||||
this can be overridden with the asadmin command line option.
|
||||
* When True, GAM uses admin access for Chat API calls that support admin access; other calls will use user access.
|
||||
* Default: False
|
||||
```
|
||||
|
||||
If your account is not enrolled in the Chat API Developer Preview, you will see errors like this:
|
||||
```
|
||||
$ gam user admin@domain.com show chatspaces asadmin
|
||||
Getting all Chat Spaces that match query (customer = "customers/my_customer" AND spaceType = "SPACE") for admin@domain.com(asadmin)
|
||||
Chat Admin: admin@domain.com(asadmin), Show Failed: Method not found.
|
||||
```
|
||||
|
||||
Google requires that you have a Chat Bot configured in order to use the Chat API; set up a Chat Bot as described in the next section.
|
||||
|
||||
## Set up a Chat Bot
|
||||
@@ -81,6 +126,65 @@ Google requires that you have a Chat Bot configured in order to use the Chat API
|
||||
<ChatMessageID> ::= client-<String>
|
||||
<String> must contain only lowercase letters, numbers, and hyphens up to 56 characters in length.
|
||||
```
|
||||
```
|
||||
<ChatSpaceFieldName> ::=
|
||||
accesssettings|
|
||||
admininstalled|
|
||||
createtime|
|
||||
displayname|
|
||||
externaluserallowed|
|
||||
importmode|
|
||||
lastactivetime|
|
||||
membershipcount|
|
||||
name|
|
||||
singleuserbotdm|
|
||||
spacedetails|
|
||||
spacehistorystate|
|
||||
spacethreadingstate|threaded|
|
||||
spacetype|type|
|
||||
spaceuri
|
||||
<ChatSpaceFieldNameList> ::= "<ChatSpaceFieldName>(,<ChatSpaceFieldName>)*"
|
||||
|
||||
<ChatMemberFieldName> ::=
|
||||
createtime|
|
||||
deletetime|
|
||||
groupmember|
|
||||
member|
|
||||
name|
|
||||
role|
|
||||
state|
|
||||
<ChatMemberFieldNameList> ::= "<ChatMemberFieldName>(,<ChatMemberFieldName>)*"
|
||||
|
||||
<ChatMessageFieldName> ::=
|
||||
accessorywidgets|
|
||||
actionresponse|
|
||||
annotations|
|
||||
argumenttext|
|
||||
attachedgifs|
|
||||
attachment|
|
||||
cards|
|
||||
cardsv2|
|
||||
clientassignedmessageid|
|
||||
createtime|
|
||||
deletetime|
|
||||
deletionmetadata|
|
||||
emojireactionsummaries|
|
||||
fallbacktext|
|
||||
formattedtext|
|
||||
lastupdatetime|
|
||||
matchedurl|
|
||||
name|
|
||||
privatemessageviewer|
|
||||
quotedmessagemetadata|
|
||||
sender|
|
||||
slashcommand|
|
||||
space|
|
||||
text|
|
||||
thread|
|
||||
threadreply
|
||||
<ChatMessageFieldNameList> ::= "<ChatMessageFieldName>(,<ChatMessageFieldName>)*"
|
||||
|
||||
```
|
||||
|
||||
## Manage Chat Spaces
|
||||
### Create a chat space
|
||||
@@ -128,7 +232,7 @@ The `restricted|audience` options are in Developer Preview and will not be gener
|
||||
By default, details about the chatmessage are displayed.
|
||||
* `returnidonly` - Display the chatmessage name only
|
||||
|
||||
### Update a chat space
|
||||
### Update a user's chat space
|
||||
```
|
||||
gam <UserTypeEntity> update chatspace <ChatSpace>
|
||||
[restricted|(audience <String>)]|
|
||||
@@ -146,15 +250,39 @@ They are in Developer Preview and will not be generally available.
|
||||
By default, Gam displays the information about the created chatspace as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
### Delete a chat space
|
||||
### Update a chat space, asadmin
|
||||
```
|
||||
gam <UserItem> update chatspace asadmin <ChatSpace>
|
||||
[restricted|(audience <String>)]|
|
||||
([displayname <String>]
|
||||
[type space]
|
||||
[description <String>] [guidelines|rules <String>]
|
||||
[history <Boolean>])
|
||||
[formatjson]
|
||||
```
|
||||
A groupchat space can be upgraded to a space by specifying `type space` and `displayname <String>`.
|
||||
|
||||
The `restricted|audience` options can not be combined with options `displayname,type,description,guidelines,history`.
|
||||
They are in Developer Preview and will not be generally available.
|
||||
|
||||
By default, Gam displays the information about the created chatspace as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
### Delete a user's chat space
|
||||
```
|
||||
gam <UserTypeEntity> delete chatspace <ChatSpace>
|
||||
```
|
||||
|
||||
### Delete a chat space, asadmin
|
||||
```
|
||||
gam <UserItem> delete chatspace asadmin <ChatSpace>
|
||||
```
|
||||
|
||||
## Display Chat Spaces
|
||||
### Display information about a specific chat space for a user
|
||||
```
|
||||
gam <UserTypeEntity> info chatspace <ChatSpace>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -163,6 +291,7 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
### Display information about a direct message chat space between two users
|
||||
```
|
||||
gam <UserTypeEntity> info chatspacedm <UserItem>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -172,16 +301,24 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
```
|
||||
gam <UserTypeEntity> show chatspaces
|
||||
[types <ChatSpaceTypeList>]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, chat spaces of all types are displayed.
|
||||
* `types <ChatSpaceTypeList>` - Display specific types of spaces.
|
||||
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
|
||||
[types <ChatSpaceTypeList>]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
By default, chat spaces of all types are displayed.
|
||||
* `types <ChatSpaceTypeList>` - Display specific types of spaces.
|
||||
|
||||
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.
|
||||
|
||||
@@ -191,7 +328,7 @@ 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.
|
||||
|
||||
### Display information about all chat spaces
|
||||
### Display information about all user's chat spaces
|
||||
```
|
||||
# Local file
|
||||
gam config auto_batch_min 1 redirect csv ./AllChatSpaces.csv multiprocess redirect stdout - multiprocess redirect stderr stdout all users print chatspaces
|
||||
@@ -212,8 +349,54 @@ 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.
|
||||
|
||||
### Display information about a specific chat space, asadmin
|
||||
```
|
||||
gam <UserItem> info chatspace asadmin <ChatSpace>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
### Display information about all chat spaces, asadmin
|
||||
For query and orderby information, see: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
```
|
||||
gam <UserItem> show chatspaces asadmin
|
||||
[query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, all chat spaces of type SPACE are displayed.
|
||||
* `query <String> [querytime<String> <Time>]` - Display selected chat spaces
|
||||
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
|
||||
[query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
By default, all chat spaces of type SPACE are displayed.
|
||||
* `query <String> [querytime<String> <Time>]` - Display selected chat spaces
|
||||
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
|
||||
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.
|
||||
|
||||
|
||||
## Manage Chat Members
|
||||
### Add members to a chat space
|
||||
### Add members to a user's chat space
|
||||
```
|
||||
gam <UserTypeEntity> create chatmember <ChatSpace>
|
||||
[type human|bot] [role member|manager]
|
||||
@@ -225,7 +408,7 @@ By default, Gam displays the information about the chatmember as an indented lis
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
* `returnidonly` - Display the chatmember name only
|
||||
|
||||
### Delete members from a chat space
|
||||
### Delete members from a user's chat space
|
||||
Delete members by specifying a chat space and user/group email addresses.
|
||||
```
|
||||
gam <UserTypeEntity> delete chatmember <ChatSpace>
|
||||
@@ -233,12 +416,37 @@ gam <UserTypeEntity> delete chatmember <ChatSpace>
|
||||
(group <GroupItem>)|(groups <GroupEntity>))+
|
||||
```
|
||||
|
||||
Delete members by specifying chatmember names.
|
||||
Delete members from a user's chat space by specifying chatmember names.
|
||||
```
|
||||
gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
||||
```
|
||||
|
||||
### Update members role
|
||||
### Add members to a chat space, asadmin
|
||||
```
|
||||
gam <UserItem> create chatmember asadmin <ChatSpace>
|
||||
[type human|bot] [role member|manager]
|
||||
(user <UserItem>)* (members <UserTypeEntity>)*
|
||||
(group <GroupItem>)* (groups <GroupEntity>)*
|
||||
[formatjson|returnidonly]
|
||||
```
|
||||
By default, Gam displays the information about the chatmember as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
* `returnidonly` - Display the chatmember name only
|
||||
|
||||
### Delete members from a chat space, asadmin
|
||||
Delete members by specifying a chat space and user/group email addresses.
|
||||
```
|
||||
gam <UserItem> delete chatmember asadmin <ChatSpace>
|
||||
((user <UserItem>)|(members <UserTypeEntity>)|
|
||||
(group <GroupItem>)|(groups <GroupEntity>))+
|
||||
```
|
||||
|
||||
Delete members from a chat space by specifying chatmember names, asadmin
|
||||
```
|
||||
gam <UserItem> remove chatmember members asadmin <ChatMemberList>
|
||||
```
|
||||
|
||||
### Update a members role in a user's chat space
|
||||
Update members by specifying a chat space, user/group email addresses and role.
|
||||
```
|
||||
gam <UserTypeEntity> update chatmember <ChatSpace>
|
||||
@@ -252,31 +460,98 @@ gam <UserTypeEntity> modify chatmember
|
||||
members <ChatMemberList>
|
||||
```
|
||||
|
||||
### Update a members role in a chat space, asadmin
|
||||
Update members by specifying a chat space, user/group email addresses and role.
|
||||
```
|
||||
gam <UserItem> update chatmember asadmin <ChatSpace>
|
||||
role member|manager
|
||||
((user <UserItem>)|(members <UserTypeEntity>))+
|
||||
```
|
||||
Update members by specifying chatmember names and role.
|
||||
```
|
||||
gam <UserItem> modify chatmember asadmin
|
||||
role member|manager
|
||||
members <ChatMemberList>
|
||||
```
|
||||
|
||||
## Display Chat Members
|
||||
### Display information about a specific chat members
|
||||
### Display information about a user's specific chat members
|
||||
```
|
||||
gam <UserTypeEntity> info chatmember members <ChatMemberList>
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
### Display information about all chat members in a chat space
|
||||
### Display information about members in a user's chat spaces
|
||||
```
|
||||
gam <UserTypeEntity> show chatmembers <ChatSpace>
|
||||
gam <UserTypeEntity> show chatmembers
|
||||
<ChatSpace>* [types <ChatSpaceTypeList>]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
|
||||
By default, members for all of a user's chat spaces of all types are displayed.
|
||||
* `<ChatSpace>` - Display members for a specific chat space
|
||||
* `types <ChatSpaceTypeList>` - Display members for specific types of spaces.
|
||||
|
||||
By default, all JOINED user members in a chat space are displayed.
|
||||
* `showinvited` - Display `INVITED` members.
|
||||
* `showgroups` - Display group members,
|
||||
* `filter <String>` - Filter memberships by a member's `role `and `member.type`.
|
||||
* To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
|
||||
* To filter by type, set member.type to HUMAN or BOT.
|
||||
* To filter by both role and type, use the AND operator.
|
||||
* To filter by either role or type, use the OR operator.
|
||||
|
||||
For example, the following filters are valid:
|
||||
```
|
||||
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
|
||||
member.type = "HUMAN" AND role = "ROLE_MANAGER"
|
||||
```
|
||||
The following filters are invalid:
|
||||
```
|
||||
member.type = "HUMAN" AND member.type = "BOT"
|
||||
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
|
||||
```
|
||||
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam <UserTypeEntity> print chatmembers [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatmembers [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>* [types <ChatSpaceTypeList>]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
|
||||
By default, members for all of a user's chat spaces of all types are displayed.
|
||||
* `<ChatSpace>` - Display members for a specific chat space
|
||||
* `types <ChatSpaceTypeList>` - Display members for specific types of spaces.
|
||||
|
||||
By default, all JOINED user members in a chat space are displayed.
|
||||
* `showinvited` - Display `INVITED` members.
|
||||
* `showgroups` - Display group members,
|
||||
* `filter <String>` - Filter memberships by a member's `role `and `member.type`.
|
||||
* To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
|
||||
* To filter by type, set member.type to HUMAN or BOT.
|
||||
* To filter by both role and type, use the AND operator.
|
||||
* To filter by either role or type, use the OR operator.
|
||||
|
||||
For example, the following filters are valid:
|
||||
```
|
||||
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
|
||||
member.type = "HUMAN" AND role = "ROLE_MANAGER"
|
||||
```
|
||||
The following filters are invalid:
|
||||
```
|
||||
member.type = "HUMAN" AND member.type = "BOT"
|
||||
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
@@ -286,25 +561,95 @@ 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.
|
||||
|
||||
By default, only `JOINED` members are displayed; use `showinvited` to also display `INVITED` members.
|
||||
### Display information about specific chat members, asadmin
|
||||
```
|
||||
gam <UserItem> info chatmember asadmin members <ChatMemberList>
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
Use `filter <String>` to filter memberships by a member's `role `and `member.type`.
|
||||
* To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
|
||||
* To filter by type, set member.type to HUMAN or BOT.
|
||||
* To filter by both role and type, use the AND operator.
|
||||
* To filter by either role or type, use the OR operator.
|
||||
### Display information about members all chat spaces, asadmin
|
||||
For query and orderby information, see: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
```
|
||||
gam <UserItem> show chatmembers asadmin
|
||||
<ChatSpace>* [query <String>] [querytime<String> <Time>]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
|
||||
For example, the following queries are valid:
|
||||
By default, members for all chat spaces of type SPACE are displayed.
|
||||
* `<ChatSpace>` - Display members for a specific chat space
|
||||
* `query <String> [querytime<String> <Time>]` - Display members for selected chat spaces
|
||||
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
|
||||
By default, all JOINED user members in a chat space are displayed.
|
||||
* `showinvited` - Display `INVITED` members.
|
||||
* `showgroups` - Display group members,
|
||||
* `filter <String>` - Filter memberships by a member's `role `and `member.type`.
|
||||
* To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
|
||||
* To filter by type, set member.type to HUMAN or BOT.
|
||||
* To filter by both role and type, use the AND operator.
|
||||
* To filter by either role or type, use the OR operator.
|
||||
|
||||
For example, the following filters are valid:
|
||||
```
|
||||
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
|
||||
member.type = "HUMAN" AND role = "ROLE_MANAGER"
|
||||
```
|
||||
The following queries are invalid:
|
||||
The following filters are invalid:
|
||||
```
|
||||
member.type = "HUMAN" AND member.type = "BOT"
|
||||
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
|
||||
```
|
||||
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam <UserItem> print chatmembers asadmin [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>* [query <String>] [querytime<String> <Time>]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
|
||||
By default, members for all chat spaces of type SPACE are displayed.
|
||||
* `<ChatSpace>` - Display members for a specific chat space
|
||||
* `query <String> [querytime<String> <Time>]` - Display members for selected chat spaces
|
||||
* See: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
|
||||
|
||||
By default, all JOINED user members in a chat space are displayed.
|
||||
* `showinvited` - Display `INVITED` members.
|
||||
* `showgroups` - Display group members,
|
||||
* `filter <String>` - Filter memberships by a member's `role `and `member.type`.
|
||||
* To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
|
||||
* To filter by type, set member.type to HUMAN or BOT.
|
||||
* To filter by both role and type, use the AND operator.
|
||||
* To filter by either role or type, use the OR operator.
|
||||
|
||||
For example, the following filters are valid:
|
||||
```
|
||||
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
|
||||
member.type = "HUMAN" AND role = "ROLE_MANAGER"
|
||||
```
|
||||
The following filters are invalid:
|
||||
```
|
||||
member.type = "HUMAN" AND member.type = "BOT"
|
||||
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
### Delete a user from their `space` and `groupchat` spaces
|
||||
There is no way to delete a user from a directmessage space.
|
||||
```
|
||||
@@ -397,6 +742,7 @@ Display a specific Chat message.
|
||||
|
||||
```
|
||||
gam <UserTypeEntity> info chatmessage name <ChatMessage>
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
@@ -409,16 +755,20 @@ gam user user@domain.com info chatmessage name spaces/AAAADi-pvqc/messages/PKJrx
|
||||
|
||||
### Display information about all chat messages in a chat space
|
||||
```
|
||||
gam <UserTypeEntity> show chatmessages <ChatSpace>
|
||||
gam <UserTypeEntity> show chatmessages
|
||||
<ChatSpace>+
|
||||
[showdeleted [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson]
|
||||
```
|
||||
By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam <UserTypeEntity> print chatmessages [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatmessages [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>+
|
||||
[showdeleted [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
|
||||
@@ -482,7 +832,8 @@ gam user user@domain.com info chatevent name spaces/AAAAsUhqjkg/spaceEvents/MTcx
|
||||
|
||||
### Display information about all chat events in a chat space
|
||||
```
|
||||
gam <UserTypeEntity> show chatevents <ChatSpace>
|
||||
gam <UserTypeEntity> show chatevents
|
||||
<ChatSpace>+
|
||||
filter <String>
|
||||
[formatjson]
|
||||
```
|
||||
@@ -490,7 +841,8 @@ By default, Gam displays the information as an indented list of keys and values.
|
||||
* `formatjson` - Display the fields in JSON format.
|
||||
|
||||
```
|
||||
gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>+
|
||||
filter <String>
|
||||
[formatjson [quotechar <Character>]]
|
||||
```
|
||||
|
||||
@@ -244,7 +244,7 @@ gam <UserTypeEntity> draft message
|
||||
* `file|htmlfile <FileName> [charset <Charset>]` - Read the message from `<FileName>`
|
||||
* `gdoc|ghtml <UserGoogleDoc>` - Read the message from `<UserGoogleDoc>`
|
||||
* `gcsdoc|gcshtml <StorageBucketObjectName>` - Read the message from the Google Cloud Storage file `<StorageBucketObjectName>`
|
||||
* `emlfile <FileName> [charset <Charset>]` - Read the message from the EML message file `<FileName>`. SMTP headers specified in the command will replace those in the message file. The default `chatser` is `ascii`.
|
||||
* `emlfile <FileName> [charset <Charset>]` - Read the message from the EML message file `<FileName>`. SMTP headers specified in the command will replace those in the message file. The default `charset` is `ascii`.
|
||||
|
||||
The `<SMTPDateHeader> <Time>` argument requires `<Time>` values which will be converted to RFC2822 dates. If you have these headers with values that
|
||||
are not in `<Time>` format, use the argument `header <SMTPDateHeader> <String>`.
|
||||
@@ -261,7 +261,7 @@ Your HTML message will contain lines like this:
|
||||
<img src="cid:image2"/>
|
||||
```
|
||||
|
||||
Your command line will have: `embedimage file1.jpg image1` embedimage file2.jpg image2`
|
||||
Your command line will have: `embedimage file1.jpg image1 embedimage file2.jpg image2`
|
||||
|
||||
## Import messages
|
||||
Import a message into a user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP.
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
Print the current version of Gam with details
|
||||
```
|
||||
gam version
|
||||
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
GAMADV-XTD3 6.77.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
Ross Scroggs <ross.scroggs@gmail.com>
|
||||
Python 3.12.3 64-bit final
|
||||
MacOS Sonoma 14.4.1 x86_64
|
||||
Python 3.12.4 64-bit final
|
||||
MacOS Sonoma 14.5 x86_64
|
||||
Path: /Users/Admin/bin/gamadv-xtd3
|
||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||
Time: 2023-06-02T21:10:00-07:00
|
||||
@@ -15,10 +15,10 @@ Time: 2023-06-02T21:10:00-07:00
|
||||
Print the current version of Gam with details and time offset information
|
||||
```
|
||||
gam version timeoffset
|
||||
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
GAMADV-XTD3 6.77.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
Ross Scroggs <ross.scroggs@gmail.com>
|
||||
Python 3.12.3 64-bit final
|
||||
MacOS Sonoma 14.4.1 x86_64
|
||||
Python 3.12.4 64-bit final
|
||||
MacOS Sonoma 14.5 x86_64
|
||||
Path: /Users/Admin/bin/gamadv-xtd3
|
||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||
Your system time differs from www.googleapis.com by less than 1 second
|
||||
@@ -27,17 +27,17 @@ Your system time differs from www.googleapis.com by less than 1 second
|
||||
Print the current version of Gam with extended details and SSL information
|
||||
```
|
||||
gam version extended
|
||||
GAMADV-XTD3 6.76.09 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
GAMADV-XTD3 6.77.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||
Ross Scroggs <ross.scroggs@gmail.com>
|
||||
Python 3.12.3 64-bit final
|
||||
MacOS Sonoma 14.4.1 x86_64
|
||||
Python 3.12.4 64-bit final
|
||||
MacOS Sonoma 14.5 x86_64
|
||||
Path: /Users/Admin/bin/gamadv-xtd3
|
||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||
Time: 2023-06-02T21:10:00-07:00
|
||||
Your system time differs from admin.googleapis.com by less than 1 second
|
||||
OpenSSL 3.1.1 30 May 2023
|
||||
cryptography 41.0.1
|
||||
filelock 3.12.3
|
||||
filelock 3.12.4
|
||||
google-api-python-client 2.88.0
|
||||
google-auth-httplib2 0.1.0
|
||||
google-auth-oauthlib 1.0.0
|
||||
@@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64
|
||||
Path: /Users/Admin/bin/gamadv-xtd3
|
||||
Version Check:
|
||||
Current: 5.35.08
|
||||
Latest: 6.76.09
|
||||
Latest: 6.77.00
|
||||
echo $?
|
||||
1
|
||||
```
|
||||
@@ -72,7 +72,7 @@ echo $?
|
||||
Print the current version number without details
|
||||
```
|
||||
gam version simple
|
||||
6.76.09
|
||||
6.77.00
|
||||
```
|
||||
In Linux/MacOS you can do:
|
||||
```
|
||||
@@ -82,10 +82,10 @@ echo $VER
|
||||
Print the current version of Gam and address of this Wiki
|
||||
```
|
||||
gam help
|
||||
GAM 6.76.09 - https://github.com/taers232c/GAMADV-XTD3
|
||||
GAM 6.77.00 - https://github.com/taers232c/GAMADV-XTD3
|
||||
Ross Scroggs <ross.scroggs@gmail.com>
|
||||
Python 3.12.3 64-bit final
|
||||
MacOS Sonoma 14.4.1 x86_64
|
||||
Python 3.12.4 64-bit final
|
||||
MacOS Sonoma 14.5 x86_64
|
||||
Path: /Users/Admin/bin/gamadv-xtd3
|
||||
Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, customer_id: my_customer, domain: domain.com
|
||||
Time: 2023-06-02T21:10:00-07:00
|
||||
|
||||
@@ -589,6 +589,12 @@ update_cros_ou_with_id
|
||||
Set to true if you are getting the following error:
|
||||
`400: invalidInput - Invalid Input: Inconsistent Orgunit id and path in request`
|
||||
Default: False
|
||||
use_chat_admin_access
|
||||
When False, GAM uses user access when making Chat API calls. For calls that support admin access,
|
||||
this can be overridden with the asadmin command line option.
|
||||
When True, GAM uses admin access for Chat API calls that support admin access;
|
||||
other calls will use user access.
|
||||
Default: False
|
||||
use_classroom_owner_access
|
||||
How is classroom member information obtained and how are classroom members deleted.
|
||||
Client access does not provide complete information about non-domain students/teachers.
|
||||
|
||||
@@ -259,6 +259,8 @@ If an item contains spaces, it should be surrounded by ".
|
||||
4tb | drive4tb | googledrivestorage4tb | Google-Drive-storage-4TB |
|
||||
8tb | drive8tb | googledrivestorage8tb | Google-Drive-storage-8TB |
|
||||
16tb | drive16tb | googledrivestorage16tb | Google-Drive-storage-16TB |
|
||||
aimeetingsandmessaging | 1010470007 | AI Meetings and Messaging |
|
||||
aisecurity | 1010470006 | AI Security |
|
||||
appsheetcore | 1010380001 | AppSheet Core |
|
||||
appsheetstandard | appsheetenterprisestandard | 1010380002 | AppSheet Enterprise Standard |
|
||||
appsheetplus | appsheetenterpriseplus | 1010380003 | AppSheet Enterprise Plus |
|
||||
@@ -270,6 +272,8 @@ If an item contains spaces, it should be surrounded by ".
|
||||
cloudsearch | 1010350001 | Cloud Search |
|
||||
eeu | 1010490001 | SKU Endpoint Education Upgrade |
|
||||
geminibiz | 1010470003 | Gemini Business |
|
||||
geminiedu | 1010470004 | Gemini Education |
|
||||
geminiedupremium| 1010470005 | Gemini Education Premium |
|
||||
geminient| duetai | 1010470001 | Gemini Enterprise |
|
||||
gsuitebasic | gafb | gafw | basic | Google-Apps-For-Business |
|
||||
gsuitebusiness | gau | gsb | unlimited | Google-Apps-Unlimited |
|
||||
@@ -1341,7 +1345,8 @@ gam create project [admin <EmailAddress>] [project <ProjectID>]
|
||||
[sadescription <ServiceAccountDescription>]
|
||||
[(algorithm KEY_ALG_RSA_1024|KEY_ALG_RSA_2048)|
|
||||
(localkeysize 1024|2048|4096 [validityhours <Number>])|
|
||||
(yubikey yubikey_pin yubikey_slot AUTHENTICATION|SIGNATURE yubikey_serialnumber <Number>)]
|
||||
(yubikey yubikey_pin yubikey_slot AUTHENTICATION|SIGNATURE yubikey_serialnumber <Number>)|
|
||||
(nokey)]
|
||||
gam use project [<EmailAddress>] [<ProjectID>]
|
||||
gam use project [admin <EmailAddress>] [project <ProjectID>]
|
||||
[saname <ServiceAccountName>] [sadisplayname <ServiceAccountDisplayName>]
|
||||
@@ -1580,6 +1585,7 @@ gam calendar <CalendarEntity> printacl [todrive <ToDriveAttribute>*]
|
||||
<EventType> ::=
|
||||
default|
|
||||
focustime|
|
||||
fromgmail|
|
||||
outofoffice|
|
||||
workinglocation
|
||||
<EventTypeList> ::= "<EventType>(,<EventType>)*"
|
||||
@@ -1988,7 +1994,7 @@ gam revoke browsertoken <BrowserTokenPermanentID>
|
||||
state|
|
||||
token|
|
||||
tokenpermanentid
|
||||
<BrowserTokenFieldNameList> ::= "<BrowseTokenFieldName>(,<BrowserTokenFieldName>)*"
|
||||
<BrowserTokenFieldNameList> ::= "<BrowserTokenFieldName>(,<BrowserTokenFieldName>)*"
|
||||
|
||||
gam show browsertokens
|
||||
([ou|org|orgunit|browserou <OrgUnitPath>] [(query <QueryBrowserToken>)|(queries <QueryBrowserTokenList>)))
|
||||
@@ -2019,20 +2025,55 @@ gam print browsertokens [todrive <ToDriveAttribute>*]
|
||||
|
||||
gam setup chat
|
||||
|
||||
<ChatSpaceFieldName> ::=
|
||||
accesssettings|
|
||||
admininstalled|
|
||||
createtime|
|
||||
displayname|
|
||||
externaluserallowed|
|
||||
importmode|
|
||||
lastactivetime|
|
||||
membershipcount|
|
||||
name|
|
||||
singleuserbotdm|
|
||||
spacedetails|
|
||||
spacehistorystate|
|
||||
spacethreadingstate|threaded|
|
||||
spacetype|type|
|
||||
spaceuri
|
||||
<ChatSpaceFieldNameList> ::= "<ChatSpaceFieldName>(,<ChatSpaceFieldName>)*"
|
||||
|
||||
gam info chatspace <ChatSpace>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam show chatspaces
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam print chatspaces [todrive <ToDriveAttribute>*]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
<ChatMemberFieldName> ::=
|
||||
createtime|
|
||||
deletetime|
|
||||
groupmember|
|
||||
member|
|
||||
name|
|
||||
role|
|
||||
state|
|
||||
<ChatMemberFieldNameList> ::= "<ChatMemberFieldName>(,<ChatMemberFieldName>)*"
|
||||
|
||||
gam info chatmember member <ChatMember>
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
gam show chatmembers <ChatSpace>
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
gam print chatmembers [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
(addcsvdata <FieldName> <String>)*
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam create chatmessage <ChatSpace>
|
||||
@@ -2044,7 +2085,37 @@ gam update chatmessage name <ChatMessage>
|
||||
<ChatContent>
|
||||
gam delete chatmessage name <ChatMessage>
|
||||
|
||||
<ChatMessageFieldName> ::=
|
||||
accessorywidgets|
|
||||
actionresponse|
|
||||
annotations|
|
||||
argumenttext|
|
||||
attachedgifs|
|
||||
attachment|
|
||||
cards|
|
||||
cardsv2|
|
||||
clientassignedmessageid|
|
||||
createtime|
|
||||
deletetime|
|
||||
deletionmetadata|
|
||||
emojireactionsummaries|
|
||||
fallbacktext|
|
||||
formattedtext|
|
||||
lastupdatetime|
|
||||
matchedurl|
|
||||
name|
|
||||
privatemessageviewer|
|
||||
quotedmessagemetadata|
|
||||
sender|
|
||||
slashcommand|
|
||||
space|
|
||||
text|
|
||||
thread|
|
||||
threadreply
|
||||
<ChatMessageFieldNameList> ::= "<ChatMessageFieldName>(,<ChatMessageFieldName>)*"
|
||||
|
||||
gam info chatmessage name <ChatMessage>
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson]
|
||||
|
||||
gam info chatevent name <ChatEvent>
|
||||
@@ -2864,6 +2935,7 @@ gam create|add course [id|alias <CourseAlias>] <CourseAttribute>*
|
||||
[announcementstates <CourseAnnouncementStateList>]
|
||||
[materialstates <CourseMaterialStateList>]
|
||||
[workstates <CourseWorkStateList>]
|
||||
[individualstudentassignments copy|delete|maptoall]
|
||||
[removeduedate [<Boolean>]]
|
||||
[mapsharemodestudentcopy edit|none|view]
|
||||
[copymaterialsfiles [<Boolean>]]
|
||||
@@ -2876,6 +2948,7 @@ gam update course <CourseID> <CourseAttribute>+
|
||||
[announcementstates <CourseAnnouncementStateList>]
|
||||
[materialstates <CourseMaterialStateList>]
|
||||
[workstates <CourseWorkStateList>]
|
||||
[individualstudentassignments copy|delete|maptoall]
|
||||
[removeduedate [<Boolean>]]
|
||||
[mapsharemodestudentcopy edit|none|view]
|
||||
[copymaterialsfiles [<Boolean>]]
|
||||
@@ -2890,6 +2963,7 @@ gam update courses <CourseEntity> <CourseAttribute>+
|
||||
[announcementstates <CourseAnnouncementStateList>]
|
||||
[materialstates <CourseMaterialStateList>]
|
||||
[workstates <CourseWorkStateList>]
|
||||
[individualstudentassignments copy|delete|maptoall]
|
||||
[removeduedate [<Boolean>]]
|
||||
[mapsharemodestudentcopy edit|none|view]
|
||||
[copymaterialsfiles [<Boolean>]]
|
||||
@@ -4221,7 +4295,8 @@ gam report usage customer [todrive <ToDriveAttribute>*]
|
||||
rules|
|
||||
saml|
|
||||
token|tokens|oauthtoken|
|
||||
useraccounts
|
||||
useraccounts|
|
||||
vault
|
||||
|
||||
gam report <ActivityApplicationName> [todrive <ToDriveAttribute>*]
|
||||
[(user all|<UserItem>)|(orgunit|org|ou <OrgUnitPath> [showorgunit])|(select <UserTypeEntity>)]
|
||||
@@ -5348,7 +5423,7 @@ gam update user <UserItem> [ignorenullpassword] <UserAttribute>*
|
||||
[columndelimiter <Character>] [noescapechar <Boolean>] [quotechar <Character>]
|
||||
[fields <FieldNameList>] [keyfield <FieldName>] [datafield <FieldName>]]
|
||||
[immutableous <OrgUnitEntity>]|
|
||||
[clearschema <SchemaName> | <SchemaNameField>]
|
||||
[clearschema <SchemaName>|<SchemaNameField>]
|
||||
[createifnotfound] [notfoundpassword (random [<Integer>])|blocklogin|<Password>]
|
||||
(groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
|
||||
[alias|aliases <EmailAddressList>]
|
||||
@@ -5416,7 +5491,7 @@ gam <UserTypeEntity> update users [ignorenullpassword] <UserAttribute>*
|
||||
[verifynotinvitable] [noactionifalias]
|
||||
[updateprimaryemail <RegularExpression> <EmailReplacement>]
|
||||
[updateoufromgroup <CSVFileInput> [keyfield <FieldName>] [datafield <FieldName>]]
|
||||
[clearschema <SchemaName> | <SchemaNameField>]
|
||||
[clearschema <SchemaName>|<SchemaNameField>]
|
||||
[createifnotfound] [notfoundpassword (random [<Integer>])|blocklogin|<Password>]
|
||||
(groups [<GroupRole>] [[delivery] <DeliverySetting>] <GroupEntity>)*
|
||||
[alias|aliases <EmailAddressList>]
|
||||
@@ -5554,6 +5629,7 @@ gam <UserTypeEntity> delete backupcodes|verificationcodes
|
||||
gam <UserTypeEntity> show backupcodes|verificationcodes
|
||||
gam <UserTypeEntity> print backupcodes|verificationcodes [todrive <ToDriveAttribute>*]
|
||||
[delimiter <Character>]
|
||||
[countsonly]
|
||||
|
||||
# Users - Calendars
|
||||
|
||||
@@ -5970,15 +6046,60 @@ gam <UserTypeEntity> update chatspace <ChatSpace>
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> delete chatspace <ChatSpace>
|
||||
|
||||
gam <UserItem> update chatspace asadmin <ChatSpace>
|
||||
[restricted|(audience <String>)]|
|
||||
([displayname <String>]
|
||||
[type space]
|
||||
[description <String>] [guidelines|rules <String>]
|
||||
[history <Boolean>])
|
||||
[formatjson]
|
||||
gam <UserItem> delete chatspace asadmin <ChatSpace>
|
||||
|
||||
<ChatSpaceFieldName> ::=
|
||||
accesssettings|
|
||||
admininstalled|
|
||||
createtime|
|
||||
displayname|
|
||||
externaluserallowed|
|
||||
importmode|
|
||||
lastactivetime|
|
||||
membershipcount|
|
||||
name|
|
||||
singleuserbotdm|
|
||||
spacedetails|
|
||||
spacehistorystate|
|
||||
spacethreadingstate|threaded|
|
||||
spacetype|type|
|
||||
spaceuri
|
||||
<ChatSpaceFieldNameList> ::= "<ChatSpaceFieldName>(,<ChatSpaceFieldName>)*"
|
||||
|
||||
gam <UserTypeEntity> info chatspace <ChatSpace>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> info chatspacedm <UserItem>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> show chatspaces
|
||||
[types <ChatSpaceTypeList>]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
|
||||
[types <ChatSpaceTypeList>]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam <UserItem> info chatspace asadmin <ChatSpace>
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserItem> show chatspaces asadmin
|
||||
[query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
|
||||
[query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[fields <ChatSpaceFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam <UserTypeEntity> create chatmember <ChatSpace>
|
||||
@@ -5996,14 +6117,75 @@ gam <UserTypeEntity> update chatmember <ChatSpace>
|
||||
gam <UserTypeEntity> modify chatmember
|
||||
role member|manager
|
||||
members <ChatMemberList>
|
||||
gam <UserTypeEntity> sync chatmembers <ChatSpace>
|
||||
[role member|manager] [type human|bot]
|
||||
[addonly|removeonly]
|
||||
[preview [actioncsv]]
|
||||
(users <UserTypeEntity>)* (groups <GroupEntity>)*
|
||||
|
||||
gam <UserTypeEntity> info chatmember members <ChatMemberList>
|
||||
gam <UserItem> create chatmember asadmin <ChatSpace>
|
||||
[type human|bot] [role member|manager]
|
||||
(user <UserItem>)* (members <UserTypeEntity>)*
|
||||
(group <GroupItem>)* (groups <GroupEntity>)*
|
||||
[formatjson|returnidonly]
|
||||
gam <UserItem> remove chatmember asadmin members <ChatMemberList>
|
||||
gam <UserItem> delete chatmember asadmin <ChatSpace>
|
||||
((user <UserItem>)|(members <UserTypeEntity>)|
|
||||
(group <GroupItem>)|(groups <GroupEntity>))+
|
||||
gam <UserItem> update chatmember asadmin <ChatSpace>
|
||||
role member|manager
|
||||
((user <UserItem>)|(members <UserTypeEntity>))+
|
||||
gam <UserItem> modify chatmember asadmin
|
||||
role member|manager
|
||||
members <ChatMemberList>
|
||||
gam <UserItem> sync chatmembers asadmin <ChatSpace>
|
||||
[role member|manager] [type human|bot]
|
||||
[addonly|removeonly]
|
||||
[preview [actioncsv]]
|
||||
(users <UserTypeEntity>)* (groups <GroupEntity>)*
|
||||
|
||||
<ChatMemberFieldName> ::=
|
||||
createtime|
|
||||
deletetime|
|
||||
groupmember|
|
||||
member|
|
||||
name|
|
||||
role|
|
||||
state|
|
||||
<ChatMemberFieldNameList> ::= "<ChatMemberFieldName>(,<ChatMemberFieldName>)*"
|
||||
|
||||
gam <UserTypeEntity> info chatmember
|
||||
members <ChatMemberList>
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> show chatmembers <ChatSpace>
|
||||
gam <UserTypeEntity> show chatmembers
|
||||
<ChatSpace>* [types <ChatSpaceTypeList>]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> print chatmembers [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatmembers [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>* [types <ChatSpaceTypeList>]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
(addcsvdata <FieldName> <String>)*
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam <UserItem> info chatmember asadmin
|
||||
members <ChatMemberList>
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserItem> show chatmembers asadmin
|
||||
<ChatSpace>* [query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserItem> print chatmembers asadmin [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>* [query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMemberFieldNameList>]
|
||||
(addcsvdata <FieldName> <String>)*
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam <UserTypeEntity> create chatmessage <ChatSpace>
|
||||
@@ -6015,21 +6197,57 @@ gam <UserTypeEntity> update chatmessage name <ChatMessage>
|
||||
<ChatContent>
|
||||
gam <UserTypeEntity> delete chatmessage name <ChatMessage>
|
||||
|
||||
<ChatMessageFieldName> ::=
|
||||
accessorywidgets|
|
||||
actionresponse|
|
||||
annotations|
|
||||
argumenttext|
|
||||
attachedgifs|
|
||||
attachment|
|
||||
cards|
|
||||
cardsv2|
|
||||
clientassignedmessageid|
|
||||
createtime|
|
||||
deletetime|
|
||||
deletionmetadata|
|
||||
emojireactionsummaries|
|
||||
fallbacktext|
|
||||
formattedtext|
|
||||
lastupdatetime|
|
||||
matchedurl|
|
||||
name|
|
||||
privatemessageviewer|
|
||||
quotedmessagemetadata|
|
||||
sender|
|
||||
slashcommand|
|
||||
space|
|
||||
text|
|
||||
thread|
|
||||
threadreply
|
||||
<ChatMessageFieldNameList> ::= "<ChatMessageFieldName>(,<ChatMessageFieldName>)*"
|
||||
|
||||
gam <UserTypeEntity> info chatmessage name <ChatMessage>
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> show chatmessages <ChatSpace>
|
||||
gam <UserTypeEntity> show chatmessages
|
||||
<ChatSpace>+
|
||||
[showdeleted [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> print chatmessages [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatmessages [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>+
|
||||
[showdeleted [<Boolean>]] [filter <String>]
|
||||
[fields <ChatMessageFieldNameList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam <UserTypeEntity> info chatevent name <ChatEvent>
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> show chatevents <ChatSpace>
|
||||
gam <UserTypeEntity> show chatevents
|
||||
<ChatSpace>+
|
||||
filter <String>
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*]
|
||||
<ChatSpace>+
|
||||
filter <String>
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
|
||||
@@ -2,6 +2,94 @@
|
||||
|
||||
Merged GAM-Team version
|
||||
|
||||
6.77.00
|
||||
|
||||
Added option `individualstudentassignments copy|delete|maptoall` to `gam create|update course ... copyfrom`
|
||||
that controls how individual student assignments in the `copyfrom` course are processed.
|
||||
* `individualstudentassignments copy` - Copy individual student assignments; this is the default. You will get an error if the student is not a member of the course.
|
||||
* `individualstudentassignments delete` - Delete individual student assignments
|
||||
* `individualstudentassignments maptoall` - Map individual student assignments to all student assignments
|
||||
|
||||
Upgraded to Python 3.12.4 where possible.
|
||||
|
||||
Added option `asadmin` to the following Chat commands that allows admin access.
|
||||
These commands are in Developer Preview, your project must have Developer Preview enabled for the Chat API
|
||||
in order to use these commands.
|
||||
```
|
||||
gam <UserItem> delete chatspace asadmin
|
||||
gam <UserItem> update chatspace asadmin
|
||||
gam <UserItem> info chatspace asadmin
|
||||
gam <UserItem> print|show chatspaces asadmin
|
||||
gam <UserItem> create chatmember asadmin
|
||||
gam <UserItem> delete|remove chatmember asadmin
|
||||
gam <UserItem> update|modify chatmember asadmin
|
||||
gam <UserItem> sync chatmembers asadmin
|
||||
gam <UserItem> info chatmember asadmin
|
||||
gam <UserItem> print|show chatmembers|asadmin
|
||||
```
|
||||
|
||||
* See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Chat
|
||||
|
||||
Added `use_chat_admin_access` Boolean variable to `gam.cfg`.
|
||||
```
|
||||
* When False, GAM uses user access when making all Chat API calls. For calls that support admin access,
|
||||
this can be overridden with the asadmin command line option.
|
||||
* When True, GAM uses admin access for Chat API calls that support admin access; other calls will use user access.
|
||||
* Default: False
|
||||
```
|
||||
|
||||
6.76.15
|
||||
|
||||
Fixed bug in `gam <UserTypeEntity> print|show filesharecounts summary only summaryuser <String>`
|
||||
that printed an erroneous row if `<UserTypeEntity>` specified a single user and `<String>` matched
|
||||
the user's email address.
|
||||
|
||||
6.76.14
|
||||
|
||||
Added the following Gemini License SKUs:
|
||||
```
|
||||
1010470004 - Gemini Education
|
||||
1010470005 - Gemini Education Premium
|
||||
```
|
||||
|
||||
6.76.13
|
||||
|
||||
Updated `gam <UserTypeEntity> show fileinfo ... showlabels` and `gam <UserTypeEntity> print filelist ... showlabels`
|
||||
to retry these errors that occur when trying to get the drive labels for a file/folder.
|
||||
```
|
||||
ERROR: 500: unknownError - Unknown Error.
|
||||
ERROR: 503: serviceNotAvailable - The service is currently unavailable.
|
||||
```
|
||||
|
||||
Upgraded to OpenSSL 3.3.1 where possible.
|
||||
|
||||
6.76.12
|
||||
|
||||
Fixed bug in `gam <UserTypeEntity> print|show chatspaces` that caused the following error:
|
||||
```
|
||||
ERROR: Got an unexpected keyword argument orderBy
|
||||
```
|
||||
|
||||
6.76.11
|
||||
|
||||
Thanks to Jay, added `gam report vault`.
|
||||
|
||||
Thanks to Jay, added the following Gemini License SKUs:
|
||||
```
|
||||
1010470006 - AI Security
|
||||
1010470007 - AI Meetings and Messaging
|
||||
```
|
||||
|
||||
Updated `gam <UserTypeEntity> print filelist ... showshareddrivepermissions` to display
|
||||
progress messages to stderr as a separate API call must be made for every file/folder on the Shared Drive
|
||||
to get its permissions. As this can take a long time, the progress messages indicate that progress is being made.
|
||||
|
||||
6.76.10
|
||||
|
||||
Added `fromgmail` to `<EventType>` that can be used in `gam calendars <CalendarEntity> print|show events ... eventtype fromgmail`.
|
||||
|
||||
* See: https://workspaceupdates.googleblog.com/2024/05/google-calendar-api-event-type-fromgmail.html
|
||||
|
||||
6.76.09
|
||||
|
||||
Updated `gam update|delete|info adminrole` to handle the following error:
|
||||
|
||||
4880
src/chat-v1.json
Normal file
4880
src/chat-v1.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -10,9 +10,11 @@ from gam.gamlib.glverlibs import GAM_VER_LIBS
|
||||
datas = []
|
||||
for pkg in GAM_VER_LIBS:
|
||||
datas += copy_metadata(pkg, recursive=True)
|
||||
datas += [('cbcm-v1.1beta1.json', '.')]
|
||||
datas += [('contactdelegation-v1.json', '.')]
|
||||
datas += [('admin-directory_v1.1beta1.json', '.')]
|
||||
datas += [('cbcm-v1.1beta1.json', '.')]
|
||||
datas += [('chat-v1.json', '.')]
|
||||
datas += [('contactdelegation-v1.json', '.')]
|
||||
datas += [('datastudio-v1.json', '.')]
|
||||
datas += [('cacerts.pem', '.')]
|
||||
hiddenimports = [
|
||||
'gam.auth.yubikey',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
4880
src/gam/chat-v1.json
Normal file
4880
src/gam/chat-v1.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -34,6 +34,7 @@ CHAT_MESSAGES = 'chatmessages'
|
||||
CHAT_SPACES = 'chatspaces'
|
||||
CHAT_SPACES_ADMIN = 'chatspacesadmin'
|
||||
CHAT_SPACES_DELETE = 'chatspacesdelete'
|
||||
CHAT_SPACES_DELETE_ADMIN = 'chatspacesdeleteadmin'
|
||||
CHROMEMANAGEMENT = 'chromemanagement'
|
||||
CHROMEMANAGEMENT_APPDETAILS = 'chromemanagementappdetails'
|
||||
CHROMEMANAGEMENT_TELEMETRY = 'chromemanagementtelemetry'
|
||||
@@ -196,14 +197,15 @@ _INFO = {
|
||||
ANALYTICS_ADMIN: {'name': 'Analytics Admin API', 'version': 'v1beta', 'v2discovery': True},
|
||||
CALENDAR: {'name': 'Calendar API', 'version': 'v3', 'v2discovery': True, 'mappedAPI': 'calendar-json'},
|
||||
CBCM: {'name': 'Chrome Browser Cloud Management API', 'version': 'v1.1beta1', 'v2discovery': True, 'localjson': True},
|
||||
CHAT: {'name': 'Chat API', 'version': 'v1', 'v2discovery': True},
|
||||
CHAT_EVENTS: {'name': 'Chat API - Events', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT_MEMBERSHIPS: {'name': 'Chat API - Memberships', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT_MEMBERSHIPS_ADMIN: {'name': 'Chat API - Admin Memberships', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT_MESSAGES: {'name': 'Chat API - Messages', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES: {'name': 'Chat API - Spaces', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES_ADMIN: {'name': 'Chat API - Admin Spaces', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES_DELETE: {'name': 'Chat API - Spaces Delete', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT},
|
||||
CHAT: {'name': 'Chat API', 'version': 'v1', 'v2discovery': True, 'localjson': True},
|
||||
CHAT_EVENTS: {'name': 'Chat API - Events', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_MEMBERSHIPS: {'name': 'Chat API - Memberships', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_MEMBERSHIPS_ADMIN: {'name': 'Chat API - Memberships Admin', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_MESSAGES: {'name': 'Chat API - Messages', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES: {'name': 'Chat API - Spaces', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES_ADMIN: {'name': 'Chat API - Spaces Admin', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES_DELETE: {'name': 'Chat API - Spaces Delete', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CHAT_SPACES_DELETE_ADMIN: {'name': 'Chat API - Spaces Delete Admin', 'version': 'v1', 'v2discovery': True, 'localjson': True, 'mappedAPI': CHAT},
|
||||
CLASSROOM: {'name': 'Classroom API', 'version': 'v1', 'v2discovery': True},
|
||||
CHROMEMANAGEMENT: {'name': 'Chrome Management API', 'version': 'v1', 'v2discovery': True},
|
||||
CHROMEMANAGEMENT_APPDETAILS: {'name': 'Chrome Management API - AppDetails', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHROMEMANAGEMENT},
|
||||
@@ -518,10 +520,10 @@ _SVCACCT_SCOPES = [
|
||||
'api': CHAT_MEMBERSHIPS,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.memberships'},
|
||||
# {'name': 'Chat API - Admin Memberships',
|
||||
# 'api': CHAT_MEMBERSHIPS_ADMIN,
|
||||
# 'subscopes': READONLY,
|
||||
# 'scope': 'https://www.googleapis.com/auth/chat.admin.memberships'},
|
||||
{'name': 'Chat API - Memberships Admin',
|
||||
'api': CHAT_MEMBERSHIPS_ADMIN,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.admin.memberships'},
|
||||
{'name': 'Chat API - Messages',
|
||||
'api': CHAT_MESSAGES,
|
||||
'subscopes': READONLY,
|
||||
@@ -530,14 +532,18 @@ _SVCACCT_SCOPES = [
|
||||
'api': CHAT_SPACES,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.spaces'},
|
||||
# {'name': 'Chat API - Admin Spaces',
|
||||
# 'api': CHAT_SPACES_ADMIN,
|
||||
# 'subscopes': READONLY,
|
||||
# 'scope': 'https://www.googleapis.com/auth/chat.admin.spaces'},
|
||||
{'name': 'Chat API - Spaces Admin',
|
||||
'api': CHAT_SPACES_ADMIN,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.admin.spaces'},
|
||||
{'name': 'Chat API - Spaces Delete',
|
||||
'api': CHAT_SPACES_DELETE,
|
||||
'subscopes': [],
|
||||
'scope': 'https://www.googleapis.com/auth/chat.delete'},
|
||||
{'name': 'Chat API - Spaces Delete Admin',
|
||||
'api': CHAT_SPACES_DELETE_ADMIN,
|
||||
'subscopes': [],
|
||||
'scope': 'https://www.googleapis.com/auth/chat.admin.delete'},
|
||||
{'name': 'Classroom API - Course Announcements',
|
||||
'api': CLASSROOM,
|
||||
'subscopes': READONLY,
|
||||
|
||||
@@ -292,6 +292,8 @@ TODRIVE_USER = 'todrive_user'
|
||||
TRUNCATE_CLIENT_ID = 'truncate_client_id'
|
||||
# Update CrOS org unit with orgUnitId
|
||||
UPDATE_CROS_OU_WITH_ID = 'update_cros_ou_with_id'
|
||||
# Use chat asadmin where possible
|
||||
USE_CHAT_ADMIN_ACCESS = 'use_chat_admin_access'
|
||||
# Use course owner for course access
|
||||
USE_COURSE_OWNER_ACCESS = 'use_course_owner_access'
|
||||
# Use Project ID as Project Name and App Name
|
||||
@@ -434,6 +436,7 @@ Defaults = {
|
||||
TODRIVE_USER: '',
|
||||
TRUNCATE_CLIENT_ID: FALSE,
|
||||
UPDATE_CROS_OU_WITH_ID: FALSE,
|
||||
USE_CHAT_ADMIN_ACCESS: FALSE,
|
||||
USE_COURSE_OWNER_ACCESS: FALSE,
|
||||
USE_PROJECTID_AS_NAME: FALSE,
|
||||
USER_MAX_RESULTS: '500',
|
||||
@@ -595,6 +598,7 @@ VAR_INFO = {
|
||||
TODRIVE_USER: {VAR_TYPE: TYPE_STRING, VAR_LIMITS: (0, None)},
|
||||
TRUNCATE_CLIENT_ID: {VAR_TYPE: TYPE_BOOLEAN},
|
||||
UPDATE_CROS_OU_WITH_ID: {VAR_TYPE: TYPE_BOOLEAN},
|
||||
USE_CHAT_ADMIN_ACCESS: {VAR_TYPE: TYPE_BOOLEAN},
|
||||
USE_COURSE_OWNER_ACCESS: {VAR_TYPE: TYPE_BOOLEAN},
|
||||
USE_PROJECTID_AS_NAME: {VAR_TYPE: TYPE_BOOLEAN},
|
||||
USER_MAX_RESULTS: {VAR_TYPE: TYPE_INTEGER, VAR_LIMITS: (1, 500)},
|
||||
|
||||
@@ -84,6 +84,7 @@ class GamEntity():
|
||||
CHANNEL_PRODUCT = 'chpr'
|
||||
CHANNEL_SKU = 'chsk'
|
||||
CHAT_BOT = 'chbo'
|
||||
CHAT_ADMIN = 'chad'
|
||||
CHAT_EVENT = 'chev'
|
||||
CHAT_MANAGER_USER = 'chgu'
|
||||
CHAT_MEMBER = 'chme'
|
||||
@@ -424,6 +425,7 @@ class GamEntity():
|
||||
CHANNEL_PRODUCT: ['Channel Products', 'Channel Product'],
|
||||
CHANNEL_SKU: ['Channel SKUs', 'Channel SKU'],
|
||||
CHAT_BOT: ['Chat BOTs', 'Chat BOT'],
|
||||
CHAT_ADMIN: ['Chat Admins', 'Chat Admin'],
|
||||
CHAT_EVENT: ['Chat Events', 'Chat Event'],
|
||||
CHAT_MANAGER_USER: ['Chat User Managers', 'Chat User Manager'],
|
||||
CHAT_MESSAGE: ['Chat Messages', 'Chat Message'],
|
||||
|
||||
@@ -186,6 +186,7 @@ BATCH_NOT_PROCESSED_ERRORS = '{0}batch file: {1}, not processed, {2} {3}\n'
|
||||
CALLING_GCLOUD_FOR_REAUTH = 'Calling gcloud for reauth credentials..."\n'
|
||||
CAN_NOT_DELETE_USER_WITH_VAULT_HOLD = '{0}: The user may be (or have recently been) on Google Vault Hold and thus not eligible for deletion. You can check holds with "gam user {1} show vaultholds".'
|
||||
CAN_NOT_BE_SPECIFIED_MORE_THAN_ONCE = 'Argument {0} can not be specified more than once'
|
||||
CHAT_ADMIN_ACCESS_LIMITED_TO_ONE_USER = 'Chat adminaccess|asadmin limited to one user, {0} specified'
|
||||
CHROME_TARGET_VERSION_FORMAT = r'^([a-z]+)-(\d+)$ or ^(\d{1,4}\.){1,4}$'
|
||||
COLUMN_DOES_NOT_MATCH_ANY_INPUT_COLUMNS = '{0} column "{1}" does not match any input columns'
|
||||
COLUMN_DOES_NOT_MATCH_ANY_OUTPUT_COLUMNS = '{0} column "{1}" does not match any output columns'
|
||||
|
||||
@@ -92,6 +92,14 @@ _SKUS = {
|
||||
'product': '101047', 'aliases': ['gwlabs', 'workspacelabs'], 'displayName': 'Google Workspace Labs'},
|
||||
'1010470003': {
|
||||
'product': '101047', 'aliases': ['geminibiz'], 'displayName': 'Gemini Business'},
|
||||
'1010470004': {
|
||||
'product': '101047', 'aliases': ['geminiedu'], 'displayName': 'Gemini Education'},
|
||||
'1010470005': {
|
||||
'product': '101047', 'aliases': ['geminiedupremium'], 'displayName': 'Gemini Education Premium'},
|
||||
'1010470006': {
|
||||
'product': '101047', 'aliases': ['aisecurity'], 'displayName': 'AI Security'},
|
||||
'1010470007': {
|
||||
'product': '101047', 'aliases': ['aimeetingsandmessaging'], 'displayName': 'AI Meetings and Messaging'},
|
||||
'1010490001': {
|
||||
'product': '101049', 'aliases': ['eeu'], 'displayName': 'Endpoint Education Upgrade'},
|
||||
'Google-Apps': {
|
||||
|
||||
Reference in New Issue
Block a user