gam7 7.7.16__py3-none-any.whl → 7.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gam7 might be problematic. Click here for more details.
- gam/__init__.py +186 -12
- gam/gamlib/glclargs.py +4 -1
- {gam7-7.7.16.dist-info → gam7-7.8.0.dist-info}/METADATA +1 -1
- {gam7-7.7.16.dist-info → gam7-7.8.0.dist-info}/RECORD +7 -7
- {gam7-7.7.16.dist-info → gam7-7.8.0.dist-info}/WHEEL +0 -0
- {gam7-7.7.16.dist-info → gam7-7.8.0.dist-info}/entry_points.txt +0 -0
- {gam7-7.7.16.dist-info → gam7-7.8.0.dist-info}/licenses/LICENSE +0 -0
gam/__init__.py
CHANGED
|
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
|
28
|
-
__version__ = '7.
|
|
28
|
+
__version__ = '7.08.00'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -17102,11 +17102,11 @@ DATA_TRANSFER_SORT_TITLES = ['id', 'requestTime', 'oldOwnerUserEmail', 'newOwner
|
|
|
17102
17102
|
|
|
17103
17103
|
# gam print datatransfers|transfers [todrive <ToDriveAttribute>*]
|
|
17104
17104
|
# [olduser|oldowner <UserItem>] [newuser|newowner <UserItem>]
|
|
17105
|
-
# [status <String>] [delimiter <Character>]
|
|
17105
|
+
# [status <String>] [delimiter <Character>]
|
|
17106
17106
|
# (addcsvdata <FieldName> <String>)*
|
|
17107
17107
|
# gam show datatransfers|transfers
|
|
17108
17108
|
# [olduser|oldowner <UserItem>] [newuser|newowner <UserItem>]
|
|
17109
|
-
# [status <String>] [delimiter <Character>]
|
|
17109
|
+
# [status <String>] [delimiter <Character>]
|
|
17110
17110
|
def doPrintShowDataTransfers():
|
|
17111
17111
|
dt = buildGAPIObject(API.DATATRANSFER)
|
|
17112
17112
|
apps = getTransferApplications(dt)
|
|
@@ -29587,7 +29587,7 @@ DEVICE_ORDERBY_CHOICE_MAP = {
|
|
|
29587
29587
|
# <DeviceFieldName>* [fields <DeviceFieldNameList>] [userfields <DeviceUserFieldNameList>]
|
|
29588
29588
|
# [orderby <DeviceOrderByFieldName> [ascending|descending]]
|
|
29589
29589
|
# [all|company|personal|nocompanydevices|nopersonaldevices]
|
|
29590
|
-
# [nodeviceusers]
|
|
29590
|
+
# [nodeviceusers|oneuserperrow]
|
|
29591
29591
|
# [formatjson [quotechar <Character>]]
|
|
29592
29592
|
# [showitemcountonly]
|
|
29593
29593
|
def doPrintCIDevices():
|
|
@@ -29603,7 +29603,7 @@ def doPrintCIDevices():
|
|
|
29603
29603
|
queries = [None]
|
|
29604
29604
|
view, entityType = DEVICE_VIEW_CHOICE_MAP['all']
|
|
29605
29605
|
getDeviceUsers = True
|
|
29606
|
-
showItemCountOnly = False
|
|
29606
|
+
oneUserPerRow = showItemCountOnly = False
|
|
29607
29607
|
while Cmd.ArgumentsRemaining():
|
|
29608
29608
|
myarg = getArgument()
|
|
29609
29609
|
if csvPF and myarg == 'todrive':
|
|
@@ -29618,6 +29618,8 @@ def doPrintCIDevices():
|
|
|
29618
29618
|
view, entityType = DEVICE_VIEW_CHOICE_MAP[myarg]
|
|
29619
29619
|
elif myarg == 'nodeviceusers':
|
|
29620
29620
|
getDeviceUsers = False
|
|
29621
|
+
elif myarg in {'oneuserperrow', 'oneitemperrow'}:
|
|
29622
|
+
getDeviceUsers = oneUserPerRow = True
|
|
29621
29623
|
elif getFieldsList(myarg, DEVICE_FIELDS_CHOICE_MAP, fieldsList, initialField='name'):
|
|
29622
29624
|
pass
|
|
29623
29625
|
elif getFieldsList(myarg, DEVICEUSER_FIELDS_CHOICE_MAP, userFieldsList, initialField='name', fieldsArg='userfields'):
|
|
@@ -29631,6 +29633,8 @@ def doPrintCIDevices():
|
|
|
29631
29633
|
fields = getItemFieldsFromFieldsList('devices', fieldsList)
|
|
29632
29634
|
userFields = getItemFieldsFromFieldsList('deviceUsers', userFieldsList)
|
|
29633
29635
|
substituteQueryTimes(queries, queryTimes)
|
|
29636
|
+
if FJQC.formatJSON and oneUserPerRow:
|
|
29637
|
+
csvPF.SetJSONTitles(['name', 'user.name', 'JSON'])
|
|
29634
29638
|
itemCount = 0
|
|
29635
29639
|
for query in queries:
|
|
29636
29640
|
printGettingAllAccountEntities(entityType, query)
|
|
@@ -29672,13 +29676,26 @@ def doPrintCIDevices():
|
|
|
29672
29676
|
except (GAPI.invalid, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
29673
29677
|
entityActionFailedWarning([entityType, None], str(e))
|
|
29674
29678
|
for device in devices:
|
|
29675
|
-
|
|
29676
|
-
|
|
29677
|
-
|
|
29678
|
-
|
|
29679
|
-
csvPF.
|
|
29680
|
-
|
|
29681
|
-
|
|
29679
|
+
if not oneUserPerRow or 'users' not in device:
|
|
29680
|
+
row = flattenJSON(device, timeObjects=DEVICE_TIME_OBJECTS)
|
|
29681
|
+
if not FJQC.formatJSON:
|
|
29682
|
+
csvPF.WriteRowTitles(row)
|
|
29683
|
+
elif csvPF.CheckRowTitles(row):
|
|
29684
|
+
csvPF.WriteRowNoFilter({'name': device['name'],
|
|
29685
|
+
'JSON': json.dumps(cleanJSON(device, timeObjects=DEVICE_TIME_OBJECTS),
|
|
29686
|
+
ensure_ascii=False, sort_keys=True)})
|
|
29687
|
+
else:
|
|
29688
|
+
deviceUsers = device.pop('users')
|
|
29689
|
+
baserow = flattenJSON(device, timeObjects=DEVICE_TIME_OBJECTS)
|
|
29690
|
+
for deviceUser in deviceUsers:
|
|
29691
|
+
row = flattenJSON({'user': deviceUser}, flattened=baserow.copy(), timeObjects=DEVICE_TIME_OBJECTS)
|
|
29692
|
+
if not FJQC.formatJSON:
|
|
29693
|
+
csvPF.WriteRowTitles(row)
|
|
29694
|
+
elif csvPF.CheckRowTitles(row):
|
|
29695
|
+
device['user'] = deviceUser
|
|
29696
|
+
csvPF.WriteRowNoFilter({'name': device['name'], 'user.name': deviceUser['name'],
|
|
29697
|
+
'JSON': json.dumps(cleanJSON(device, timeObjects=DEVICE_TIME_OBJECTS),
|
|
29698
|
+
ensure_ascii=False, sort_keys=True)})
|
|
29682
29699
|
if showItemCountOnly:
|
|
29683
29700
|
writeStdout(f'{itemCount}\n')
|
|
29684
29701
|
return
|
|
@@ -66033,6 +66050,159 @@ def printShowSharedDriveACLs(users, useDomainAdminAccess=False):
|
|
|
66033
66050
|
def doPrintShowSharedDriveACLs():
|
|
66034
66051
|
printShowSharedDriveACLs([_getAdminEmail()], True)
|
|
66035
66052
|
|
|
66053
|
+
PRINT_ORGANIZER_TYPES = {'group', 'user'}
|
|
66054
|
+
|
|
66055
|
+
# gam [<UserTypeEntity>] print shareddriveorganizers [todrive <ToDriveAttribute>*]
|
|
66056
|
+
# [adminaccess|asadmin] [shareddriveadminquery|query <QuerySharedDrive>]
|
|
66057
|
+
# [matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>]
|
|
66058
|
+
# [domainlist <DomainList>]
|
|
66059
|
+
# [includetypes user|group]
|
|
66060
|
+
# [oneorganizer [<Boolean>]]
|
|
66061
|
+
# [shownorganizerdrives false|true|only]
|
|
66062
|
+
# [includefileorganizers [<Boolean>]]
|
|
66063
|
+
# [delimiter <Character>]
|
|
66064
|
+
def printSharedDriveOrganizers(users, useDomainAdminAccess=False):
|
|
66065
|
+
csvPF = CSVPrintFile(['id', 'name', 'organizers', 'createdTime'], 'sortall')
|
|
66066
|
+
delimiter = GC.Values[GC.CSV_OUTPUT_FIELD_DELIMITER]
|
|
66067
|
+
roles = set(['organizer'])
|
|
66068
|
+
includeTypes = set()
|
|
66069
|
+
showNoOrganizerDrives = SHOW_NO_PERMISSIONS_DRIVES_CHOICE_MAP['false']
|
|
66070
|
+
fieldsList = ['role', 'type', 'emailAddress']
|
|
66071
|
+
cd = orgUnitId = query = matchPattern = None
|
|
66072
|
+
domainList = []
|
|
66073
|
+
oneOrganizer = False
|
|
66074
|
+
while Cmd.ArgumentsRemaining():
|
|
66075
|
+
myarg = getArgument()
|
|
66076
|
+
if csvPF and myarg == 'todrive':
|
|
66077
|
+
csvPF.GetTodriveParameters()
|
|
66078
|
+
elif myarg == 'delimiter':
|
|
66079
|
+
delimiter = getCharacter()
|
|
66080
|
+
elif myarg in {'teamdriveadminquery', 'shareddriveadminquery', 'query'}:
|
|
66081
|
+
queryLocation = Cmd.Location()
|
|
66082
|
+
query = getString(Cmd.OB_QUERY, minLen=0) or None
|
|
66083
|
+
if query:
|
|
66084
|
+
query = mapQueryRelativeTimes(query, ['createdTime'])
|
|
66085
|
+
elif myarg == 'matchname':
|
|
66086
|
+
matchPattern = getREPattern(re.IGNORECASE)
|
|
66087
|
+
elif myarg in {'ou', 'org', 'orgunit'}:
|
|
66088
|
+
orgLocation = Cmd.Location()
|
|
66089
|
+
if cd is None:
|
|
66090
|
+
cd = buildGAPIObject(API.DIRECTORY)
|
|
66091
|
+
orgUnitPath, orgUnitId = getOrgUnitId(cd)
|
|
66092
|
+
orgUnitId = orgUnitId[3:]
|
|
66093
|
+
orgUnitInfo = {'orgUnit': orgUnitPath, 'orgUnitId': orgUnitId}
|
|
66094
|
+
elif myarg in ADMIN_ACCESS_OPTIONS:
|
|
66095
|
+
useDomainAdminAccess = True
|
|
66096
|
+
elif myarg == 'domainlist':
|
|
66097
|
+
domainList = set(getString(Cmd.OB_DOMAIN_NAME_LIST).replace(',', ' ').lower().split())
|
|
66098
|
+
elif myarg == 'includetypes':
|
|
66099
|
+
for itype in getString(Cmd.OB_ORGANIZER_TYPE_LIST).lower().replace(',', ' ').split():
|
|
66100
|
+
if itype in PRINT_ORGANIZER_TYPES:
|
|
66101
|
+
includeTypes.add(itype)
|
|
66102
|
+
else:
|
|
66103
|
+
invalidChoiceExit(itype, PRINT_ORGANIZER_TYPES, True)
|
|
66104
|
+
elif myarg == 'oneorganizer':
|
|
66105
|
+
oneOrganizer = getBoolean()
|
|
66106
|
+
elif myarg == 'shownoorganizerdrives':
|
|
66107
|
+
showNoOrganizerDrives = getChoice(SHOW_NO_PERMISSIONS_DRIVES_CHOICE_MAP, defaultChoice=1, mapChoice=True)
|
|
66108
|
+
elif myarg in {'includefileorganizers', 'includecontentmanagers'}:
|
|
66109
|
+
if getBoolean():
|
|
66110
|
+
roles.add('fileOrganizer')
|
|
66111
|
+
else:
|
|
66112
|
+
unknownArgumentExit()
|
|
66113
|
+
if query and not useDomainAdminAccess:
|
|
66114
|
+
Cmd.SetLocation(queryLocation-1)
|
|
66115
|
+
usageErrorExit(Msg.ONLY_ADMINISTRATORS_CAN_PERFORM_SHARED_DRIVE_QUERIES)
|
|
66116
|
+
if orgUnitId is not None:
|
|
66117
|
+
if not useDomainAdminAccess:
|
|
66118
|
+
Cmd.SetLocation(orgLocation-1)
|
|
66119
|
+
usageErrorExit(Msg.ONLY_ADMINISTRATORS_CAN_SPECIFY_SHARED_DRIVE_ORGUNIT)
|
|
66120
|
+
csvPF.AddTitles(['orgUnit', 'orgUnitId'])
|
|
66121
|
+
if not includeTypes:
|
|
66122
|
+
includeTypes = PRINT_ORGANIZER_TYPES
|
|
66123
|
+
fields = getItemFieldsFromFieldsList('permissions', fieldsList, True)
|
|
66124
|
+
i, count, users = getEntityArgument(users)
|
|
66125
|
+
for user in users:
|
|
66126
|
+
i += 1
|
|
66127
|
+
user, drive = buildGAPIServiceObject(API.DRIVE3, user, i, count)
|
|
66128
|
+
if not drive:
|
|
66129
|
+
continue
|
|
66130
|
+
if useDomainAdminAccess:
|
|
66131
|
+
printGettingAllAccountEntities(Ent.SHAREDDRIVE, query)
|
|
66132
|
+
pageMessage = getPageMessage()
|
|
66133
|
+
else:
|
|
66134
|
+
printGettingAllEntityItemsForWhom(Ent.SHAREDDRIVE, user, i, count, query)
|
|
66135
|
+
pageMessage = getPageMessageForWhom()
|
|
66136
|
+
try:
|
|
66137
|
+
feed = callGAPIpages(drive.drives(), 'list', 'drives',
|
|
66138
|
+
pageMessage=pageMessage,
|
|
66139
|
+
throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.INVALID_QUERY, GAPI.INVALID,
|
|
66140
|
+
GAPI.QUERY_REQUIRES_ADMIN_CREDENTIALS,
|
|
66141
|
+
GAPI.NO_LIST_TEAMDRIVES_ADMINISTRATOR_PRIVILEGE,
|
|
66142
|
+
GAPI.FILE_NOT_FOUND],
|
|
66143
|
+
q=query, useDomainAdminAccess=useDomainAdminAccess,
|
|
66144
|
+
fields='nextPageToken,drives(id,name,createdTime,orgUnitId)', pageSize=100)
|
|
66145
|
+
except (GAPI.invalidQuery, GAPI.invalid, GAPI.queryRequiresAdminCredentials,
|
|
66146
|
+
GAPI.noListTeamDrivesAdministratorPrivilege, GAPI.fileNotFound) as e:
|
|
66147
|
+
entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE, None], str(e), i, count)
|
|
66148
|
+
continue
|
|
66149
|
+
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
|
|
66150
|
+
userDriveServiceNotEnabledWarning(user, str(e), i, count)
|
|
66151
|
+
continue
|
|
66152
|
+
matchFeed = []
|
|
66153
|
+
jcount = len(feed)
|
|
66154
|
+
j = 0
|
|
66155
|
+
for shareddrive in feed:
|
|
66156
|
+
j += 1
|
|
66157
|
+
if ((matchPattern is not None and matchPattern.match(shareddrive['name']) is None) or
|
|
66158
|
+
(orgUnitId is not None and orgUnitId != shareddrive.get('orgUnitId'))):
|
|
66159
|
+
continue
|
|
66160
|
+
printGettingAllEntityItemsForWhom(Ent.PERMISSION, shareddrive['name'], j, jcount)
|
|
66161
|
+
shareddrive['createdTime'] = formatLocalTime(shareddrive['createdTime'])
|
|
66162
|
+
shareddrive['organizers'] = []
|
|
66163
|
+
try:
|
|
66164
|
+
permissions = callGAPIpages(drive.permissions(), 'list', 'permissions',
|
|
66165
|
+
pageMessage=getPageMessageForWhom(),
|
|
66166
|
+
throwReasons=GAPI.DRIVE3_GET_ACL_REASONS,
|
|
66167
|
+
retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS,
|
|
66168
|
+
useDomainAdminAccess=useDomainAdminAccess,
|
|
66169
|
+
fileId=shareddrive['id'], fields=fields, supportsAllDrives=True)
|
|
66170
|
+
for permission in permissions:
|
|
66171
|
+
if permission['type'] in includeTypes and permission['role'] in roles:
|
|
66172
|
+
if domainList:
|
|
66173
|
+
_, domain = permission['emailAddress'].lower().split('@', 1)
|
|
66174
|
+
if domain not in domainList:
|
|
66175
|
+
continue
|
|
66176
|
+
shareddrive['organizers'].append(permission['emailAddress'])
|
|
66177
|
+
if oneOrganizer:
|
|
66178
|
+
break
|
|
66179
|
+
if not shareddrive['organizers']:
|
|
66180
|
+
if showNoOrganizerDrives == 0: # no organizers and showNoOrganizerDrives False - ignore
|
|
66181
|
+
continue
|
|
66182
|
+
matchFeed.append(shareddrive) # no organizers and showNoOrganizerDrives Only/True - keep
|
|
66183
|
+
continue
|
|
66184
|
+
if showNoOrganizerDrives < 0: # organizers and showNoOrganizerDrives Only/True - ignore
|
|
66185
|
+
continue
|
|
66186
|
+
matchFeed.append(shareddrive)
|
|
66187
|
+
except (GAPI.fileNotFound, GAPI.forbidden, GAPI.internalError,
|
|
66188
|
+
GAPI.insufficientAdministratorPrivileges, GAPI.insufficientFilePermissions,
|
|
66189
|
+
GAPI.unknownError, GAPI.invalid):
|
|
66190
|
+
pass
|
|
66191
|
+
if len(matchFeed) == 0:
|
|
66192
|
+
setSysExitRC(NO_ENTITIES_FOUND_RC)
|
|
66193
|
+
for shareddrive in matchFeed:
|
|
66194
|
+
row = {'id': shareddrive['id'], 'name': shareddrive['name'],
|
|
66195
|
+
'organizers': delimiter.join(shareddrive['organizers']),
|
|
66196
|
+
'createdTime': shareddrive['createdTime']}
|
|
66197
|
+
if orgUnitId:
|
|
66198
|
+
row.update(orgUnitInfo)
|
|
66199
|
+
csvPF.WriteRowTitles(row)
|
|
66200
|
+
if csvPF:
|
|
66201
|
+
csvPF.writeCSVfile('SharedDrive Organizers')
|
|
66202
|
+
|
|
66203
|
+
def doPrintSharedDriveOrganizers():
|
|
66204
|
+
printSharedDriveOrganizers([_getAdminEmail()], True)
|
|
66205
|
+
|
|
66036
66206
|
LOOKERSTUDIO_ASSETTYPE_CHOICE_MAP = {
|
|
66037
66207
|
'report': ['REPORT'],
|
|
66038
66208
|
'datasource': ['DATA_SOURCE'],
|
|
@@ -75919,6 +76089,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
|
|
|
75919
76089
|
Cmd.ARG_SCHEMA: doPrintShowUserSchemas,
|
|
75920
76090
|
Cmd.ARG_SHAREDDRIVE: doPrintShowSharedDrives,
|
|
75921
76091
|
Cmd.ARG_SHAREDDRIVEACLS: doPrintShowSharedDriveACLs,
|
|
76092
|
+
Cmd.ARG_SHAREDDRIVEORGANIZERS: doPrintSharedDriveOrganizers,
|
|
75922
76093
|
Cmd.ARG_SITE: deprecatedDomainSites,
|
|
75923
76094
|
Cmd.ARG_SITEACL: deprecatedDomainSites,
|
|
75924
76095
|
Cmd.ARG_SITEACTIVITY: deprecatedDomainSites,
|
|
@@ -76267,6 +76438,7 @@ MAIN_COMMANDS_OBJ_ALIASES = {
|
|
|
76267
76438
|
Cmd.ARG_TEAMDRIVES: Cmd.ARG_SHAREDDRIVE,
|
|
76268
76439
|
Cmd.ARG_TEAMDRIVEACLS: Cmd.ARG_SHAREDDRIVEACLS,
|
|
76269
76440
|
Cmd.ARG_TEAMDRIVEINFO: Cmd.ARG_SHAREDDRIVEINFO,
|
|
76441
|
+
Cmd.ARG_TEAMDRIVEORGANIZERS: Cmd.ARG_SHAREDDRIVEORGANIZERS,
|
|
76270
76442
|
Cmd.ARG_TEAMDRIVETHEMES: Cmd.ARG_SHAREDDRIVETHEMES,
|
|
76271
76443
|
Cmd.ARG_TOKENS: Cmd.ARG_TOKEN,
|
|
76272
76444
|
Cmd.ARG_TRANSFER: Cmd.ARG_DATATRANSFER,
|
|
@@ -76959,6 +77131,7 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|
|
76959
77131
|
Cmd.ARG_SENDAS: printShowSendAs,
|
|
76960
77132
|
Cmd.ARG_SHAREDDRIVE: printShowSharedDrives,
|
|
76961
77133
|
Cmd.ARG_SHAREDDRIVEACLS: printShowSharedDriveACLs,
|
|
77134
|
+
Cmd.ARG_SHAREDDRIVEORGANIZERS: printSharedDriveOrganizers,
|
|
76962
77135
|
Cmd.ARG_SHEET: infoPrintShowSheets,
|
|
76963
77136
|
Cmd.ARG_SHEETRANGE: printShowSheetRanges,
|
|
76964
77137
|
Cmd.ARG_SIGNATURE: printShowSignature,
|
|
@@ -77316,6 +77489,7 @@ USER_COMMANDS_OBJ_ALIASES = {
|
|
|
77316
77489
|
Cmd.ARG_TEAMDRIVES: Cmd.ARG_SHAREDDRIVE,
|
|
77317
77490
|
Cmd.ARG_TEAMDRIVEACLS: Cmd.ARG_SHAREDDRIVEACLS,
|
|
77318
77491
|
Cmd.ARG_TEAMDRIVEINFO: Cmd.ARG_SHAREDDRIVEINFO,
|
|
77492
|
+
Cmd.ARG_TEAMDRIVEORGANIZERS: Cmd.ARG_SHAREDDRIVEORGANIZERS,
|
|
77319
77493
|
Cmd.ARG_TEAMDRIVETHEMES: Cmd.ARG_SHAREDDRIVETHEMES,
|
|
77320
77494
|
Cmd.ARG_THREADS: Cmd.ARG_THREAD,
|
|
77321
77495
|
Cmd.ARG_TOKENS: Cmd.ARG_TOKEN,
|
gam/gamlib/glclargs.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
|
|
3
|
-
# Copyright (C)
|
|
3
|
+
# Copyright (C) 2025 Ross Scroggs All Rights Reserved.
|
|
4
4
|
#
|
|
5
5
|
# All Rights Reserved.
|
|
6
6
|
#
|
|
@@ -755,6 +755,7 @@ class GamCLArgs():
|
|
|
755
755
|
ARG_SHAREDDRIVES = 'shareddrives'
|
|
756
756
|
ARG_SHAREDDRIVEACLS = 'shareddriveacls'
|
|
757
757
|
ARG_SHAREDDRIVEINFO = 'shareddriveinfo'
|
|
758
|
+
ARG_SHAREDDRIVEORGANIZERS = 'shareddriveorganizers'
|
|
758
759
|
ARG_SHAREDDRIVETHEMES = 'shareddrivethemes'
|
|
759
760
|
ARG_SHEET = 'sheet'
|
|
760
761
|
ARG_SHEETS = 'sheets'
|
|
@@ -784,6 +785,7 @@ class GamCLArgs():
|
|
|
784
785
|
ARG_TEAMDRIVES = 'teamdrives'
|
|
785
786
|
ARG_TEAMDRIVEACLS = 'teamdriveacls'
|
|
786
787
|
ARG_TEAMDRIVEINFO = 'teamdriveinfo'
|
|
788
|
+
ARG_TEAMDRIVEORGANIZERS = 'teamdriveorganizers'
|
|
787
789
|
ARG_TEAMDRIVETHEMES = 'teamdrivethemes'
|
|
788
790
|
ARG_THREAD = 'thread'
|
|
789
791
|
ARG_THREADS = 'threads'
|
|
@@ -964,6 +966,7 @@ class GamCLArgs():
|
|
|
964
966
|
OB_MOBILE_ENTITY = 'MobileEntity'
|
|
965
967
|
OB_NETWORK_ID = 'networkID'
|
|
966
968
|
OB_NAME = 'Name'
|
|
969
|
+
OB_ORGANIZER_TYPE_LIST = 'OrganizerTypeList'
|
|
967
970
|
OB_ORGUNIT_ENTITY = 'OrgUnitEntity'
|
|
968
971
|
OB_ORGUNIT_ITEM = 'OrgUnitItem'
|
|
969
972
|
OB_ORGUNIT_PATH = 'OrgUnitPath'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
1
|
+
gam/__init__.py,sha256=SdaM0sI4IUxepULX1otTVVcG88zMq-P9crfuFa9te-4,3512307
|
|
2
2
|
gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
|
|
3
3
|
gam/cacerts.pem,sha256=82Ak7btW_2XvocLUvAwPmpx8Chi0oqtZUG1gseLK_t4,50235
|
|
4
4
|
gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
|
|
@@ -25,7 +25,7 @@ gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
|
|
|
25
25
|
gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
|
|
26
26
|
gam/gamlib/glapi.py,sha256=85YwZ5LhBoVd9kU3m-gwLRq8FwTWCaRIwARuQvH8Mjc,34022
|
|
27
27
|
gam/gamlib/glcfg.py,sha256=eJCVb_OJ6cIsPuv-0IfIjHaTh5lM9juh4HOMLDblJmE,28055
|
|
28
|
-
gam/gamlib/glclargs.py,sha256=
|
|
28
|
+
gam/gamlib/glclargs.py,sha256=zB6GMmDR_y5IRj7LuoM6-Bk_ETfNQ6sTqCNB6RdPfyg,42350
|
|
29
29
|
gam/gamlib/glentity.py,sha256=fqWUlxQqPKlfFrkuPjCK2lZhhFBIZboCuO0qCxuEwqA,33691
|
|
30
30
|
gam/gamlib/glgapi.py,sha256=cGtvFvvBU3XQJLgtLCjs_V5VBUem_k0b5uUrK21VmeA,39491
|
|
31
31
|
gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
|
|
@@ -65,8 +65,8 @@ gam/googleapiclient/discovery_cache/base.py,sha256=yCDPtxnbNN-p5_9fzBacC6P3wcUPl
|
|
|
65
65
|
gam/googleapiclient/discovery_cache/file_cache.py,sha256=sim3Mg4HgRYo3vX75jvcKy_aV568EvIrtBfvfbw-044,4774
|
|
66
66
|
gam/iso8601/__init__.py,sha256=Z2PsYbXgAH5a5xzUvgczCboPzqWpm65kRcIngCnhViU,1218
|
|
67
67
|
gam/iso8601/iso8601.py,sha256=Li2FHZ4sBTWuthuQhyCvmvj0j6At8JbGzkSv2fc2RHU,4384
|
|
68
|
-
gam7-7.
|
|
69
|
-
gam7-7.
|
|
70
|
-
gam7-7.
|
|
71
|
-
gam7-7.
|
|
72
|
-
gam7-7.
|
|
68
|
+
gam7-7.8.0.dist-info/METADATA,sha256=FKc83O6Jgh-XAK2AfQacRZJ-uKLmzdWYcKmLkC26aNc,2977
|
|
69
|
+
gam7-7.8.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
70
|
+
gam7-7.8.0.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
|
|
71
|
+
gam7-7.8.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
72
|
+
gam7-7.8.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|