mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-24 08:01:36 +00:00
Chat admin cleanup
This commit is contained in:
@@ -5972,8 +5972,7 @@ gam <UserTypeEntity> update chatspace <ChatSpace>
|
||||
[description <String>] [guidelines|rules <String>]
|
||||
[history <Boolean>])
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> delete chatspace <ChatSpace>
|
||||
[adminaccess|asadmin]
|
||||
gam <UserTypeEntity> delete chatspace [adminaccess|asadmin] <ChatSpace>
|
||||
|
||||
gam <UserTypeEntity> info chatspace <ChatSpace>
|
||||
[formatjson]
|
||||
@@ -5985,20 +5984,24 @@ gam <UserTypeEntity> show chatspaces
|
||||
gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
|
||||
[types <ChatSpaceTypeList>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
[adminaccess|asadmin]
|
||||
gam [<UserTypeEntity>] show chatspaces adminaccess|asadmin
|
||||
[query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[formatjson]
|
||||
gam [<UserTypeEntity>] print chatspaces adminaccess|asadmin [todrive <ToDriveAttribute>*]
|
||||
[query <String>] [querytime<String> <Time>]
|
||||
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
[formatjson [quotechar <Character>]]
|
||||
|
||||
gam <UserTypeEntity> create chatmember <ChatSpace>
|
||||
gam <UserTypeEntity> create chatmember [adminaccess|asadmin] <ChatSpace>
|
||||
[type human|bot] [role member|manager]
|
||||
(user <UserItem>)* (members <UserTypeEntity>)*
|
||||
(group <GroupItem>)* (groups <GroupEntity>)*
|
||||
[formatjson|returnidonly]
|
||||
[adminaccess|asadmin]
|
||||
gam <UserTypeEntity> delete chatmember <ChatSpace>
|
||||
gam <UserTypeEntity> delete chatmember [adminaccess|asadmin] <ChatSpace>
|
||||
((user <UserItem>)|(members <UserTypeEntity>)|
|
||||
(group <GroupItem>)|(groups <GroupEntity>))+
|
||||
[adminaccess|asadmin]
|
||||
gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
||||
[adminaccess|asadmin]
|
||||
gam <UserTypeEntity> remove chatmember [adminaccess|asadmin] members <ChatMemberList>
|
||||
gam <UserTypeEntity> update chatmember <ChatSpace>
|
||||
role member|manager
|
||||
((user <UserItem>)|(members <UserTypeEntity>))+
|
||||
@@ -6008,14 +6011,12 @@ gam <UserTypeEntity> modify chatmember
|
||||
|
||||
gam <UserTypeEntity> info chatmember members <ChatMemberList>
|
||||
[formatjson]
|
||||
gam <UserTypeEntity> show chatmembers <ChatSpace>
|
||||
gam <UserTypeEntity> show chatmembers [adminaccess|asadmin] <ChatSpace>
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[formatjson]
|
||||
[adminaccess|asadmin]
|
||||
gam <UserTypeEntity> print chatmembers [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
gam <UserTypeEntity> print chatmembers [adminaccess|asadmin] [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
[formatjson [quotechar <Character>]]
|
||||
[adminaccess|asadmin]
|
||||
|
||||
gam <UserTypeEntity> create chatmessage <ChatSpace>
|
||||
<ChatContent>
|
||||
|
||||
@@ -2,6 +2,19 @@
|
||||
|
||||
Merged GAM-Team version
|
||||
|
||||
6.77.00
|
||||
|
||||
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 <UserTypeEntity> delete chatspace asadmin
|
||||
gam <UserTypeEntity> print|show chatspaces asadmin
|
||||
gam <UserTypeEntity> create chatmember asadmin
|
||||
gam <UserTypeEntity> delete|remove chatmember asadmin
|
||||
gam <UserTypeEntity> print|show chatmembers|asadmin
|
||||
```
|
||||
|
||||
6.76.12
|
||||
|
||||
Fixed bug in `gam <UserTypeEntity> print|show chatspaces` that caused the following error:
|
||||
|
||||
4755
src/chat-v1.json
Normal file
4755
src/chat-v1.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -10,10 +10,11 @@ from gam.gamlib.glverlibs import GAM_VER_LIBS
|
||||
datas = []
|
||||
for pkg in GAM_VER_LIBS:
|
||||
datas += copy_metadata(pkg, recursive=True)
|
||||
datas += [('admin-directory_v1.1beta1.json', '.')]
|
||||
datas += [('cbcm-v1.1beta1.json', '.')]
|
||||
datas += [('chat-v1.json', '.')]
|
||||
datas += [('contactdelegation-v1.json', '.')]
|
||||
datas += [('admin-directory_v1.1beta1.json', '.')]
|
||||
datas += [('datastudio-v1.json', '.')]
|
||||
datas += [('cacerts.pem', '.')]
|
||||
hiddenimports = [
|
||||
'gam.auth.yubikey',
|
||||
|
||||
@@ -25159,6 +25159,11 @@ def exitIfChatNotConfigured(chat, kvList, errMsg, i, count):
|
||||
systemErrorExit(API_ACCESS_DENIED_RC, Msg.TO_SET_UP_GOOGLE_CHAT.format(setupChatURL(chat)))
|
||||
entityActionFailedWarning(kvList, errMsg, i, count)
|
||||
|
||||
def _getChatAdminAccess(adminAPI, userAPI):
|
||||
if checkArgumentPresent(ADMIN_ACCESS_OPTIONS):
|
||||
return (True, adminAPI)
|
||||
return (None, userAPI)
|
||||
|
||||
def _cleanChatSpace(space):
|
||||
space.pop('type', None)
|
||||
space.pop('threaded', None)
|
||||
@@ -25410,19 +25415,14 @@ def updateChatSpace(users):
|
||||
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
||||
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
||||
|
||||
# gam <UserTypeEntity> delete chatspace <ChatSpace>
|
||||
# [adminaccess|asadmin]
|
||||
# gam <UserTypeEntity> delete chatspace [adminaccess|asadmin] <ChatSpace>
|
||||
def deleteChatSpace(users):
|
||||
name = None
|
||||
useAdminAccess = None
|
||||
api = API.CHAT_SPACES_DELETE
|
||||
useAdminAccess, api = _getChatAdminAccess(API.CHAT_SPACES_DELETE_ADMIN, API.CHAT_SPACES_DELETE)
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
if myarg == 'space' or myarg.startswith('spaces/') or myarg.startswith('space/'):
|
||||
name = getChatSpace(myarg)
|
||||
elif myarg in ADMIN_ACCESS_OPTIONS:
|
||||
useAdminAccess = True
|
||||
api = API.CHAT_ADMIN_DELETE
|
||||
else:
|
||||
unknownArgumentExit()
|
||||
if not name:
|
||||
@@ -25504,27 +25504,27 @@ CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP = {
|
||||
# [types <ChatSpaceTypeList>]
|
||||
# [formatjson [quotechar <Character>]]
|
||||
# gam [<UserTypeEntity>] show chatspaces adminaccess|asadmin
|
||||
# [query <String>]]
|
||||
# [query <String>] [querytime<String> <Time>]
|
||||
# [orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
# [formatjson]
|
||||
# gam [<UserTypeEntity>] print chatspaces adminaccess|asadmin [todrive <ToDriveAttribute>*]
|
||||
# [query <String>]]
|
||||
# [query <String>] [querytime<String> <Time>]
|
||||
# [orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
|
||||
# [formatjson [quotechar <Character>]]
|
||||
def printShowChatSpaces(users):
|
||||
csvPF = CSVPrintFile(['User', 'name'] if not isinstance(users, list) else ['name']) if Act.csvFormat() else None
|
||||
FJQC = FormatJSONQuoteChar(csvPF)
|
||||
useAdminAccess = checkArgumentPresent(ADMIN_ACCESS_OPTIONS)
|
||||
OBY = OrderBy(CHAT_SPACES_ADMIN_ORDERBY_CHOICE_MAP)
|
||||
useAdminAccess, api = _getChatAdminAccess(API.CHAT_SPACES_ADMIN, API.CHAT_SPACES)
|
||||
queries = []
|
||||
queryTimes = {}
|
||||
pfilter = ''
|
||||
kwargs = {}
|
||||
if useAdminAccess:
|
||||
api = API.CHAT_SPACES_ADMIN
|
||||
function = 'search'
|
||||
kwargs['useAdminAccess'] = True
|
||||
kwargs['query'] = 'customer = "customers/my_customer" AND spaceType = "SPACE"'
|
||||
queries = ['customer = "customers/my_customer" AND spaceType = "SPACE"']
|
||||
else:
|
||||
api = API.CHAT_SPACES
|
||||
function = 'list'
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
@@ -25541,7 +25541,9 @@ def printShowChatSpaces(users):
|
||||
elif useAdminAccess and myarg == 'orderby':
|
||||
OBY.GetChoice()
|
||||
elif useAdminAccess and myarg == 'query':
|
||||
kwargs['query'] += ' AND '+ getString(Cmd.OB_QUERY)
|
||||
queries[0] += ' AND '+getString(Cmd.OB_QUERY)
|
||||
elif useAdminAccess and myarg.startswith('querytime'):
|
||||
queryTimes[myarg] = getTimeOrDeltaFromNow()
|
||||
else:
|
||||
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
||||
if not useAdminAccess:
|
||||
@@ -25549,6 +25551,8 @@ def printShowChatSpaces(users):
|
||||
kwargs['filter'] = pfilter
|
||||
else:
|
||||
kwargs['orderBy'] = OBY.orderBy
|
||||
substituteQueryTimes(queries, queryTimes)
|
||||
kwargs['query'] = queries[0]
|
||||
i, count, users = getEntityArgument(users)
|
||||
for user in users:
|
||||
i += 1
|
||||
@@ -25596,11 +25600,11 @@ def _getChatMemberEmail(cd, member):
|
||||
_, memberUid = member['groupMember']['name'].split('/')
|
||||
member['groupMember']['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{memberUid}', cd, emailTypes=['group'])
|
||||
|
||||
# gam <UserTypeEntity> create chatmember <ChatSpace>
|
||||
# gam <UserTypeEntity> create chatmember [adminaccess|asadmin] <ChatSpace>
|
||||
# [type human|bot] [role member|manager]
|
||||
# (user <UserItem>)* (members <UserTypeEntity>)*
|
||||
# (group <GroupItem>)* (groups <GroupEntity>)*
|
||||
# [adminaccess|asadmin] [formatjson|returnidonly]
|
||||
# [formatjson|returnidonly]
|
||||
def createChatMember(users):
|
||||
def addMembers(members, field, entityType, i, count):
|
||||
jcount = len(members)
|
||||
@@ -25621,7 +25625,6 @@ def createChatMember(users):
|
||||
parent=parent, body=body)
|
||||
if role != 'ROLE_MEMBER' and entityType == Ent.CHAT_MANAGER_USER:
|
||||
member = callGAPI(chat.spaces().members(), 'patch',
|
||||
useAdminAccess=useAdminAccess,
|
||||
bailOnInternalError=True,
|
||||
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.INTERNAL_ERROR],
|
||||
name=member['name'], updateMask='role', body={'role': role})
|
||||
@@ -25647,8 +25650,7 @@ def createChatMember(users):
|
||||
userList = []
|
||||
groupList = []
|
||||
returnIdOnly = False
|
||||
useAdminAccess = None
|
||||
api = API.CHAT_MEMBERSHIPS
|
||||
useAdminAccess, api = _getChatAdminAccess(API.CHAT_MEMBERSHIPS_ADMIN, API.CHAT_MEMBERSHIPS)
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
if myarg == 'space' or myarg.startswith('spaces/') or myarg.startswith('space/'):
|
||||
@@ -25668,9 +25670,6 @@ def createChatMember(users):
|
||||
mtype = getChoice(CHAT_MEMBER_TYPE_MAP, mapChoice=True)
|
||||
elif myarg == 'returnidonly':
|
||||
returnIdOnly = True
|
||||
elif myarg in ADMIN_ACCESS_OPTIONS:
|
||||
useAdminAccess = True
|
||||
api = API.CHAT_MEMBERSHIPS_ADMIN
|
||||
else:
|
||||
FJQC.GetFormatJSON(myarg)
|
||||
if not parent:
|
||||
@@ -25716,11 +25715,11 @@ def _deleteChatMembers(chat, kvList, jcount, memberNames, i, count, useAdminAcce
|
||||
except (GAPI.invalidArgument, GAPI.permissionDenied, GAPI.internalError) as e:
|
||||
exitIfChatNotConfigured(chat, kvList, str(e), i, count)
|
||||
|
||||
# gam <UserTypeEntity> delete chatmember <ChatSpace>
|
||||
# gam <UserTypeEntity> delete chatmember [adminaccess|asadmin] <ChatSpace>
|
||||
# ((user <UserItem>)|(members <UserTypeEntity>)|
|
||||
# (group <GroupItem>)|(groups <GroupEntity>))+
|
||||
# [adminaccess|asadmin]
|
||||
# gam <UserTypeEntity> remove chatmember members <ChatMemberList>
|
||||
# gam <UserTypeEntity> remove chatmember [adminaccess|asadmin]
|
||||
# members <ChatMemberList>
|
||||
# gam <UserTypeEntity> update chatmember <ChatSpace>
|
||||
# role member|manager
|
||||
# ((user <UserItem>)|(members <UserTypeEntity>))+
|
||||
@@ -25736,8 +25735,11 @@ def deleteUpdateChatMember(users):
|
||||
body = {}
|
||||
memberNames = []
|
||||
userGroupList = []
|
||||
useAdminAccess = None
|
||||
api = API.CHAT_MEMBERSHIPS
|
||||
if deleteMode:
|
||||
useAdminAccess, api = _getChatAdminAccess(API.CHAT_MEMBERSHIPS_ADMIN, API.CHAT_MEMBERSHIPS)
|
||||
else:
|
||||
useAdminAccess = None
|
||||
api = API.CHAT_MEMBERSHIPS
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
if action in {Act.UPDATE, Act.MODIFY} and myarg == 'role':
|
||||
@@ -25760,9 +25762,6 @@ def deleteUpdateChatMember(users):
|
||||
userGroupList.append(getEmailAddress(returnUIDprefix='uid:'))
|
||||
elif deleteMode and myarg == 'groups':
|
||||
userGroupList.extend(getEntityList(Cmd.OB_GROUP_ENTITY))
|
||||
elif myarg in ADMIN_ACCESS_OPTIONS:
|
||||
useAdminAccess = True
|
||||
api = API.CHAT_MEMBERSHIPS_ADMIN
|
||||
else:
|
||||
unknownArgumentExit()
|
||||
if not deleteMode and 'role' not in body:
|
||||
@@ -26011,20 +26010,20 @@ def infoChatMember(users):
|
||||
def doInfoChatMember():
|
||||
infoChatMember([None])
|
||||
|
||||
# gam [<UserTypeEntity>] show chatmembers <ChatSpace>
|
||||
# gam [<UserTypeEntity>] show chatmembers [adminaccess|asadmin] <ChatSpace>
|
||||
# [showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
# [formatjson] [adminaccess|asadmin]
|
||||
# gam [<UserTypeEntity>] print chatmembers [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
# [formatjson]
|
||||
# gam [<UserTypeEntity>] print chatmembers [adminaccess|asadmin] [todrive <ToDriveAttribute>*] <ChatSpace>
|
||||
# [showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
|
||||
# [formatjson [quotechar <Character>]] [adminaccess|asadmin]
|
||||
# [formatjson [quotechar <Character>]]
|
||||
def printShowChatMembers(users):
|
||||
cd = buildGAPIObject(API.DIRECTORY)
|
||||
csvPF = CSVPrintFile(['User', 'space.name', 'name'] if not isinstance(users, list) else ['space.name', 'name']) if Act.csvFormat() else None
|
||||
FJQC = FormatJSONQuoteChar(csvPF)
|
||||
pfilter = ''
|
||||
kwargs = {}
|
||||
parent = None
|
||||
api = API.CHAT_MEMBERSHIPS
|
||||
useAdminAccess = None
|
||||
useAdminAccess, api = _getChatAdminAccess(API.CHAT_MEMBERSHIPS_ADMIN, API.CHAT_MEMBERSHIPS)
|
||||
while Cmd.ArgumentsRemaining():
|
||||
myarg = getArgument()
|
||||
if csvPF and myarg == 'todrive':
|
||||
@@ -26036,18 +26035,22 @@ def printShowChatMembers(users):
|
||||
elif myarg == 'showgroups':
|
||||
kwargs['showGroups'] = getBoolean()
|
||||
elif myarg =='filter':
|
||||
kwargs['filter'] = getString(Cmd.OB_STRING)
|
||||
elif myarg in ADMIN_ACCESS_OPTIONS:
|
||||
useAdminAccess = True
|
||||
api = API.CHAT_MEMBERSHIPS_ADMIN
|
||||
pfilter = getString(Cmd.OB_STRING)
|
||||
else:
|
||||
FJQC.GetFormatJSONQuoteChar(myarg, True)
|
||||
if not parent:
|
||||
missingArgumentExit('space')
|
||||
if useAdminAccess and 'filter' in kwargs:
|
||||
invalidArgumentExit('asadmin not compatible with filter')
|
||||
elif useAdminAccess:
|
||||
kwargs['filter'] = 'member.type != "BOT'
|
||||
if useAdminAccess:
|
||||
if pfilter:
|
||||
if 'member.type' not in pfilter:
|
||||
kwargs['filter'] = 'member.type != "BOT" AND '+pfilter
|
||||
else:
|
||||
kwargs['filter'] = pfilter
|
||||
else:
|
||||
kwargs['filter'] = 'member.type != "BOT"'
|
||||
else:
|
||||
if pfilter:
|
||||
kwargs['filter'] = pfilter
|
||||
qfilter = f'{Ent.Singular(Ent.CHAT_SPACE)}: {parent}'
|
||||
if 'filter' in kwargs:
|
||||
qfilter += f', {kwargs["filter"]}'
|
||||
|
||||
@@ -33,8 +33,8 @@ CHAT_MEMBERSHIPS_ADMIN = 'chatmembershipsadmin'
|
||||
CHAT_MESSAGES = 'chatmessages'
|
||||
CHAT_SPACES = 'chatspaces'
|
||||
CHAT_SPACES_ADMIN = 'chatspacesadmin'
|
||||
CHAT_ADMIN_DELETE = 'chatadmindelete'
|
||||
CHAT_SPACES_DELETE = 'chatspacesdelete'
|
||||
CHAT_SPACES_DELETE_ADMIN = 'chatspacesdeleteadmin'
|
||||
CHROMEMANAGEMENT = 'chromemanagement'
|
||||
CHROMEMANAGEMENT_APPDETAILS = 'chromemanagementappdetails'
|
||||
CHROMEMANAGEMENT_TELEMETRY = 'chromemanagementtelemetry'
|
||||
@@ -198,14 +198,14 @@ _INFO = {
|
||||
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, 'localjson': True},
|
||||
CHAT_ADMIN_DELETE: {'name': 'Chat API - Admin Delete', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_EVENTS: {'name': 'Chat API - Events', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_MEMBERSHIPS: {'name': 'Chat API - Memberships', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_MEMBERSHIPS_ADMIN: {'name': 'Chat API - Admin Memberships', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_MESSAGES: {'name': 'Chat API - Messages', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_SPACES: {'name': 'Chat API - Spaces', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_SPACES_ADMIN: {'name': 'Chat API - Admin Spaces', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, 'localjson': True},
|
||||
CHAT_SPACES_DELETE: {'name': 'Chat API - Spaces Delete', 'version': 'v1', 'v2discovery': True, 'mappedAPI': CHAT, '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},
|
||||
@@ -520,10 +520,10 @@ _SVCACCT_SCOPES = [
|
||||
'api': CHAT_MEMBERSHIPS,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.memberships'},
|
||||
{'name': 'Chat API - Admin Memberships',
|
||||
{'name': 'Chat API - Memberships Admin',
|
||||
'api': CHAT_MEMBERSHIPS_ADMIN,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.admin.memberships'},
|
||||
'scope': 'https://www.googleapis.com/auth/chat.admin.memberships'},
|
||||
{'name': 'Chat API - Messages',
|
||||
'api': CHAT_MESSAGES,
|
||||
'subscopes': READONLY,
|
||||
@@ -532,7 +532,7 @@ _SVCACCT_SCOPES = [
|
||||
'api': CHAT_SPACES,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.spaces'},
|
||||
{'name': 'Chat API - Admin Spaces',
|
||||
{'name': 'Chat API - Spaces Admin',
|
||||
'api': CHAT_SPACES_ADMIN,
|
||||
'subscopes': READONLY,
|
||||
'scope': 'https://www.googleapis.com/auth/chat.admin.spaces'},
|
||||
@@ -540,8 +540,8 @@ _SVCACCT_SCOPES = [
|
||||
'api': CHAT_SPACES_DELETE,
|
||||
'subscopes': [],
|
||||
'scope': 'https://www.googleapis.com/auth/chat.delete'},
|
||||
{'name': 'Chat API - Admin Delete',
|
||||
'api': CHAT_ADMIN_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',
|
||||
|
||||
Reference in New Issue
Block a user