Fixed bug in gam calendars <CalendarEntity> update event ... removeattendee <EmailAddress>
Some checks are pending
Build and test GAM / build (Win64, build, 8, VC-WIN64A, windows-2022) (push) Waiting to run
Build and test GAM / build (aarch64, build, 2, linux-aarch64, [self-hosted linux arm64]) (push) Waiting to run
Build and test GAM / build (aarch64, build, 4, linux-aarch64, [self-hosted linux arm64], yes) (push) Waiting to run
Build and test GAM / build (aarch64, build, 6, darwin64-arm64, macos-14) (push) Waiting to run
Build and test GAM / build (universal2, build, 7, darwin64-arm64 darwin64-x86_64, macos-14) (push) Waiting to run
Build and test GAM / build (x86_64, build, 1, linux-x86_64, ubuntu-20.04) (push) Waiting to run
Build and test GAM / build (x86_64, build, 3, linux-x86_64, ubuntu-20.04, yes) (push) Waiting to run
Build and test GAM / build (x86_64, build, 5, darwin64-x86_64, macos-12) (push) Waiting to run
Build and test GAM / build (x86_64, test, 10, ubuntu-22.04, 3.9) (push) Waiting to run
Build and test GAM / build (x86_64, test, 11, ubuntu-22.04, 3.10) (push) Waiting to run
Build and test GAM / build (x86_64, test, 12, ubuntu-22.04, 3.11) (push) Waiting to run
Build and test GAM / build (x86_64, test, 9, ubuntu-22.04, 3.8) (push) Waiting to run
Build and test GAM / merge (push) Blocked by required conditions
Build and test GAM / publish (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Check for Google Root CA Updates / check-apis (push) Waiting to run

This commit is contained in:
Ross Scroggs
2024-07-30 11:51:12 -07:00
parent 6b9ac2700e
commit 10e54e49a5
12 changed files with 110 additions and 22 deletions

View File

@ -193,7 +193,8 @@ Select the fields to be displayed:
* `annotated` - Display these fields: deviceId,annotatedAssetId,annotatedLocation,annotatedNotes,annotatedUser * `annotated` - Display these fields: deviceId,annotatedAssetId,annotatedLocation,annotatedNotes,annotatedUser
* `basic` - Display all fields except: browsers, lastDeviceUsers, lastStatusReportTime, machinePloicies; this is the default * `basic` - Display all fields except: browsers, lastDeviceUsers, lastStatusReportTime, machinePloicies; this is the default
* `allfields/full` - Display all fields * `allfields/full` - Display all fields
* `<BrowserFieldName>* [fields <BrowserFieldNameList>]` - Displaya selected list of fields * `<BrowserFieldName>* [fields <BrowserFieldNameList>]` - Display a selected list of fields
* Note that `ou, org and orgunit` are both command line options and field names; use `fields` to include them in the selected list of fields
By default, Gam displays the information as an indented list of keys and values: By default, Gam displays the information as an indented list of keys and values:
- `formatjson` - Display the fields in JSON format. - `formatjson` - Display the fields in JSON format.
@ -232,7 +233,8 @@ Select the fields to be displayed:
* `annotated` - Display these fields: deviceId,annotatedAssetId,annotatedLocation,annotatedNotes,annotatedUser * `annotated` - Display these fields: deviceId,annotatedAssetId,annotatedLocation,annotatedNotes,annotatedUser
* `basic` - Display all fields except: browsers, lastDeviceUsers, lastStatusReportTime, machinePloicies; this is the default * `basic` - Display all fields except: browsers, lastDeviceUsers, lastStatusReportTime, machinePloicies; this is the default
* `allfields/full` - Display all fields * `allfields/full` - Display all fields
* `<BrowserFieldName>* [fields <BrowserFieldNameList>]` - Displaya selected list of fields * `<BrowserFieldName>* [fields <BrowserFieldNameList>]` - Display a selected list of fields
* Note that `ou, org and orgunit` are both command line options and field names; use `fields` to include them in the selected list of fields
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format: 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. * `formatjson` - Display the fields in JSON format.

View File

@ -10,6 +10,11 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
See [Downloads-Installs](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads-Installs) for Windows or other options, including manual installation See [Downloads-Installs](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads-Installs) for Windows or other options, including manual installation
### 6.79.06
Fixed bug in `gam calendars <CalendarEntity> update event ... removeattendee <EmailAddress>` that caused a trap
if the event had no attendees.
### 6.79.05 ### 6.79.05
Updated `gam <UserTypeEntity> empty drivetrash <SharedDriveEntity>` to handle this error that Updated `gam <UserTypeEntity> empty drivetrash <SharedDriveEntity>` to handle this error that

View File

@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
admin@server:/Users/admin$ gam version admin@server:/Users/admin$ gam version
WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found
GAMADV-XTD3 6.79.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.79.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.4 64-bit final Python 3.12.4 64-bit final
MacOS Sonoma 14.5 x86_64 MacOS Sonoma 14.5 x86_64
@ -923,7 +923,7 @@ writes the credentials into the file oauth2.txt.
C:\>del C:\GAMConfig\oauth2.txt C:\>del C:\GAMConfig\oauth2.txt
C:\>gam version C:\>gam version
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
GAMADV-XTD3 6.79.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.79.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.4 64-bit final Python 3.12.4 64-bit final
Windows-10-10.0.17134 AMD64 Windows-10-10.0.17134 AMD64

View File

@ -72,6 +72,22 @@
<OrgUnitPath> ::= /|(/<String>)+ <OrgUnitPath> ::= /|(/<String>)+
<OrgUnitItem> ::= <OrgUnitID>|<OrgUnitPath> <OrgUnitItem> ::= <OrgUnitID>|<OrgUnitPath>
<DriveFileOrderByFieldName> ::=
createddate|createdtime|
folder|
lastviewedbyme|lastviewedbymedate|lastviewedbymetime|lastviewedbyuser|
modifiedbyme|modifiedbymedate|modifiedbymetime|modifiedbyuser|
modifieddate|modifiedtime|
name|
name_natural|
quotabytesused|quotaused|
recency|
sharedwithmedate|sharedwithmetime|
starred|
title|
title_natural|
viewedbymedate|viewedbymetime
<DriveFileACLRole> ::= <DriveFileACLRole> ::=
manager|organizer|owner| manager|organizer|owner|
contentmanager|fileorganizer| contentmanager|fileorganizer|

View File

@ -63,6 +63,10 @@ gam <UserTypeEntity> transfer ownership <DriveFileEntity> <UserItem>
(orderby <DriveOrderByFieldName> [ascending|descending])* (orderby <DriveOrderByFieldName> [ascending|descending])*
[preview] [filepath] [pathdelimiter <Character>] [buildtree] [todrive <ToDriveAttribute>*] [preview] [filepath] [pathdelimiter <Character>] [buildtree] [todrive <ToDriveAttribute>*]
``` ```
`<DriveFileEntity>` specifies a file/folder owned by the source user `<UserTypeEntity>`.
The target user is specified by `<UserItem>`.
By default, there is no change of parents for the transferred files/folders, they remain in their current location. By default, there is no change of parents for the transferred files/folders, they remain in their current location.
* `<DriveFileParentAttribute>` - Specify a parent folder in the My Drive of the target user `<UserItem>`. * `<DriveFileParentAttribute>` - Specify a parent folder in the My Drive of the target user `<UserItem>`.

View File

@ -25,6 +25,22 @@
<UniqueID> ::= id:<String> <UniqueID> ::= id:<String>
<UserItem> ::= <EmailAddress>|<UniqueID>|<String> <UserItem> ::= <EmailAddress>|<UniqueID>|<String>
<DriveFileOrderByFieldName> ::=
createddate|createdtime|
folder|
lastviewedbyme|lastviewedbymedate|lastviewedbymetime|lastviewedbyuser|
modifiedbyme|modifiedbymedate|modifiedbymetime|modifiedbyuser|
modifieddate|modifiedtime|
name|
name_natural|
quotabytesused|quotaused|
recency|
sharedwithmedate|sharedwithmetime|
starred|
title|
title_natural|
viewedbymedate|viewedbymetime
<DrivePermissionsFieldName> ::= <DrivePermissionsFieldName> ::=
additionalroles| additionalroles|
allowfilediscovery| allowfilediscovery|

View File

@ -19,6 +19,22 @@
<EmailAddress> ::= <String>@<DomainName> <EmailAddress> ::= <String>@<DomainName>
<UniqueID> ::= id:<String> <UniqueID> ::= id:<String>
<UserItem> ::= <EmailAddress>|<UniqueID>|<String> <UserItem> ::= <EmailAddress>|<UniqueID>|<String>
<DriveFileOrderByFieldName> ::=
createddate|createdtime|
folder|
lastviewedbyme|lastviewedbymedate|lastviewedbymetime|lastviewedbyuser|
modifiedbyme|modifiedbymedate|modifiedbymetime|modifiedbyuser|
modifieddate|modifiedtime|
name|
name_natural|
quotabytesused|quotaused|
recency|
sharedwithmedate|sharedwithmetime|
starred|
title|
title_natural|
viewedbymedate|viewedbymetime
``` ```
## GAM Data Transfers ## GAM Data Transfers
``` ```

View File

@ -73,6 +73,22 @@
<OrgUnitPath> ::= /|(/<String>)+ <OrgUnitPath> ::= /|(/<String>)+
<OrgUnitItem> ::= <OrgUnitID>|<OrgUnitPath> <OrgUnitItem> ::= <OrgUnitID>|<OrgUnitPath>
<DriveFileOrderByFieldName> ::=
createddate|createdtime|
folder|
lastviewedbyme|lastviewedbymedate|lastviewedbymetime|lastviewedbyuser|
modifiedbyme|modifiedbymedate|modifiedbymetime|modifiedbyuser|
modifieddate|modifiedtime|
name|
name_natural|
quotabytesused|quotaused|
recency|
sharedwithmedate|sharedwithmetime|
starred|
title|
title_natural|
viewedbymedate|viewedbymetime
<DriveFileACLRole> ::= <DriveFileACLRole> ::=
manager|organizer|owner| manager|organizer|owner|
contentmanager|fileorganizer| contentmanager|fileorganizer|

View File

@ -3,7 +3,7 @@
Print the current version of Gam with details Print the current version of Gam with details
``` ```
gam version gam version
GAMADV-XTD3 6.79.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.79.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.4 64-bit final Python 3.12.4 64-bit final
MacOS Sonoma 14.5 x86_64 MacOS Sonoma 14.5 x86_64
@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00
Print the current version of Gam with details and time offset information Print the current version of Gam with details and time offset information
``` ```
gam version timeoffset gam version timeoffset
GAMADV-XTD3 6.79.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.79.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.4 64-bit final Python 3.12.4 64-bit final
MacOS Sonoma 14.5 x86_64 MacOS Sonoma 14.5 x86_64
@ -27,7 +27,7 @@ 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 Print the current version of Gam with extended details and SSL information
``` ```
gam version extended gam version extended
GAMADV-XTD3 6.79.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.79.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.4 64-bit final Python 3.12.4 64-bit final
MacOS Sonoma 14.5 x86_64 MacOS Sonoma 14.5 x86_64
@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64
Path: /Users/Admin/bin/gamadv-xtd3 Path: /Users/Admin/bin/gamadv-xtd3
Version Check: Version Check:
Current: 5.35.08 Current: 5.35.08
Latest: 6.79.05 Latest: 6.79.06
echo $? echo $?
1 1
``` ```
@ -72,7 +72,7 @@ echo $?
Print the current version number without details Print the current version number without details
``` ```
gam version simple gam version simple
6.79.05 6.79.06
``` ```
In Linux/MacOS you can do: In Linux/MacOS you can do:
``` ```
@ -82,7 +82,7 @@ echo $VER
Print the current version of Gam and address of this Wiki Print the current version of Gam and address of this Wiki
``` ```
gam help gam help
GAM 6.79.05 - https://github.com/taers232c/GAMADV-XTD3 GAM 6.79.06 - https://github.com/taers232c/GAMADV-XTD3
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.4 64-bit final Python 3.12.4 64-bit final
MacOS Sonoma 14.5 x86_64 MacOS Sonoma 14.5 x86_64

View File

@ -2,6 +2,11 @@
Merged GAM-Team version Merged GAM-Team version
6.79.06
Fixed bug in `gam calendars <CalendarEntity> update event ... removeattendee <EmailAddress>` that caused a trap
if the event had no attendees.
6.79.05 6.79.05
Updated `gam <UserTypeEntity> empty drivetrash <SharedDriveEntity>` to handle this error that Updated `gam <UserTypeEntity> empty drivetrash <SharedDriveEntity>` to handle this error that

View File

@ -5183,7 +5183,7 @@ def checkGAPIError(e, softErrors=False, retryOnHttpError=False, mapNotFound=True
elif http_status == 409: elif http_status == 409:
if status == 'ALREADY_EXISTS' or 'requested entity already exists' in lmessage: if status == 'ALREADY_EXISTS' or 'requested entity already exists' in lmessage:
error = makeErrorDict(http_status, GAPI.ALREADY_EXISTS, message) error = makeErrorDict(http_status, GAPI.ALREADY_EXISTS, message)
elif status == 'ABORTED': elif status == 'ABORTED' or 'the operation was aborted' in lmessage:
error = makeErrorDict(http_status, GAPI.ABORTED, message) error = makeErrorDict(http_status, GAPI.ABORTED, message)
elif http_status == 412: elif http_status == 412:
if 'insufficient archived user licenses' in lmessage: if 'insufficient archived user licenses' in lmessage:
@ -13659,7 +13659,7 @@ def doReport():
elif myarg in {'range', 'thismonth', 'previousmonths'}: elif myarg in {'range', 'thismonth', 'previousmonths'}:
startEndTime.Get(myarg) startEndTime.Get(myarg)
userCustomerRange = True userCustomerRange = True
elif myarg in {'orgunit', 'org', 'ou'}: elif myarg in {'ou', 'org', 'orgunit'}:
if cd is None: if cd is None:
cd = buildGAPIObject(API.DIRECTORY) cd = buildGAPIObject(API.DIRECTORY)
orgUnit, orgUnitId = getOrgUnitId(cd) orgUnit, orgUnitId = getOrgUnitId(cd)
@ -24832,7 +24832,7 @@ def doInfoPrintShowCrOSTelemetry():
myarg = getArgument() myarg = getArgument()
if csvPF and myarg == 'todrive': if csvPF and myarg == 'todrive':
csvPF.GetTodriveParameters() csvPF.GetTodriveParameters()
elif myarg in ['ou', 'org', 'orgunit', 'limittoou', 'ouandchildren', 'crossn', 'filter']: elif myarg in {'ou', 'org', 'orgunit', 'limittoou', 'ouandchildren', 'crossn', 'filter'}:
if pfilters: if pfilters:
Cmd.Backup() Cmd.Backup()
usageErrorExit(Msg.ONLY_ONE_DEVICE_SELECTION_ALLOWED.format(pfilters[0][1])) usageErrorExit(Msg.ONLY_ONE_DEVICE_SELECTION_ALLOWED.format(pfilters[0][1]))
@ -25038,7 +25038,7 @@ def doMoveBrowsers():
queryTimes = {} queryTimes = {}
while Cmd.ArgumentsRemaining(): while Cmd.ArgumentsRemaining():
myarg = getArgument() myarg = getArgument()
if myarg in ['ou', 'org', 'orgunit']: if myarg in {'ou', 'org', 'orgunit'}:
orgUnitPath = getOrgUnitItem() orgUnitPath = getOrgUnitItem()
elif myarg == 'ids': elif myarg == 'ids':
deviceIds.extend(convertEntityToList(getString(Cmd.OB_DEVICE_ID_LIST, minLen=0))) deviceIds.extend(convertEntityToList(getString(Cmd.OB_DEVICE_ID_LIST, minLen=0)))
@ -25203,7 +25203,7 @@ def doPrintShowBrowsers():
queries = getQueries(myarg) queries = getQueries(myarg)
elif myarg.startswith('querytime'): elif myarg.startswith('querytime'):
queryTimes[myarg] = getTimeOrDeltaFromNow()[0:19] queryTimes[myarg] = getTimeOrDeltaFromNow()[0:19]
elif myarg in ['ou', 'org', 'orgunit', 'browserou']: elif myarg in {'ou', 'org', 'orgunit', 'browserou'}:
orgUnitPath = getOrgUnitItem(pathOnly=True, absolutePath=True) orgUnitPath = getOrgUnitItem(pathOnly=True, absolutePath=True)
elif myarg == 'select': elif myarg == 'select':
_, entityList = getEntityToModify(defaultEntityType=Cmd.ENTITY_BROWSER, browserAllowed=True, crosAllowed=False, userAllowed=False) _, entityList = getEntityToModify(defaultEntityType=Cmd.ENTITY_BROWSER, browserAllowed=True, crosAllowed=False, userAllowed=False)
@ -25312,7 +25312,7 @@ def doCreateBrowserToken():
body = {'token_type': 'CHROME_BROWSER'} body = {'token_type': 'CHROME_BROWSER'}
while Cmd.ArgumentsRemaining(): while Cmd.ArgumentsRemaining():
myarg = getArgument() myarg = getArgument()
if myarg in ['ou', 'org', 'orgunit', 'browserou']: if myarg in {'ou', 'org', 'orgunit', 'browserou'}:
body['org_unit_path'] = getOrgUnitItem(pathOnly=True, absolutePath=True) body['org_unit_path'] = getOrgUnitItem(pathOnly=True, absolutePath=True)
elif myarg in ['expire', 'expires']: elif myarg in ['expire', 'expires']:
body['expire_time'] = getTimeOrDeltaFromNow() body['expire_time'] = getTimeOrDeltaFromNow()
@ -25356,6 +25356,7 @@ BROWSER_TOKEN_FIELDS_CHOICE_MAP = {
'org': 'orgUnitPath', 'org': 'orgUnitPath',
'orgunit': 'orgUnitPath', 'orgunit': 'orgUnitPath',
'orgunitpath': 'orgUnitPath', 'orgunitpath': 'orgUnitPath',
'ou': 'orgUnitPath',
'revoketime': 'revokeTime', 'revoketime': 'revokeTime',
'revokerid': 'revokerId', 'revokerid': 'revokerId',
'state': 'state', 'state': 'state',
@ -25404,7 +25405,7 @@ def doPrintShowBrowserTokens():
queries = getQueries(myarg) queries = getQueries(myarg)
elif myarg.startswith('querytime'): elif myarg.startswith('querytime'):
queryTimes[myarg] = getTimeOrDeltaFromNow()[0:19] queryTimes[myarg] = getTimeOrDeltaFromNow()[0:19]
elif myarg in ['ou', 'org', 'orgunit', 'browserou']: elif myarg in {'ou', 'org', 'orgunit', 'browserou'}:
orgUnitPath = getOrgUnitItem(pathOnly=True, absolutePath=True) orgUnitPath = getOrgUnitItem(pathOnly=True, absolutePath=True)
elif myarg == 'orderby': elif myarg == 'orderby':
orderBy, sortOrder = getOrderBySortOrder(BROWSER_TOKEN_FIELDS_CHOICE_MAP, 'DESCENDING', True) orderBy, sortOrder = getOrderBySortOrder(BROWSER_TOKEN_FIELDS_CHOICE_MAP, 'DESCENDING', True)
@ -28848,7 +28849,7 @@ def _getPrinterAttributes(cd, jsonDeleteFields):
body['displayName'] = getString(Cmd.OB_STRING) body['displayName'] = getString(Cmd.OB_STRING)
elif myarg == 'makeandmodel': elif myarg == 'makeandmodel':
body['makeAndModel'] = getString(Cmd.OB_STRING) body['makeAndModel'] = getString(Cmd.OB_STRING)
elif myarg in ['ou', 'org', 'orgunit', 'orgunitid']: elif myarg in {'ou', 'org', 'orgunit', 'orgunitid'}:
_, body['orgUnitId'] = getOrgUnitId(cd) _, body['orgUnitId'] = getOrgUnitId(cd)
body['orgUnitId'] = body['orgUnitId'][3:] body['orgUnitId'] = body['orgUnitId'][3:]
elif myarg == 'uri': elif myarg == 'uri':
@ -37606,6 +37607,8 @@ def _updateCalendarEvents(origUser, user, origCal, calIds, count, calendarEventE
body['attendees'].append(addAttendee) body['attendees'].append(addAttendee)
elif parameters['attendees']: elif parameters['attendees']:
body['attendees'] = parameters['attendees'] body['attendees'] = parameters['attendees']
else:
body['attendees'] = []
elif parameters['attendees']: elif parameters['attendees']:
body['attendees'] = parameters['attendees'] body['attendees'] = parameters['attendees']
else: else:
@ -39862,7 +39865,7 @@ def doCreateVaultHold():
elif myarg in {'accounts', 'users', 'groups'}: elif myarg in {'accounts', 'users', 'groups'}:
accountsLocation = Cmd.Location() accountsLocation = Cmd.Location()
accounts = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) accounts = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY)
elif myarg in {'orgunit', 'org', 'ou'}: elif myarg in {'ou', 'org', 'orgunit'}:
body['orgUnit'] = {'orgUnitId': getOrgUnitId()[1]} body['orgUnit'] = {'orgUnitId': getOrgUnitId()[1]}
elif _getHoldQueryParameters(myarg, queryParameters): elif _getHoldQueryParameters(myarg, queryParameters):
pass pass
@ -39930,7 +39933,7 @@ def doUpdateVaultHold():
elif myarg in {'removeusers', 'removeaccounts', 'removegroups'}: elif myarg in {'removeusers', 'removeaccounts', 'removegroups'}:
removeAccountsLocation = Cmd.Location() removeAccountsLocation = Cmd.Location()
removeAccounts = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY) removeAccounts = getEntityList(Cmd.OB_EMAIL_ADDRESS_ENTITY)
elif myarg in {'orgunit', 'org', 'ou'}: elif myarg in {'ou', 'org', 'orgunit'}:
body['orgUnit'] = {'orgUnitId': getOrgUnitId()[1]} body['orgUnit'] = {'orgUnitId': getOrgUnitId()[1]}
elif _getHoldQueryParameters(myarg, queryParameters): elif _getHoldQueryParameters(myarg, queryParameters):
pass pass
@ -43136,6 +43139,7 @@ USER_FIELDS_CHOICE_MAP = {
'organizations': 'organizations', 'organizations': 'organizations',
'organisation': 'organizations', 'organisation': 'organizations',
'organisations': 'organizations', 'organisations': 'organizations',
'orgunit': 'orgUnitPath',
'orgunitpath': 'orgUnitPath', 'orgunitpath': 'orgUnitPath',
'otheremail': 'emails', 'otheremail': 'emails',
'otheremails': 'emails', 'otheremails': 'emails',
@ -44941,7 +44945,7 @@ def _getInboundSSOAssignmentArguments(ci, cd, body):
body['signInBehavior'] = {'redirectCondition': 'NEVER'} body['signInBehavior'] = {'redirectCondition': 'NEVER'}
elif myarg == 'group': elif myarg == 'group':
_, body['targetGroup'], _ = convertGroupEmailToCloudID(ci, getString(Cmd.OB_STRING)) _, body['targetGroup'], _ = convertGroupEmailToCloudID(ci, getString(Cmd.OB_STRING))
elif myarg in ['ou', 'org', 'orgunit']: elif myarg in {'ou', 'org', 'orgunit'}:
body['targetOrgUnit'] = getCIOrgunitID(cd, getString(Cmd.OB_ORGUNIT_ITEM)) body['targetOrgUnit'] = getCIOrgunitID(cd, getString(Cmd.OB_ORGUNIT_ITEM))
else: else:
unknownArgumentExit() unknownArgumentExit()
@ -64064,7 +64068,7 @@ def doPrintShowOrgunitSharedDrives():
myarg = getArgument() myarg = getArgument()
if csvPF and myarg == 'todrive': if csvPF and myarg == 'todrive':
csvPF.GetTodriveParameters() csvPF.GetTodriveParameters()
elif myarg in ['ou', 'org', 'orgunit']: elif myarg in {'ou', 'org', 'orgunit'}:
orgUnitPath = getString(Cmd.OB_ORGUNIT_ITEM) orgUnitPath = getString(Cmd.OB_ORGUNIT_ITEM)
else: else:
FJQC.GetFormatJSONQuoteChar(myarg, True) FJQC.GetFormatJSONQuoteChar(myarg, True)
@ -74452,6 +74456,8 @@ MAIN_COMMANDS_OBJ_ALIASES = {
Cmd.ARG_MOBILES: Cmd.ARG_MOBILE, Cmd.ARG_MOBILES: Cmd.ARG_MOBILE,
Cmd.ARG_NICKNAME: Cmd.ARG_ALIAS, Cmd.ARG_NICKNAME: Cmd.ARG_ALIAS,
Cmd.ARG_NICKNAMES: Cmd.ARG_ALIAS, Cmd.ARG_NICKNAMES: Cmd.ARG_ALIAS,
Cmd.ARG_ORGUNIT: Cmd.ARG_ORG,
Cmd.ARG_ORGUNITS: Cmd.ARG_ORGS,
Cmd.ARG_ORGUNITSHAREDDRIVES: Cmd.ARG_ORGUNITSHAREDDRIVE, Cmd.ARG_ORGUNITSHAREDDRIVES: Cmd.ARG_ORGUNITSHAREDDRIVE,
Cmd.ARG_OU: Cmd.ARG_ORG, Cmd.ARG_OU: Cmd.ARG_ORG,
Cmd.ARG_OUS: Cmd.ARG_ORGS, Cmd.ARG_OUS: Cmd.ARG_ORGS,

View File

@ -672,6 +672,8 @@ class GamCLArgs():
ARG_ORG = 'org' ARG_ORG = 'org'
ARG_ORGS = 'orgs' ARG_ORGS = 'orgs'
ARG_ORGTREE = 'orgtree' ARG_ORGTREE = 'orgtree'
ARG_ORGUNIT = 'orgunit'
ARG_ORGUNITS = 'orgunits'
ARG_ORGUNITSHAREDDRIVE = 'orgunitshareddrive' ARG_ORGUNITSHAREDDRIVE = 'orgunitshareddrive'
ARG_ORGUNITSHAREDDRIVES = 'orgunitshareddrives' ARG_ORGUNITSHAREDDRIVES = 'orgunitshareddrives'
ARG_ORPHANS = 'orphans' ARG_ORPHANS = 'orphans'