#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # GAM7 # # Copyright 2026, All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ GAM is a command line tool which allows Administrators to control their Google Workspace domain and accounts. For more information, see: https://github.com/GAM-team/GAM https://github.com/GAM-team/GAM/wiki """ __author__ = 'GAM Team ' __version__ = '7.46.03' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' # pylint: disable=wrong-import-position import http.client import importlib import logging import os import platform import re import sys from traceback import print_exc import types # disable legacy stuff we don't use and isn't secure os.environ['CRYPTOGRAPHY_OPENSSL_NO_LEGACY'] = "1" # Add package directory to sys.path for source installs (not needed for frozen/PyInstaller builds) if not getattr(sys, 'frozen', False): sys.path.insert(0, os.path.dirname(os.path.realpath(__file__))) import httplib2 httplib2.RETRIES = 5 from gamlib import api as API from gamlib import settings as GC from gamlib import gapi as GAPI from gamlib import state as GM from gamlib import msgs as Msg from gam.util.api import SvcAcctAPIDisabledExit # noqa: E402 from gam.util.email import send_email # noqa: E402 from gam.constants import * from util.fileio import adjustRedirectedSTDFilesIfNotMultiprocessing, closeSTDFilesIfNotMultiprocessing # noqa: E402 from gam.var import Act, Cmd, Ent, Ind # noqa: E402,F401 # Finding path method varies between Python source, PyInstaller and StaticX if os.environ.get('STATICX_PROG_PATH', False): # StaticX static executable GM.Globals[GM.GAM_PATH] = os.path.dirname(os.environ['STATICX_PROG_PATH']) GM.Globals[GM.GAM_TYPE] = 'staticx' elif getattr(sys, 'frozen', False): # Pyinstaller executable GM.Globals[GM.GAM_PATH] = os.path.dirname(sys.executable) GM.Globals[GM.GAM_TYPE] = 'pyinstaller' else: # Source code GM.Globals[GM.GAM_PATH] = os.path.dirname(os.path.realpath(__file__)) GM.Globals[GM.GAM_TYPE] = 'pythonsource' from util.output import showAPICallsRetryData # noqa: E402 # Multiprocessing lock mplock = None # Imports used by __init__.py's own dispatch tables and functions from util.output import setSysExitRC, printErrorMessage # noqa: E402 from util.args import getChoice # noqa: E402 from util.args import checkArgumentPresent, NO_DEFAULT # noqa: E402 from util.connection import doCheckConnection, doComment, doVersion, doUsage # noqa: E402 from util.entity import getEntityArgument, getEntityToModify # noqa: E402 from util.config import SetGlobalVariables # noqa: E402 from util.fileio import closeGAMCommandLog, writeGAMCommandLog # noqa: E402 from util.batch import ( # noqa: E402 batchWriteStderr, doBatch, doThreadBatch, doAutoBatch, doCSV, doCSVTest, doLoop, doListType, doListCrOS, doListUser, showCountCrOS, showCountUser, ) # Command module imports from gam.cmd.admin import ( doCreateAdmin, doCreateUpdateAdminRoles, doDeleteAdmin, doDeleteAdminRole, doInfoPrintShowAdminRoles, doPrintShowAdmins, doPrintShowPrivileges, ) from gam.cmd.alerts import ( doClearAlertSettings, doCreateAlertFeedback, doDeleteOrUndeleteAlert, doInfoAlert, doPrintShowAlertFeedback, doPrintShowAlerts, doShowAlertSettings, doUpdateAlertSettings, ) from gam.cmd.aliases import ( deleteUsersAliases, doCreateUpdateAliases, doDeleteAliases, doInfoAliases, doPrintAddresses, doPrintAliases, doRemoveAliases, ) from gam.cmd.analytics import ( printShowAnalyticAccountSummaries, printShowAnalyticAccounts, printShowAnalyticDatastreams, printShowAnalyticProperties, ) from gam.cmd.audit import doCreateMonitor, doDeleteMonitor, doShowMonitors from gam.cmd.browsers import ( doCreateBrowserToken, doCreateChromeProfileCommand, doDeleteBrowsers, doDeleteChromeProfile, doInfoBrowsers, doInfoChromeProfile, doInfoChromeProfileCommand, doMoveBrowsers, doPrintShowBrowserTokens, doPrintShowBrowsers, doPrintShowChromeProfileCommands, doPrintShowChromeProfiles, doRevokeBrowserToken, doUpdateBrowsers, ) from gam.cmd.caa import ( doCreateCAALevel, doDeleteCAALevel, doPrintShowCAALevels, doUpdateCAALevel, ) from gam.cmd.calendar import ( doCalendarsCreateACL, doCalendarsCreateACLs, doCalendarsCreateEvent, doCalendarsDeleteACL, doCalendarsDeleteACLs, doCalendarsDeleteEvents, doCalendarsDeleteEventsOld, doCalendarsEmptyTrash, doCalendarsImportEvent, doCalendarsInfoACLs, doCalendarsInfoEvents, doCalendarsModifySettings, doCalendarsMoveEvents, doCalendarsMoveEventsOld, doCalendarsPrintShowACLs, doCalendarsPrintShowEvents, doCalendarsPrintShowSettings, doCalendarsPurgeEvents, doCalendarsUpdateACL, doCalendarsUpdateACLs, doCalendarsUpdateEvents, doCalendarsUpdateEventsOld, doCalendarsWipeEvents, doResourceCreateCalendarACLs, doResourceDeleteCalendarACLs, doResourceInfoCalendarACLs, doResourcePrintShowCalendarACLs, doResourceUpdateCalendarACLs, ) from gam.cmd.chat import ( createChatEmoji, createChatMember, createChatMessage, createChatSpace, createUpdateChatSection, deleteChatEmoji, deleteChatMessage, deleteChatSection, deleteChatSpace, deleteUpdateChatMember, doCreateChatMessage, doDeleteChatMessage, doInfoChatEvent, doInfoChatMember, doInfoChatMessage, doInfoChatSpace, doPrintShowChatMembers, doPrintShowChatSpaces, doSetupChat, doUpdateChatMessage, infoChatEmoji, infoChatEvent, infoChatMember, infoChatMessage, infoChatSpace, infoChatSpaceDM, moveShowChatSectionItem, printShowChatEmojis, printShowChatEvents, printShowChatMembers, printShowChatMessages, printShowChatSearchMessages, printShowChatSectionItems, printShowChatSections, printShowChatSpaces, syncChatMembers, updateChatMessage, updateChatSpace, ) from gam.cmd.chromeapps import ( doInfoChromeApp, doPrintChromeSnValidity, doPrintShowChromeAppDevices, doPrintShowChromeApps, doPrintShowChromeAues, doPrintShowChromeDeviceCounts, doPrintShowChromeHistory, doPrintShowChromeNeedsAttn, doPrintShowChromeVersions, ) from gam.cmd.chromepolicies import ( doCreateChromeNetwork, doCreateChromePolicyImage, doDeleteChromeNetwork, doDeleteChromePolicy, doInfoChromePolicySchemas, doPrintShowChromePolicies, doPrintShowChromePolicySchemas, doUpdateChromePolicy, ) from gam.cmd.cidevices import ( doApproveCIDeviceUser, doBlockCIDeviceUser, doCancelWipeCIDevice, doCancelWipeCIDeviceUser, doCreateCIDevice, doDeleteCIDevice, doDeleteCIDeviceUser, doInfoCIDevice, doInfoCIDeviceUser, doInfoCIDeviceUserState, doPrintCIDeviceUsers, doPrintCIDevices, doSyncCIDevices, doUpdateCIDevice, doUpdateCIDeviceUser, doUpdateCIDeviceUserState, doWipeCIDevice, doWipeCIDeviceUser, ) from gam.cmd.cigroups import ( doCreateCIGroup, doCreateUpdateCIPolicy, doDeleteCIGroups, doDeleteCIPolicies, doInfoCIGroupMembers, doInfoCIGroups, doInfoCIPolicies, doPrintCIGroupMembers, doPrintCIGroups, doPrintShowCIPolicies, doShowCIGroupMembers, doUpdateCIGroups, infoCIGroupMembers, ) from gam.cmd.ciuserinvitations import ( checkCIUserIsInvitable, doCIUserInvitationsAction, doCheckCIUserInvitations, doInfoCIUserInvitations, doPrintShowCIUserInvitations, ) from gam.cmd.cloudstorage import doCopyCloudStorageBucket, doDownloadCloudStorageBucket, doDownloadCloudStorageFile from gam.cmd.contacts import ( doClearDomainContacts, doCreateDomainContact, doDedupDomainContacts, doDeleteDomainContacts, doInfoDomainContacts, doPrintShowDomainContacts, doUpdateDomainContacts, ) from gam.cmd.courses import ( acceptClassroomInvitations, cancelGuardianInvitations, clearGuardians, createClassroomInvitations, deleteClassroomInvitations, deleteGuardians, doCancelGuardianInvitation, doClearCourseStudentGroups, doCourseAddItems, doCourseClearParticipants, doCourseRemoveItems, doCourseSyncParticipants, doCourseUpdateItems, doCreateCourse, doCreateCourseStudentGroups, doDeleteClassroomInvitations, doDeleteCourse, doDeleteCourseStudentGroups, doDeleteCourses, doDeleteGuardian, doInfoCourse, doInfoCourses, doInviteGuardian, doPrintCourseAnnouncements, doPrintCourseCounts, doPrintCourseMaterials, doPrintCourseParticipants, doPrintCourseStudentGroupMembers, doPrintCourseStudentGroups, doPrintCourseSubmissions, doPrintCourseTopics, doPrintCourseWork, doPrintCourses, doPrintShowClassroomInvitations, doPrintShowGuardians, doProcessCourseStudentGroupMembers, doUpdateCourse, doUpdateCourseStudentGroups, doUpdateCourses, inviteGuardians, printShowClassroomInvitations, printShowClassroomProfile, printShowGuardians, syncGuardians, ) from gam.cmd.cros import ( doGetCommandResultCrOSDevices, doGetCrOSDeviceFiles, doInfoCrOSDevices, doInfoPrintShowCrOSTelemetry, doIssueCommandCrOSDevices, doPrintCrOSActivity, doPrintCrOSDevices, doPrintCrOSEntity, doUpdateCrOSDevices, getCommandResultCrOSDevices, getCrOSDeviceFiles, infoCrOSDevices, issueCommandCrOSDevices, updateCrOSDevices, ) from gam.cmd.customer import ( doInfoCustomer, doInfoDomain, doInfoInstance, doPrintShowDomains, doUpdateCustomer, ) from gam.cmd.datatransfer import ( doCreateDataTransfer, doInfoDataTransfer, doPrintShowDataTransfers, doShowTransferApps, ) from gam.cmd.delegates import printShowContactDelegates, processContactDelegates from gam.cmd.domains import ( doCreateDomain, doCreateDomainAlias, doDeleteDomain, doDeleteDomainAlias, doInfoDomainAlias, doPrintShowDomainAliases, doUpdateDomain, ) from gam.cmd.drive import ( checkDriveFileShortcut, claimOwnership, collectOrphans, copyDriveFile, copySyncSharedDriveACLs, createDriveFile, createDriveFileACL, createDriveFilePermissions, createDriveFileShortcut, createDriveFolderPath, createDriveLabelPermissions, createSharedDrive, deleteDriveFile, deleteDriveFileACLs, deleteDriveLabelPermissions, deleteEmptyDriveFolders, deleteFileRevisions, deletePermissions, deleteSharedDrive, doCopySyncSharedDriveACLs, doCreateDriveFileACL, doCreateDriveLabelPermissions, doCreatePermissions, doCreateSharedDrive, doDeleteDriveFileACLs, doDeleteDriveLabelPermissions, doDeletePermissions, doDeleteSharedDrive, doHideUnhideSharedDrive, doInfoDriveFileACLs, doInfoDriveLabels, doInfoSharedDrive, doPrintSharedDriveOrganizers, doPrintShowDriveFileACLs, doPrintShowDriveLabelPermissions, doPrintShowDriveLabels, doPrintShowOrgunitSharedDrives, doPrintShowOwnership, doPrintShowSharedDriveACLs, doPrintShowSharedDrives, doShowSharedDriveThemes, doUpdateDriveFileACLs, doUpdateSharedDrive, emptyDriveTrash, getDriveFile, getGoogleDocument, hideUnhideSharedDrive, infoDriveFileACLs, infoDriveLabels, infoSharedDrive, moveDriveFile, printDiskUsage, printDriveActivity, printEmptyDriveFolders, printFileList, printFileParentTree, printSharedDriveOrganizers, printShowDriveFileACLs, printShowDriveLabelPermissions, printShowDriveLabels, printShowDriveSettings, printShowDrivelastModifications, printShowFileComments, printShowFileCounts, printShowFilePaths, printShowFileRevisions, printShowFileShareCounts, printShowFileTree, printShowLookerStudioAssets, printShowSharedDriveACLs, printShowSharedDrives, processFileDriveLabels, purgeDriveFile, showFileInfo, showSharedDriveThemes, transferDrive, transferOwnership, trashDriveFile, untrashDriveFile, updateDriveFile, updateDriveFileACLs, updateFileRevisions, updateGoogleDocument, updateSharedDrive, ) from gam.cmd.gmail import ( archiveMessages, createCSEKeyPair, createFilter, createForm, createForwardingAddresses, createLabel, createLabelList, createSmime, createUpdateCSEIdentity, createUpdateSendAs, delegateTo, deleteFilters, deleteForwardingAddresses, deleteInfoSendAs, deleteLabel, deleteLabelId, deleteLabelIdList, deleteLabelList, deleteSmime, draftMessage, exportMessages, exportThreads, importMessage, infoFilters, infoForwardingAddresses, insertMessage, printShowCSEIdentities, printShowCSEKeyPairs, printShowDelegates, printShowFilters, printShowFormResponses, printShowForms, printShowForward, printShowForwardingAddresses, printShowGmailProfile, printShowImap, printShowLabels, printShowLanguage, printShowMessages, printShowPop, printShowSendAs, printShowSignature, printShowSmimes, printShowThreads, printShowVacation, processCSEIdentity, processCSEKeyPair, processDelegates, processMessages, processThreads, setForward, setImap, setLanguage, setPop, setSignature, setVacation, updateDelegates, updateForm, updateLabelSettings, updateLabelSettingsById, updateLabels, updateSmime, watchGmail, ) from gam.cmd.groups import ( doCreateGroup, doDeleteGroups, doInfoGroupMembers, doInfoGroups, doPrintGroupMembers, doPrintGroups, doPrintShowGroupTree, doShowGroupMembers, doUpdateGroups, infoGroupMembers, ) from gam.cmd.licenses import doPrintLicenses, doShowLicenses from gam.cmd.meet import ( createMeetSpace, endMeetConference, infoMeetSpace, printShowMeetConferences, printShowMeetParticipants, printShowMeetRecordings, printShowMeetTranscripts, updateMeetSpace, ) from gam.cmd.mobile import ( doDeleteMobileDevices, doInfoMobileDevices, doPrintMobileDevices, doUpdateMobileDevices, ) from gam.cmd.notes import ( createNote, createNotesACLs, deleteInfoNotes, deleteNotesACLs, getNoteAttachments, printShowNotes, ) from gam.cmd.oauth import ( Credentials, doOAuthCreate, doOAuthDelete, doOAuthExport, doOAuthInfo, doOAuthRefresh, doOAuthUpdate, ) from gam.cmd.orgunits import ( doCheckOrgUnit, doCreateOrg, doDeleteOrg, doDeleteOrgs, doInfoOrg, doInfoOrgs, doPrintOrgs, doShowOrgTree, doUpdateOrg, doUpdateOrgs, ) from gam.cmd.people import ( clearUserPeopleContacts, copyUserPeopleOtherContacts, createUserPeopleContact, createUserPeopleContactGroup, dedupReplaceDomainUserPeopleContacts, deleteUserPeopleContactGroups, deleteUserPeopleContactPhoto, deleteUserPeopleContacts, doDeleteDomainContactPhoto, doGetDomainContactPhoto, doInfoDomainPeopleContacts, doInfoDomainPeopleProfile, doPrintShowDomainPeopleContacts, doPrintShowDomainPeopleProfiles, doUpdateDomainContactPhoto, getUserPeopleContactPhoto, infoUserPeopleContactGroups, infoUserPeopleContacts, printShowUserPeopleContactGroups, printShowUserPeopleContacts, printShowUserPeopleOtherContacts, printShowUserPeopleProfiles, processUserPeopleOtherContacts, updateUserPeopleContactGroup, updateUserPeopleContactPhoto, updateUserPeopleContacts, ) from gam.cmd.printers import ( doCreatePrinter, doDeletePrinter, doInfoPrinter, doPrintShowPrinterModels, doPrintShowPrinters, doUpdatePrinter, ) from gam.cmd.project import ( checkServiceAccount, doCheckUpdateSvcAcct, doCreateGCPFolder, doCreateGCPServiceAccount, doCreateProject, doCreateSvcAcct, doCreateSvcAcctKeys, doDeleteProject, doDeleteSvcAcct, doDeleteSvcAcctKeys, doEnableAPIs, doInfoCurrentProjectId, doInfoCustomerId, doInfoGCPOrgId, doPrintShowProjects, doPrintShowSvcAccts, doProcessSvcAcctKeys, doReplaceSvcAcctKeys, doShowSvcAcctKeys, doUpdateProject, doUpdateSvcAcctKeys, doUploadSvcAcctKeys, doUseProject, ) from gam.cmd.reports import doReport, doWhatIs from gam.cmd.reseller import ( doCreateResoldCustomer, doCreateResoldSubscription, doDeleteResoldSubscription, doInfoResoldCustomer, doInfoResoldSubscription, doPrintShowChannelCustomerEntitlements, doPrintShowChannelCustomers, doPrintShowChannelOffers, doPrintShowChannelProducts, doPrintShowChannelSKUs, doPrintShowResoldSubscriptions, doUpdateResoldCustomer, doUpdateResoldSubscription, ) from gam.cmd.resources import ( doCreateBuilding, doCreateFeature, doCreateResourceCalendar, doDeleteBuilding, doDeleteFeature, doDeleteResourceCalendar, doDeleteResourceCalendars, doInfoBuilding, doInfoResourceCalendar, doInfoResourceCalendars, doPrintShowBuildings, doPrintShowFeatures, doPrintShowResourceCalendars, doUpdateBuilding, doUpdateFeature, doUpdateResourceCalendar, doUpdateResourceCalendars, ) from gam.cmd.schemas import ( doCreateUpdateUserSchemas, doDeleteUserSchemas, doInfoUserSchemas, doPrintShowUserSchemas, ) from gam.cmd.send_email import doSendEmail, doSendReply from gam.cmd.sites import ( deprecatedDomainSites, deprecatedUserSites, doCreateSiteVerification, doInfoSiteVerification, doUpdateSiteVerification, printShowBusinessProfileAccounts, printShowWebMasterSites, printShowWebResources, ) from gam.cmd.sso import ( doCreateInboundSSOAssignment, doCreateInboundSSOCredential, doCreateInboundSSOProfile, doDeleteInboundSSOAssignment, doDeleteInboundSSOCredential, doDeleteInboundSSOProfile, doInfoInboundSSOAssignment, doInfoInboundSSOCredential, doInfoInboundSSOProfile, doPrintShowInboundSSOAssignments, doPrintShowInboundSSOCredentials, doPrintShowInboundSSOProfiles, doUpdateInboundSSOAssignment, doUpdateInboundSSOProfile, ) from gam.cmd.tasks import ( importTasklist, printShowTagManagerAccounts, printShowTagManagerContainers, printShowTagManagerPermissions, printShowTagManagerTags, printShowTagManagerWorkspaces, printShowTasklists, printShowTasks, processTasklists, processTasks, ) from gam.cmd.userop import ( addUserToGroups, appendSheetRanges, checkUserInGroups, clearSheetRanges, createLicense, createSheet, deleteLicense, deletePhoto, deleteTokens, deleteUserFromGroups, deprovisionUser, doPrintShowTokens, getProfilePhoto, getUserPhoto, infoPrintShowSheets, printShowGroupTree, printShowLookerStudioPermissions, printShowSheetRanges, printShowTokens, printShowUserGroups, printUserGroupsList, processLookerStudioPermissions, setProfile, showProfile, syncLicense, syncUserWithGroups, updateLicense, updatePhoto, updateSheetRanges, updateSheets, updateUserGroups, ) from gam.cmd.users import ( deleteUsers, doCheckUserSuspended, doCreateGuestUser, doCreateUser, doDeleteUser, doDeleteUsers, doInfoUser, doInfoUsers, doPrintUserCountsByOrgUnit, doPrintUserEntity, doPrintUserList, doPrintUsers, doSuspendUnsuspendUser, doSuspendUnsuspendUsers, doUndeleteUser, doUndeleteUsers, doUpdateUser, doUpdateUsers, infoUsers, signoutTurnoff2SVUsers, suspendUnsuspendUsers, undeleteUsers, updateUsers, waitForMailbox, ) from gam.cmd.userservices import ( addCreateCalendars, createCalendarACLs, createCalendarEvent, createFocusTime, createOutOfOffice, createWorkingLocation, deleteASP, deleteBackupCodes, deleteCalendarACLs, deleteCalendarEvents, deleteCalendars, deleteFocusTime, deleteOutOfOffice, deleteWorkingLocation, doCalendarsTransferOwnership, emptyCalendarTrash, importCalendarEvent, infoCalendarACLs, infoCalendarEvents, infoCalendars, modifyCalendars, moveCalendarEvents, printShowASPs, printShowBackupCodes, printShowCalSettings, printShowCalendarACLs, printShowCalendarEvents, printShowCalendars, printShowFocusTime, printShowOutOfOffice, printShowWorkingLocation, printShowYouTubeChannel, purgeCalendarEvents, removeCalendars, updateBackupCodes, updateCalendarACLs, updateCalendarAttendees, updateCalendarEvents, updateCalendars, wipeCalendarEvents, ) from gam.cmd.vault import ( doCloseVaultMatter, doCopyVaultExport, doCopyVaultQuery, doCreateVaultExport, doCreateVaultHold, doCreateVaultMatter, doCreateVaultQuery, doDeleteVaultExport, doDeleteVaultHold, doDeleteVaultMatter, doDeleteVaultQuery, doDownloadVaultExport, doInfoVaultExport, doInfoVaultHold, doInfoVaultMatter, doInfoVaultQuery, doPrintShowVaultExports, doPrintShowVaultHolds, doPrintShowVaultMatters, doPrintShowVaultQueries, doPrintVaultCounts, doReopenVaultMatter, doUndeleteVaultMatter, doUpdateVaultHold, doUpdateVaultMatter, printShowUserVaultHolds, ) from gam.cmd.yubikey import doResetYubiKeyPIV class LazyLoader(types.ModuleType): """Lazily import a module, mainly to avoid pulling in large dependencies. `contrib`, and `ffmpeg` are examples of modules that are large and not always needed, and this allows them to only be loaded when they are used. """ # The lint error here is incorrect. def __init__(self, local_name, parent_module_globals, name): self._local_name = local_name self._parent_module_globals = parent_module_globals super().__init__(name) def _load(self): # Import the target module and insert it into the parent's namespace module = importlib.import_module(self.__name__) self._parent_module_globals[self._local_name] = module # Update this object's dict so that if someone keeps a reference to the # LazyLoader, lookups are efficient (__getattr__ is only called on lookups # that fail). self.__dict__.update(module.__dict__) return module def __getattr__(self, item): module = self._load() return getattr(module, item) def __dir__(self): module = self._load() return dir(module) yubikey = LazyLoader('yubikey', globals(), 'gam.gamlib.yubikey') BUILDING_ADDRESS_FIELD_MAP = { 'address': 'addressLines', 'addresslines': 'addressLines', 'administrativearea': 'administrativeArea', 'city': 'locality', 'country': 'regionCode', 'language': 'languageCode', 'languagecode': 'languageCode', 'locality': 'locality', 'postalcode': 'postalCode', 'regioncode': 'regionCode', 'state': 'administrativeArea', 'sublocality': 'sublocality', 'zipcode': 'postalCode', } CMD_ACTION = 0 CMD_FUNCTION = 1 # Batch commands BATCH_CSV_COMMANDS = { Cmd.BATCH_CMD: (Act.PERFORM, doBatch), Cmd.CSV_CMD: (Act.PERFORM, doCSV), Cmd.CSVTEST_CMD: (Act.PERFORM, doCSVTest), Cmd.TBATCH_CMD: (Act.PERFORM, doThreadBatch), } # Main commands MAIN_COMMANDS = { 'checkconn': (Act.CHECK, doCheckConnection), 'checkconnection': (Act.CHECK, doCheckConnection), 'comment': (Act.COMMENT, doComment), 'help': (Act.PERFORM, doUsage), 'list': (Act.LIST, doListType), 'report': (Act.REPORT, doReport), 'sendemail': (Act.SENDEMAIL, doSendEmail), 'version': (Act.PERFORM, doVersion), 'whatis': (Act.INFO, doWhatIs), } # Main commands with objects MAIN_ADD_CREATE_FUNCTIONS = { Cmd.ARG_ADMIN: doCreateAdmin, Cmd.ARG_ADMINROLE: doCreateUpdateAdminRoles, Cmd.ARG_ALERTFEEDBACK: doCreateAlertFeedback, Cmd.ARG_ALIAS: doCreateUpdateAliases, Cmd.ARG_BROWSERTOKEN: doCreateBrowserToken, Cmd.ARG_BUILDING: doCreateBuilding, Cmd.ARG_CAALEVEL: doCreateCAALevel, Cmd.ARG_CHATMESSAGE: doCreateChatMessage, Cmd.ARG_CHROMENETWORK: doCreateChromeNetwork, Cmd.ARG_CHROMEPOLICYIMAGE: doCreateChromePolicyImage, Cmd.ARG_CHROMEPROFILECOMMAND: doCreateChromeProfileCommand, Cmd.ARG_CIGROUP: doCreateCIGroup, Cmd.ARG_CIPOLICY: doCreateUpdateCIPolicy, Cmd.ARG_CONTACT: doCreateDomainContact, Cmd.ARG_COURSE: doCreateCourse, Cmd.ARG_COURSESTUDENTGROUP: doCreateCourseStudentGroups, Cmd.ARG_COURSESTUDENTGROUPMEMBERS: doProcessCourseStudentGroupMembers, Cmd.ARG_DATATRANSFER: doCreateDataTransfer, Cmd.ARG_DEVICE: doCreateCIDevice, Cmd.ARG_DOMAIN: doCreateDomain, Cmd.ARG_DOMAINALIAS: doCreateDomainAlias, Cmd.ARG_DRIVEFILEACL: doCreateDriveFileACL, Cmd.ARG_DRIVELABELPERMISSION: doCreateDriveLabelPermissions, Cmd.ARG_FEATURE: doCreateFeature, Cmd.ARG_GCPFOLDER: doCreateGCPFolder, Cmd.ARG_GCPSERVICEACCOUNT: doCreateGCPServiceAccount, Cmd.ARG_GROUP: doCreateGroup, Cmd.ARG_GUARDIAN: doInviteGuardian, Cmd.ARG_GUARDIANINVITATION: doInviteGuardian, Cmd.ARG_GUESTUSER: doCreateGuestUser, Cmd.ARG_INBOUNDSSOASSIGNMENT: doCreateInboundSSOAssignment, Cmd.ARG_INBOUNDSSOCREDENTIAL: doCreateInboundSSOCredential, Cmd.ARG_INBOUNDSSOPROFILE: doCreateInboundSSOProfile, Cmd.ARG_ORG: doCreateOrg, Cmd.ARG_PERMISSION: doCreatePermissions, Cmd.ARG_PRINTER: doCreatePrinter, Cmd.ARG_PROJECT: doCreateProject, Cmd.ARG_RESOLDCUSTOMER: doCreateResoldCustomer, Cmd.ARG_RESOLDSUBSCRIPTION: doCreateResoldSubscription, Cmd.ARG_RESOURCE: doCreateResourceCalendar, Cmd.ARG_SAKEY: doCreateSvcAcctKeys, Cmd.ARG_SCHEMA: doCreateUpdateUserSchemas, Cmd.ARG_SHAREDDRIVE: doCreateSharedDrive, Cmd.ARG_SITE: deprecatedDomainSites, Cmd.ARG_SITEACL: deprecatedDomainSites, Cmd.ARG_SVCACCT: doCreateSvcAcct, Cmd.ARG_USER: doCreateUser, Cmd.ARG_VAULTEXPORT: doCreateVaultExport, Cmd.ARG_VAULTHOLD: doCreateVaultHold, Cmd.ARG_VAULTMATTER: doCreateVaultMatter, Cmd.ARG_VAULTQUERY: doCreateVaultQuery, Cmd.ARG_VERIFY: doCreateSiteVerification, } MAIN_COMMANDS_WITH_OBJECTS = { 'add': (Act.ADD, MAIN_ADD_CREATE_FUNCTIONS ), 'approve': (Act.APPROVE, {Cmd.ARG_DEVICEUSER: doApproveCIDeviceUser, } ), 'block': (Act.BLOCK, {Cmd.ARG_DEVICEUSER: doBlockCIDeviceUser, } ), 'cancel': (Act.CANCEL, {Cmd.ARG_GUARDIANINVITATION: doCancelGuardianInvitation, Cmd.ARG_USERINVITATION: doCIUserInvitationsAction, } ), 'cancelwipe': (Act.CANCEL_WIPE, {Cmd.ARG_DEVICE: doCancelWipeCIDevice, Cmd.ARG_DEVICEUSER: doCancelWipeCIDeviceUser, } ), 'check': (Act.CHECK, {Cmd.ARG_SVCACCT: doCheckUpdateSvcAcct, Cmd.ARG_USERINVITATION: doCheckCIUserInvitations, Cmd.ARG_ISINVITABLE: doCheckCIUserInvitations, Cmd.ARG_ORG: doCheckOrgUnit, Cmd.ARG_SUSPENDED: doCheckUserSuspended, } ), 'clear': (Act.CLEAR, {Cmd.ARG_ALERTSETTINGS: doClearAlertSettings, Cmd.ARG_CONTACT: doClearDomainContacts, Cmd.ARG_COURSESTUDENTGROUP: doClearCourseStudentGroups, Cmd.ARG_COURSESTUDENTGROUPMEMBERS: doProcessCourseStudentGroupMembers, } ), 'close': (Act.CLOSE, {Cmd.ARG_VAULTMATTER: doCloseVaultMatter, } ), 'copy': (Act.COPY, {Cmd.ARG_SHAREDDRIVEACLS: doCopySyncSharedDriveACLs, Cmd.ARG_STORAGEBUCKET: doCopyCloudStorageBucket, Cmd.ARG_VAULTEXPORT: doCopyVaultExport, Cmd.ARG_VAULTQUERY: doCopyVaultQuery, } ), 'create': (Act.CREATE, MAIN_ADD_CREATE_FUNCTIONS ), 'dedup': (Act.DEDUP, {Cmd.ARG_CONTACT: doDedupDomainContacts, } ), 'delete': (Act.DELETE, {Cmd.ARG_ADMIN: doDeleteAdmin, Cmd.ARG_ADMINROLE: doDeleteAdminRole, Cmd.ARG_ALIAS: doDeleteAliases, Cmd.ARG_ALERT: doDeleteOrUndeleteAlert, Cmd.ARG_BROWSER: doDeleteBrowsers, Cmd.ARG_BUILDING: doDeleteBuilding, Cmd.ARG_CAALEVEL: doDeleteCAALevel, Cmd.ARG_CHATMESSAGE: doDeleteChatMessage, Cmd.ARG_CHROMENETWORK: doDeleteChromeNetwork, Cmd.ARG_CHROMEPOLICY: doDeleteChromePolicy, Cmd.ARG_CHROMEPROFILE: doDeleteChromeProfile, Cmd.ARG_CIGROUP: doDeleteCIGroups, Cmd.ARG_CIPOLICY: doDeleteCIPolicies, Cmd.ARG_CLASSROOMINVITATION: doDeleteClassroomInvitations, Cmd.ARG_CONTACT: doDeleteDomainContacts, Cmd.ARG_CONTACTPHOTO: doDeleteDomainContactPhoto, Cmd.ARG_COURSE: doDeleteCourse, Cmd.ARG_COURSES: doDeleteCourses, Cmd.ARG_COURSESTUDENTGROUP: doDeleteCourseStudentGroups, Cmd.ARG_COURSESTUDENTGROUPMEMBERS: doProcessCourseStudentGroupMembers, Cmd.ARG_DEVICE: doDeleteCIDevice, Cmd.ARG_DEVICEUSER: doDeleteCIDeviceUser, Cmd.ARG_DOMAIN: doDeleteDomain, Cmd.ARG_DOMAINALIAS: doDeleteDomainAlias, Cmd.ARG_DOMAINCONTACT: doDeleteDomainContacts, Cmd.ARG_DRIVEFILEACL: doDeleteDriveFileACLs, Cmd.ARG_DRIVELABELPERMISSION: doDeleteDriveLabelPermissions, Cmd.ARG_FEATURE: doDeleteFeature, Cmd.ARG_GROUP: doDeleteGroups, Cmd.ARG_GUARDIAN: doDeleteGuardian, Cmd.ARG_INBOUNDSSOASSIGNMENT: doDeleteInboundSSOAssignment, Cmd.ARG_INBOUNDSSOCREDENTIAL: doDeleteInboundSSOCredential, Cmd.ARG_INBOUNDSSOPROFILE: doDeleteInboundSSOProfile, Cmd.ARG_MOBILE: doDeleteMobileDevices, Cmd.ARG_ORG: doDeleteOrg, Cmd.ARG_ORGS: doDeleteOrgs, Cmd.ARG_PERMISSION: doDeletePermissions, Cmd.ARG_PRINTER: doDeletePrinter, Cmd.ARG_PROJECT: doDeleteProject, Cmd.ARG_RESOLDSUBSCRIPTION: doDeleteResoldSubscription, Cmd.ARG_RESOURCE: doDeleteResourceCalendar, Cmd.ARG_RESOURCES: doDeleteResourceCalendars, Cmd.ARG_SAKEY: doDeleteSvcAcctKeys, Cmd.ARG_SCHEMA: doDeleteUserSchemas, Cmd.ARG_SHAREDDRIVE: doDeleteSharedDrive, Cmd.ARG_SITEACL: deprecatedDomainSites, Cmd.ARG_SVCACCT: doDeleteSvcAcct, Cmd.ARG_USER: doDeleteUser, Cmd.ARG_USERS: doDeleteUsers, Cmd.ARG_VAULTEXPORT: doDeleteVaultExport, Cmd.ARG_VAULTHOLD: doDeleteVaultHold, Cmd.ARG_VAULTMATTER: doDeleteVaultMatter, Cmd.ARG_VAULTQUERY: doDeleteVaultQuery, } ), 'download': (Act.DOWNLOAD, {Cmd.ARG_STORAGEBUCKET: doDownloadCloudStorageBucket, Cmd.ARG_STORAGEFILE: doDownloadCloudStorageFile, Cmd.ARG_VAULTEXPORT: doDownloadVaultExport, } ), 'enable': (Act.ENABLE, {Cmd.ARG_API: doEnableAPIs, } ), 'get': (Act.DOWNLOAD, {Cmd.ARG_CONTACTPHOTO: doGetDomainContactPhoto, Cmd.ARG_DEVICEFILE: doGetCrOSDeviceFiles, } ), 'getcommand': (Act.GET_COMMAND_RESULT, {Cmd.ARG_CROS: doGetCommandResultCrOSDevices, } ), 'hide': (Act.HIDE, {Cmd.ARG_SHAREDDRIVE: doHideUnhideSharedDrive, } ), 'info': (Act.INFO, {Cmd.ARG_ADMINROLE: doInfoPrintShowAdminRoles, Cmd.ARG_ALERT: doInfoAlert, Cmd.ARG_ALIAS: doInfoAliases, Cmd.ARG_BUILDING: doInfoBuilding, Cmd.ARG_BROWSER: doInfoBrowsers, Cmd.ARG_CHATEVENT: doInfoChatEvent, Cmd.ARG_CHATMEMBER: doInfoChatMember, Cmd.ARG_CHATMESSAGE: doInfoChatMessage, Cmd.ARG_CHATSPACE: doInfoChatSpace, Cmd.ARG_CHROMEAPP: doInfoChromeApp, Cmd.ARG_CHROMEPROFILE: doInfoChromeProfile, Cmd.ARG_CHROMEPROFILECOMMAND: doInfoChromeProfileCommand, Cmd.ARG_CHROMESCHEMA: doInfoChromePolicySchemas, Cmd.ARG_CIGROUP: doInfoCIGroups, Cmd.ARG_CIGROUPMEMBERS: doInfoCIGroupMembers, Cmd.ARG_CIPOLICY: doInfoCIPolicies, Cmd.ARG_CONTACT: doInfoDomainContacts, Cmd.ARG_COURSE: doInfoCourse, Cmd.ARG_COURSES: doInfoCourses, Cmd.ARG_CROS: doInfoCrOSDevices, Cmd.ARG_CROSTELEMETRY: doInfoPrintShowCrOSTelemetry, Cmd.ARG_CURRENTPROJECTID: doInfoCurrentProjectId, Cmd.ARG_CUSTOMER: doInfoCustomer, Cmd.ARG_CUSTOMERID: doInfoCustomerId, Cmd.ARG_DATATRANSFER: doInfoDataTransfer, Cmd.ARG_DEVICE: doInfoCIDevice, Cmd.ARG_DEVICEUSER: doInfoCIDeviceUser, Cmd.ARG_DEVICEUSERSTATE: doInfoCIDeviceUserState, Cmd.ARG_DOMAIN: doInfoDomain, Cmd.ARG_DOMAINALIAS: doInfoDomainAlias, Cmd.ARG_DOMAINCONTACT: doInfoDomainContacts, Cmd.ARG_DRIVEFILEACL: doInfoDriveFileACLs, Cmd.ARG_DRIVELABEL: doInfoDriveLabels, Cmd.ARG_INSTANCE: doInfoInstance, Cmd.ARG_GCPORGID: doInfoGCPOrgId, Cmd.ARG_GROUP: doInfoGroups, Cmd.ARG_GROUPMEMBERS: doInfoGroupMembers, Cmd.ARG_INBOUNDSSOASSIGNMENT: doInfoInboundSSOAssignment, Cmd.ARG_INBOUNDSSOCREDENTIAL: doInfoInboundSSOCredential, Cmd.ARG_INBOUNDSSOPROFILE: doInfoInboundSSOProfile, Cmd.ARG_MOBILE: doInfoMobileDevices, Cmd.ARG_ORG: doInfoOrg, Cmd.ARG_ORGS: doInfoOrgs, Cmd.ARG_PEOPLEPROFILE: doInfoDomainPeopleProfile, Cmd.ARG_PEOPLECONTACT: doInfoDomainPeopleContacts, Cmd.ARG_PRINTER: doInfoPrinter, Cmd.ARG_RESOLDCUSTOMER: doInfoResoldCustomer, Cmd.ARG_RESOLDSUBSCRIPTION: doInfoResoldSubscription, Cmd.ARG_RESOURCE: doInfoResourceCalendar, Cmd.ARG_RESOURCES: doInfoResourceCalendars, Cmd.ARG_SCHEMA: doInfoUserSchemas, Cmd.ARG_SHAREDDRIVE: doInfoSharedDrive, Cmd.ARG_SITE: deprecatedDomainSites, Cmd.ARG_SITEACL: deprecatedDomainSites, Cmd.ARG_USER: doInfoUser, Cmd.ARG_USERS: doInfoUsers, Cmd.ARG_USERINVITATION: doInfoCIUserInvitations, Cmd.ARG_VAULTEXPORT: doInfoVaultExport, Cmd.ARG_VAULTHOLD: doInfoVaultHold, Cmd.ARG_VAULTMATTER: doInfoVaultMatter, Cmd.ARG_VAULTQUERY: doInfoVaultQuery, Cmd.ARG_VERIFY: doInfoSiteVerification, } ), 'issuecommand': (Act.ISSUE_COMMAND, {Cmd.ARG_CROS: doIssueCommandCrOSDevices, } ), 'move': (Act.MOVE, {Cmd.ARG_BROWSER: doMoveBrowsers, } ), 'print': (Act.PRINT, {Cmd.ARG_ADDRESSES: doPrintAddresses, Cmd.ARG_ADMINROLE: doInfoPrintShowAdminRoles, Cmd.ARG_ADMIN: doPrintShowAdmins, Cmd.ARG_ALERT: doPrintShowAlerts, Cmd.ARG_ALERTFEEDBACK: doPrintShowAlertFeedback, Cmd.ARG_ALIAS: doPrintAliases, Cmd.ARG_BROWSER: doPrintShowBrowsers, Cmd.ARG_BROWSERTOKEN: doPrintShowBrowserTokens, Cmd.ARG_BUILDING: doPrintShowBuildings, Cmd.ARG_CAALEVEL: doPrintShowCAALevels, Cmd.ARG_CHANNELCUSTOMER: doPrintShowChannelCustomers, Cmd.ARG_CHANNELCUSTOMERENTITLEMENT: doPrintShowChannelCustomerEntitlements, Cmd.ARG_CHANNELOFFER: doPrintShowChannelOffers, Cmd.ARG_CHANNELPRODUCT: doPrintShowChannelProducts, Cmd.ARG_CHANNELSKU: doPrintShowChannelSKUs, Cmd.ARG_CHATMEMBER: doPrintShowChatMembers, Cmd.ARG_CHATSPACE: doPrintShowChatSpaces, Cmd.ARG_CHROMEAPP: doPrintShowChromeApps, Cmd.ARG_CHROMEAPPDEVICES: doPrintShowChromeAppDevices, Cmd.ARG_CHROMEAUES: doPrintShowChromeAues, Cmd.ARG_CHROMEDEVICECOUNTS: doPrintShowChromeDeviceCounts, Cmd.ARG_CHROMEHISTORY: doPrintShowChromeHistory, Cmd.ARG_CHROMENEEDSATTN: doPrintShowChromeNeedsAttn, Cmd.ARG_CHROMEPOLICY: doPrintShowChromePolicies, Cmd.ARG_CHROMEPROFILE: doPrintShowChromeProfiles, Cmd.ARG_CHROMEPROFILECOMMAND: doPrintShowChromeProfileCommands, Cmd.ARG_CHROMESCHEMA: doPrintShowChromePolicySchemas, Cmd.ARG_CHROMESNVALIDITY: doPrintChromeSnValidity, Cmd.ARG_CHROMEVERSIONS: doPrintShowChromeVersions, Cmd.ARG_CIGROUP: doPrintCIGroups, Cmd.ARG_CIGROUPMEMBERS: doPrintCIGroupMembers, Cmd.ARG_CIPOLICY: doPrintShowCIPolicies, Cmd.ARG_CLASSROOMINVITATION: doPrintShowClassroomInvitations, Cmd.ARG_CONTACT: doPrintShowDomainContacts, Cmd.ARG_COURSE: doPrintCourses, Cmd.ARG_COURSES: doPrintCourses, Cmd.ARG_COURSEANNOUNCEMENTS: doPrintCourseAnnouncements, Cmd.ARG_COURSECOUNTS: doPrintCourseCounts, Cmd.ARG_COURSEMATERIALS: doPrintCourseMaterials, Cmd.ARG_COURSEPARTICIPANTS: doPrintCourseParticipants, Cmd.ARG_COURSESTUDENTGROUP: doPrintCourseStudentGroups, Cmd.ARG_COURSESTUDENTGROUPMEMBERS: doPrintCourseStudentGroupMembers, Cmd.ARG_COURSESUBMISSIONS: doPrintCourseSubmissions, Cmd.ARG_COURSETOPICS: doPrintCourseTopics, Cmd.ARG_COURSEWORK: doPrintCourseWork, Cmd.ARG_CROS: doPrintCrOSDevices, Cmd.ARG_CROSACTIVITY: doPrintCrOSActivity, Cmd.ARG_CROSTELEMETRY: doInfoPrintShowCrOSTelemetry, Cmd.ARG_DATATRANSFER: doPrintShowDataTransfers, Cmd.ARG_DEVICE: doPrintCIDevices, Cmd.ARG_DEVICEUSER: doPrintCIDeviceUsers, Cmd.ARG_DOMAIN: doPrintShowDomains, Cmd.ARG_DOMAINALIAS: doPrintShowDomainAliases, Cmd.ARG_DOMAINCONTACT: doPrintShowDomainContacts, Cmd.ARG_DRIVEFILEACL: doPrintShowDriveFileACLs, Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels, Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions, Cmd.ARG_FEATURE: doPrintShowFeatures, Cmd.ARG_GROUP: doPrintGroups, Cmd.ARG_GROUPMEMBERS: doPrintGroupMembers, Cmd.ARG_GROUPTREE: doPrintShowGroupTree, Cmd.ARG_GUARDIAN: doPrintShowGuardians, Cmd.ARG_INBOUNDSSOASSIGNMENT: doPrintShowInboundSSOAssignments, Cmd.ARG_INBOUNDSSOCREDENTIAL: doPrintShowInboundSSOCredentials, Cmd.ARG_INBOUNDSSOPROFILE: doPrintShowInboundSSOProfiles, Cmd.ARG_LICENSE: doPrintLicenses, Cmd.ARG_MOBILE: doPrintMobileDevices, Cmd.ARG_ORG: doPrintOrgs, Cmd.ARG_ORGS: doPrintOrgs, Cmd.ARG_ORGUNITSHAREDDRIVE: doPrintShowOrgunitSharedDrives, Cmd.ARG_OWNERSHIP: doPrintShowOwnership, Cmd.ARG_PEOPLECONTACT: doPrintShowDomainPeopleContacts, Cmd.ARG_PEOPLEPROFILE: doPrintShowDomainPeopleProfiles, Cmd.ARG_PRINTER: doPrintShowPrinters, Cmd.ARG_PRINTERMODEL: doPrintShowPrinterModels, Cmd.ARG_PRIVILEGES: doPrintShowPrivileges, Cmd.ARG_PROJECT: doPrintShowProjects, Cmd.ARG_RESOLDSUBSCRIPTION: doPrintShowResoldSubscriptions, Cmd.ARG_RESOURCE: doPrintShowResourceCalendars, Cmd.ARG_RESOURCES: doPrintShowResourceCalendars, Cmd.ARG_SCHEMA: doPrintShowUserSchemas, Cmd.ARG_SHAREDDRIVE: doPrintShowSharedDrives, Cmd.ARG_SHAREDDRIVEACLS: doPrintShowSharedDriveACLs, Cmd.ARG_SHAREDDRIVEORGANIZERS: doPrintSharedDriveOrganizers, Cmd.ARG_SITE: deprecatedDomainSites, Cmd.ARG_SITEACL: deprecatedDomainSites, Cmd.ARG_SITEACTIVITY: deprecatedDomainSites, Cmd.ARG_SVCACCT: doPrintShowSvcAccts, Cmd.ARG_TOKEN: doPrintShowTokens, Cmd.ARG_TRANSFERAPPS: doShowTransferApps, Cmd.ARG_USER: doPrintUsers, Cmd.ARG_USERS: doPrintUsers, Cmd.ARG_USERCOUNTSBYORGUNIT: doPrintUserCountsByOrgUnit, Cmd.ARG_USERINVITATION: doPrintShowCIUserInvitations, Cmd.ARG_VAULTCOUNT: doPrintVaultCounts, Cmd.ARG_VAULTEXPORT: doPrintShowVaultExports, Cmd.ARG_VAULTHOLD: doPrintShowVaultHolds, Cmd.ARG_VAULTMATTER: doPrintShowVaultMatters, Cmd.ARG_VAULTQUERY: doPrintShowVaultQueries, } ), 'remove': (Act.REMOVE, {Cmd.ARG_ALIAS: doRemoveAliases, Cmd.ARG_DRIVELABELPERMISSION: doDeleteDriveLabelPermissions, } ), 'reopen': (Act.REOPEN, {Cmd.ARG_VAULTMATTER: doReopenVaultMatter, } ), 'replace': (Act.UPDATE, {Cmd.ARG_SAKEY: doReplaceSvcAcctKeys, } ), 'rotate': (Act.UPDATE, {Cmd.ARG_SAKEY: doProcessSvcAcctKeys, } ), 'revoke': (Act.REVOKE, {Cmd.ARG_BROWSERTOKEN: doRevokeBrowserToken, } ), 'send': (Act.SEND, {Cmd.ARG_USERINVITATION: doCIUserInvitationsAction, } ), 'setup': (Act.SETUP, {Cmd.ARG_CHAT: doSetupChat, } ), 'show': (Act.SHOW, {Cmd.ARG_ADMINROLE: doInfoPrintShowAdminRoles, Cmd.ARG_ADMIN: doPrintShowAdmins, Cmd.ARG_ALERT: doPrintShowAlerts, Cmd.ARG_ALERTFEEDBACK: doPrintShowAlertFeedback, Cmd.ARG_ALERTSETTINGS: doShowAlertSettings, Cmd.ARG_BROWSER: doPrintShowBrowsers, Cmd.ARG_BROWSERTOKEN: doPrintShowBrowserTokens, Cmd.ARG_BUILDING: doPrintShowBuildings, Cmd.ARG_CAALEVEL: doPrintShowCAALevels, Cmd.ARG_CHANNELCUSTOMER: doPrintShowChannelCustomers, Cmd.ARG_CHANNELCUSTOMERENTITLEMENT: doPrintShowChannelCustomerEntitlements, Cmd.ARG_CHANNELOFFER: doPrintShowChannelOffers, Cmd.ARG_CHANNELPRODUCT: doPrintShowChannelProducts, Cmd.ARG_CHANNELSKU: doPrintShowChannelSKUs, Cmd.ARG_CHATMEMBER: doPrintShowChatMembers, Cmd.ARG_CHATSPACE: doPrintShowChatSpaces, Cmd.ARG_CHROMEAPP: doPrintShowChromeApps, Cmd.ARG_CHROMEAPPDEVICES: doPrintShowChromeAppDevices, Cmd.ARG_CHROMEAUES: doPrintShowChromeAues, Cmd.ARG_CHROMEDEVICECOUNTS: doPrintShowChromeDeviceCounts, Cmd.ARG_CHROMEHISTORY: doPrintShowChromeHistory, Cmd.ARG_CHROMENEEDSATTN: doPrintShowChromeNeedsAttn, Cmd.ARG_CHROMEPOLICY: doPrintShowChromePolicies, Cmd.ARG_CHROMEPROFILE: doPrintShowChromeProfiles, Cmd.ARG_CHROMEPROFILECOMMAND: doPrintShowChromeProfileCommands, Cmd.ARG_CHROMESCHEMA: doPrintShowChromePolicySchemas, Cmd.ARG_CHROMEVERSIONS: doPrintShowChromeVersions, Cmd.ARG_CIGROUPMEMBERS: doShowCIGroupMembers, Cmd.ARG_CIPOLICY: doPrintShowCIPolicies, Cmd.ARG_CLASSROOMINVITATION: doPrintShowClassroomInvitations, Cmd.ARG_CONTACT: doPrintShowDomainContacts, Cmd.ARG_CROSTELEMETRY: doInfoPrintShowCrOSTelemetry, Cmd.ARG_DATATRANSFER: doPrintShowDataTransfers, Cmd.ARG_DOMAIN: doPrintShowDomains, Cmd.ARG_DOMAINALIAS: doPrintShowDomainAliases, Cmd.ARG_DOMAINCONTACT: doPrintShowDomainContacts, Cmd.ARG_DRIVEFILEACL: doPrintShowDriveFileACLs, Cmd.ARG_DRIVELABEL: doPrintShowDriveLabels, Cmd.ARG_DRIVELABELPERMISSION: doPrintShowDriveLabelPermissions, Cmd.ARG_FEATURE: doPrintShowFeatures, Cmd.ARG_GROUPMEMBERS: doShowGroupMembers, Cmd.ARG_GROUPTREE: doPrintShowGroupTree, Cmd.ARG_GUARDIAN: doPrintShowGuardians, Cmd.ARG_INBOUNDSSOASSIGNMENT: doPrintShowInboundSSOAssignments, Cmd.ARG_INBOUNDSSOCREDENTIAL: doPrintShowInboundSSOCredentials, Cmd.ARG_INBOUNDSSOPROFILE: doPrintShowInboundSSOProfiles, Cmd.ARG_ORGUNITSHAREDDRIVE: doPrintShowOrgunitSharedDrives, Cmd.ARG_LICENSE: doShowLicenses, Cmd.ARG_ORGTREE: doShowOrgTree, Cmd.ARG_OWNERSHIP: doPrintShowOwnership, Cmd.ARG_PEOPLECONTACT: doPrintShowDomainPeopleContacts, Cmd.ARG_PEOPLEPROFILE: doPrintShowDomainPeopleProfiles, Cmd.ARG_PRINTER: doPrintShowPrinters, Cmd.ARG_PRINTERMODEL: doPrintShowPrinterModels, Cmd.ARG_PRIVILEGES: doPrintShowPrivileges, Cmd.ARG_PROJECT: doPrintShowProjects, Cmd.ARG_RESOLDSUBSCRIPTION: doPrintShowResoldSubscriptions, Cmd.ARG_RESOURCE: doPrintShowResourceCalendars, Cmd.ARG_RESOURCES: doPrintShowResourceCalendars, Cmd.ARG_SAKEY: doShowSvcAcctKeys, Cmd.ARG_SCHEMA: doPrintShowUserSchemas, Cmd.ARG_SHAREDDRIVE: doPrintShowSharedDrives, Cmd.ARG_SHAREDDRIVEACLS: doPrintShowSharedDriveACLs, Cmd.ARG_SHAREDDRIVEINFO: doInfoSharedDrive, Cmd.ARG_SHAREDDRIVETHEMES: doShowSharedDriveThemes, Cmd.ARG_SITE: deprecatedDomainSites, Cmd.ARG_SITEACL: deprecatedDomainSites, Cmd.ARG_SVCACCT: doPrintShowSvcAccts, Cmd.ARG_TOKEN: doPrintShowTokens, Cmd.ARG_TRANSFERAPPS: doShowTransferApps, Cmd.ARG_USERINVITATION: doPrintShowCIUserInvitations, Cmd.ARG_VAULTEXPORT: doPrintShowVaultExports, Cmd.ARG_VAULTHOLD: doPrintShowVaultHolds, Cmd.ARG_VAULTMATTER: doPrintShowVaultMatters, Cmd.ARG_VAULTQUERY: doPrintShowVaultQueries, } ), 'suspend': (Act.SUSPEND, {Cmd.ARG_USER: doSuspendUnsuspendUser, Cmd.ARG_USERS: doSuspendUnsuspendUsers, } ), 'sync': (Act.SYNC, {Cmd.ARG_DEVICE: doSyncCIDevices, Cmd.ARG_SHAREDDRIVEACLS: copySyncSharedDriveACLs, Cmd.ARG_COURSESTUDENTGROUPMEMBERS: doProcessCourseStudentGroupMembers, } ), 'unhide': (Act.UNHIDE, {Cmd.ARG_SHAREDDRIVE: doHideUnhideSharedDrive, } ), 'update': (Act.UPDATE, {Cmd.ARG_ADMINROLE: doCreateUpdateAdminRoles, Cmd.ARG_ALERTSETTINGS: doUpdateAlertSettings, Cmd.ARG_ALIAS: doCreateUpdateAliases, Cmd.ARG_BROWSER: doUpdateBrowsers, Cmd.ARG_BUILDING: doUpdateBuilding, Cmd.ARG_CAALEVEL: doUpdateCAALevel, Cmd.ARG_CHATMESSAGE: doUpdateChatMessage, Cmd.ARG_CHROMEPOLICY: doUpdateChromePolicy, Cmd.ARG_CIGROUP: doUpdateCIGroups, Cmd.ARG_CIPOLICY: doCreateUpdateCIPolicy, Cmd.ARG_CONTACT: doUpdateDomainContacts, Cmd.ARG_CONTACTPHOTO: doUpdateDomainContactPhoto, Cmd.ARG_COURSE: doUpdateCourse, Cmd.ARG_COURSES: doUpdateCourses, Cmd.ARG_COURSESTUDENTGROUP: doUpdateCourseStudentGroups, Cmd.ARG_CROS: doUpdateCrOSDevices, Cmd.ARG_CUSTOMER: doUpdateCustomer, Cmd.ARG_DEVICE: doUpdateCIDevice, Cmd.ARG_DEVICEUSER: doUpdateCIDeviceUser, Cmd.ARG_DEVICEUSERSTATE: doUpdateCIDeviceUserState, Cmd.ARG_DOMAIN: doUpdateDomain, Cmd.ARG_DRIVEFILEACL: doUpdateDriveFileACLs, Cmd.ARG_FEATURE: doUpdateFeature, Cmd.ARG_GROUP: doUpdateGroups, Cmd.ARG_INBOUNDSSOASSIGNMENT: doUpdateInboundSSOAssignment, Cmd.ARG_INBOUNDSSOPROFILE: doUpdateInboundSSOProfile, Cmd.ARG_MOBILE: doUpdateMobileDevices, Cmd.ARG_ORG: doUpdateOrg, Cmd.ARG_ORGS: doUpdateOrgs, Cmd.ARG_PRINTER: doUpdatePrinter, Cmd.ARG_PROJECT: doUpdateProject, Cmd.ARG_RESOLDCUSTOMER: doUpdateResoldCustomer, Cmd.ARG_RESOLDSUBSCRIPTION: doUpdateResoldSubscription, Cmd.ARG_RESOURCE: doUpdateResourceCalendar, Cmd.ARG_RESOURCES: doUpdateResourceCalendars, Cmd.ARG_SAKEY: doUpdateSvcAcctKeys, Cmd.ARG_SCHEMA: doCreateUpdateUserSchemas, Cmd.ARG_SHAREDDRIVE: doUpdateSharedDrive, Cmd.ARG_SITE: deprecatedDomainSites, Cmd.ARG_SITEACL: deprecatedDomainSites, Cmd.ARG_SVCACCT: doCheckUpdateSvcAcct, Cmd.ARG_USER: doUpdateUser, Cmd.ARG_USERS: doUpdateUsers, Cmd.ARG_VAULTHOLD: doUpdateVaultHold, Cmd.ARG_VAULTMATTER: doUpdateVaultMatter, Cmd.ARG_VERIFY: doUpdateSiteVerification, } ), 'undelete': (Act.UNDELETE, {Cmd.ARG_ALERT: doDeleteOrUndeleteAlert, Cmd.ARG_USER: doUndeleteUser, Cmd.ARG_USERS: doUndeleteUsers, Cmd.ARG_VAULTMATTER: doUndeleteVaultMatter, } ), 'unsuspend': (Act.UNSUSPEND, {Cmd.ARG_USER: doSuspendUnsuspendUser, Cmd.ARG_USERS: doSuspendUnsuspendUsers, } ), 'upload': (Act.USE, {Cmd.ARG_SAKEY: doUploadSvcAcctKeys, } ), 'use': (Act.USE, {Cmd.ARG_PROJECT: doUseProject, } ), 'wipe': (Act.WIPE, {Cmd.ARG_DEVICE: doWipeCIDevice, Cmd.ARG_DEVICEUSER: doWipeCIDeviceUser, } ), 'yubikey': (Act.RESET_YUBIKEY_PIV, {Cmd.ARG_RESETPIV: doResetYubiKeyPIV, # from cmd/yubikey } ), } MAIN_COMMANDS_OBJ_ALIASES = { Cmd.ARG_ADMINS: Cmd.ARG_ADMIN, Cmd.ARG_ADMINROLES: Cmd.ARG_ADMINROLE, Cmd.ARG_ALERTFEEDBACKS: Cmd.ARG_ALERTFEEDBACK, Cmd.ARG_ALERTS: Cmd.ARG_ALERT, Cmd.ARG_ALERTSFEEDBACK: Cmd.ARG_ALERTFEEDBACK, Cmd.ARG_ALIASDOMAIN: Cmd.ARG_DOMAINALIAS, Cmd.ARG_ALIASDOMAINS: Cmd.ARG_DOMAINALIAS, Cmd.ARG_ALIASES: Cmd.ARG_ALIAS, Cmd.ARG_APIS: Cmd.ARG_API, Cmd.ARG_APIPROJECT: Cmd.ARG_PROJECT, Cmd.ARG_APPDETAILS: Cmd.ARG_CHROMEAPP, Cmd.ARG_BROWSERS: Cmd.ARG_BROWSER, Cmd.ARG_BROWSERTOKENS: Cmd.ARG_BROWSERTOKEN, Cmd.ARG_BUCKET: Cmd.ARG_STORAGEBUCKET, Cmd.ARG_BUCKETS: Cmd.ARG_STORAGEBUCKET, Cmd.ARG_BUILDINGS: Cmd.ARG_BUILDING, Cmd.ARG_CAALEVELS: Cmd.ARG_CAALEVEL, Cmd.ARG_CHATMEMBERS: Cmd.ARG_CHATMEMBER, Cmd.ARG_CHANNELCUSTOMERS: Cmd.ARG_CHANNELCUSTOMER, Cmd.ARG_CHANNELCUSTOMERENTITLEMENTS: Cmd.ARG_CHANNELCUSTOMERENTITLEMENT, Cmd.ARG_CHANNELOFFERS: Cmd.ARG_CHANNELOFFER, Cmd.ARG_CHANNELPRODUCTS: Cmd.ARG_CHANNELPRODUCT, Cmd.ARG_CHANNELSKUS: Cmd.ARG_CHANNELSKU, Cmd.ARG_CHATSPACES: Cmd.ARG_CHATSPACE, Cmd.ARG_CHROMEAPPS: Cmd.ARG_CHROMEAPP, Cmd.ARG_CHROMENETWORKS: Cmd.ARG_CHROMENETWORK, Cmd.ARG_CHROMEPOLICIES: Cmd.ARG_CHROMEPOLICY, Cmd.ARG_CHROMEPROFILES: Cmd.ARG_CHROMEPROFILE, Cmd.ARG_CHROMEPROFILECOMMANDS: Cmd.ARG_CHROMEPROFILECOMMAND, Cmd.ARG_CHROMESCHEMAS: Cmd.ARG_CHROMESCHEMA, Cmd.ARG_CIGROUPS: Cmd.ARG_CIGROUP, Cmd.ARG_CIGROUPSMEMBERS: Cmd.ARG_CIGROUPMEMBERS, Cmd.ARG_CIMEMBER: Cmd.ARG_CIGROUPMEMBERS, Cmd.ARG_CIMEMBERS: Cmd.ARG_CIGROUPMEMBERS, Cmd.ARG_CIPOLICIES: Cmd.ARG_CIPOLICY, Cmd.ARG_CLASSIFICATIONLABEL: Cmd.ARG_DRIVELABEL, Cmd.ARG_CLASSIFICATIONLABELS: Cmd.ARG_DRIVELABEL, Cmd.ARG_CLASSIFICATIONLABELPERMISSION: Cmd.ARG_DRIVELABELPERMISSION, Cmd.ARG_CLASSIFICATIONLABELPERMISSIONS: Cmd.ARG_DRIVELABELPERMISSION, Cmd.ARG_CLASS: Cmd.ARG_COURSE, Cmd.ARG_CLASSES: Cmd.ARG_COURSES, Cmd.ARG_CLASSCOUNTS: Cmd.ARG_COURSECOUNTS, Cmd.ARG_CLASSPARTICIPANTS: Cmd.ARG_COURSEPARTICIPANTS, Cmd.ARG_CLASSROOMINVITATIONS: Cmd.ARG_CLASSROOMINVITATION, Cmd.ARG_CONTACTS: Cmd.ARG_CONTACT, Cmd.ARG_CONTACTPHOTOS: Cmd.ARG_CONTACTPHOTO, Cmd.ARG_COURSESTUDENTGROUPS: Cmd.ARG_COURSESTUDENTGROUP, Cmd.ARG_CROSES: Cmd.ARG_CROS, Cmd.ARG_DATATRANSFERS: Cmd.ARG_DATATRANSFER, Cmd.ARG_DEVICES: Cmd.ARG_DEVICE, Cmd.ARG_DEVICEFILES: Cmd.ARG_DEVICEFILE, Cmd.ARG_DEVICEUSERS: Cmd.ARG_DEVICEUSER, Cmd.ARG_DOMAINS: Cmd.ARG_DOMAIN, Cmd.ARG_DOMAINALIASES: Cmd.ARG_DOMAINALIAS, Cmd.ARG_DOMAINCONTACT: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_DOMAINCONTACTS: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_DOMAINPROFILES: Cmd.ARG_PEOPLEPROFILE, Cmd.ARG_DRIVEFILEACLS: Cmd.ARG_DRIVEFILEACL, Cmd.ARG_DRIVELABELS: Cmd.ARG_DRIVELABEL, Cmd.ARG_DRIVELABELPERMISSIONS: Cmd.ARG_DRIVELABELPERMISSION, Cmd.ARG_EXPORT: Cmd.ARG_VAULTEXPORT, Cmd.ARG_EXPORTS: Cmd.ARG_VAULTEXPORT, Cmd.ARG_FEATURES: Cmd.ARG_FEATURE, Cmd.ARG_FORMS: Cmd.ARG_FORM, Cmd.ARG_GROUPS: Cmd.ARG_GROUP, Cmd.ARG_GROUPSMEMBERS: Cmd.ARG_GROUPMEMBERS, Cmd.ARG_GUARDIANINVITATIONS: Cmd.ARG_GUARDIANINVITATION, Cmd.ARG_GUARDIANINVITE: Cmd.ARG_GUARDIANINVITATION, Cmd.ARG_GUARDIANS: Cmd.ARG_GUARDIAN, Cmd.ARG_HOLD: Cmd.ARG_VAULTHOLD, Cmd.ARG_HOLDS: Cmd.ARG_VAULTHOLD, Cmd.ARG_INBOUNDSSOASSIGNMENTS: Cmd.ARG_INBOUNDSSOASSIGNMENT, Cmd.ARG_INBOUNDSSOCREDENTIALS: Cmd.ARG_INBOUNDSSOCREDENTIAL, Cmd.ARG_INBOUNDSSOPROFILES: Cmd.ARG_INBOUNDSSOPROFILE, Cmd.ARG_INVITEGUARDIAN: Cmd.ARG_GUARDIANINVITATION, Cmd.ARG_LICENCE: Cmd.ARG_LICENSE, Cmd.ARG_LICENCES: Cmd.ARG_LICENSE, Cmd.ARG_LICENSES: Cmd.ARG_LICENSE, Cmd.ARG_MATTER: Cmd.ARG_VAULTMATTER, Cmd.ARG_MATTERS: Cmd.ARG_VAULTMATTER, Cmd.ARG_MEMBER: Cmd.ARG_GROUPMEMBERS, Cmd.ARG_MEMBERS: Cmd.ARG_GROUPMEMBERS, Cmd.ARG_MOBILES: Cmd.ARG_MOBILE, Cmd.ARG_NICKNAME: 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_OU: Cmd.ARG_ORG, Cmd.ARG_OUS: Cmd.ARG_ORGS, Cmd.ARG_OUSHAREDDRIVE: Cmd.ARG_ORGUNITSHAREDDRIVE, Cmd.ARG_OUSHAREDDRIVES: Cmd.ARG_ORGUNITSHAREDDRIVE, Cmd.ARG_OUTREE: Cmd.ARG_ORGTREE, Cmd.ARG_PARTICIPANTS: Cmd.ARG_COURSEPARTICIPANTS, Cmd.ARG_PEOPLE: Cmd.ARG_PEOPLEPROFILE, Cmd.ARG_PEOPLECONTACTS: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_PEOPLEPROFILES: Cmd.ARG_PEOPLEPROFILE, Cmd.ARG_PERMISSIONS: Cmd.ARG_PERMISSION, Cmd.ARG_PRINTERS: Cmd.ARG_PRINTER, Cmd.ARG_PRINTERMODELS: Cmd.ARG_PRINTERMODEL, Cmd.ARG_PROJECTS: Cmd.ARG_PROJECT, Cmd.ARG_RESELLERCUSTOMERS: Cmd.ARG_RESOLDCUSTOMER, Cmd.ARG_RESELLERSUBSCRIPTIONS: Cmd.ARG_RESOLDSUBSCRIPTION, Cmd.ARG_RESOLDCUSTOMERS: Cmd.ARG_RESOLDCUSTOMER, Cmd.ARG_RESOLDSUBSCRIPTIONS: Cmd.ARG_RESOLDSUBSCRIPTION, Cmd.ARG_ROLE: Cmd.ARG_ADMINROLE, Cmd.ARG_ROLES: Cmd.ARG_ADMINROLE, Cmd.ARG_SAKEYS: Cmd.ARG_SAKEY, Cmd.ARG_SCHEMAS: Cmd.ARG_SCHEMA, Cmd.ARG_SHAREDDRIVES: Cmd.ARG_SHAREDDRIVE, Cmd.ARG_SIGNJWTSERVICEACCOUNT: Cmd.ARG_GCPSERVICEACCOUNT, Cmd.ARG_SITEACLS: Cmd.ARG_SITEACL, Cmd.ARG_SITES: Cmd.ARG_SITE, Cmd.ARG_STORAGEBUCKETS: Cmd.ARG_STORAGEBUCKET, Cmd.ARG_STORAGEFILES: Cmd.ARG_STORAGEFILE, Cmd.ARG_SVCACCTS: Cmd.ARG_SVCACCT, Cmd.ARG_TEAMDRIVE: Cmd.ARG_SHAREDDRIVE, Cmd.ARG_TEAMDRIVES: Cmd.ARG_SHAREDDRIVE, Cmd.ARG_TEAMDRIVEACLS: Cmd.ARG_SHAREDDRIVEACLS, Cmd.ARG_TEAMDRIVEINFO: Cmd.ARG_SHAREDDRIVEINFO, Cmd.ARG_TEAMDRIVEORGANIZERS: Cmd.ARG_SHAREDDRIVEORGANIZERS, Cmd.ARG_TEAMDRIVETHEMES: Cmd.ARG_SHAREDDRIVETHEMES, Cmd.ARG_TOKENS: Cmd.ARG_TOKEN, Cmd.ARG_TRANSFER: Cmd.ARG_DATATRANSFER, Cmd.ARG_TRANSFERS: Cmd.ARG_DATATRANSFER, Cmd.ARG_USERINVITATIONS: Cmd.ARG_USERINVITATION, Cmd.ARG_VAULTCOUNTS: Cmd.ARG_VAULTCOUNT, Cmd.ARG_VAULTEXPORTS: Cmd.ARG_VAULTEXPORT, Cmd.ARG_VAULTHOLDS: Cmd.ARG_VAULTHOLD, Cmd.ARG_VAULTQUERIES: Cmd.ARG_VAULTQUERY, Cmd.ARG_VAULTMATTERS: Cmd.ARG_VAULTMATTER, Cmd.ARG_VERIFICATION: Cmd.ARG_VERIFY, } from gam.cmd.audit import processAuditCommands from gam.cmd.oauth import processOauthCommands from gam.cmd.calendar import processCalendarsCommands, processResourceCommands, processResourcesCommands from gam.cmd.courses.participants import processCourseCommands, processCoursesCommands # Multi-step commands (audit, oauth, calendars, courses, resources) COMMANDS_MAP = { 'oauth': processOauthCommands, 'audit': processAuditCommands, 'calendars': processCalendarsCommands, 'course': processCourseCommands, 'courses': processCoursesCommands, 'resource': processResourceCommands, 'resources': processResourcesCommands, } # Command name aliases COMMANDS_ALIASES = { 'oauth2': 'oauth', 'calendar': 'calendars', } # commands CROS_COMMANDS = { 'getcommand': (Act.GET_COMMAND_RESULT, getCommandResultCrOSDevices), 'info': (Act.INFO, infoCrOSDevices), 'issuecommand': (Act.ISSUE_COMMAND, issueCommandCrOSDevices), 'list': (Act.LIST, doListCrOS), 'print': (Act.PRINT, doPrintCrOSEntity), 'update': (Act.UPDATE, updateCrOSDevices), } CROS_COMMANDS_WITH_OBJECTS = { 'get': (Act.DOWNLOAD, {Cmd.ARG_DEVICEFILE: getCrOSDeviceFiles, } ), 'show': (Act.SHOW, {Cmd.ARG_COUNT: showCountCrOS, } ), } CROS_COMMANDS_OBJ_ALIASES = { Cmd.ARG_DEVICEFILES: Cmd.ARG_DEVICEFILE, Cmd.ARG_COUNTS: Cmd.ARG_COUNT, } # commands USER_COMMANDS = { 'delegate': (Act.ADD, delegateTo), 'deprovision': (Act.DEPROVISION, deprovisionUser), 'draftemail': (Act.DRAFT, draftMessage), 'filter': (Act.ADD, createFilter), 'forward': (Act.SET, setForward), 'imap': (Act.SET, setImap), 'importemail': (Act.IMPORT, importMessage), 'insertemail': (Act.INSERT, insertMessage), 'label': (Act.ADD, createLabel), 'list': (Act.LIST, doListUser), 'language': (Act.SET, setLanguage), 'pop': (Act.SET, setPop), 'profile': (Act.SET, setProfile), 'sendas': (Act.ADD, createUpdateSendAs), 'sendemail': (Act.SENDEMAIL, doSendEmail), 'sendreply': (Act.SENDREPLY, doSendReply), 'signature': (Act.SET, setSignature), 'signout': (Act.SIGNOUT, signoutTurnoff2SVUsers), 'turnoff2sv': (Act.TURNOFF2SV, signoutTurnoff2SVUsers), 'vacation': (Act.SET, setVacation), 'waitformailbox': (Act.WAITFORMAILBOX, waitForMailbox), } # User commands with objects USER_ADD_CREATE_FUNCTIONS = { Cmd.ARG_CALENDAR: addCreateCalendars, Cmd.ARG_GROUP: addUserToGroups, Cmd.ARG_CALENDARACL: createCalendarACLs, Cmd.ARG_CHATEMOJI: createChatEmoji, Cmd.ARG_CHATMEMBER: createChatMember, Cmd.ARG_CHATMESSAGE: createChatMessage, Cmd.ARG_CHATSECTION: createUpdateChatSection, Cmd.ARG_CHATSPACE: createChatSpace, Cmd.ARG_CLASSROOMINVITATION: createClassroomInvitations, Cmd.ARG_CONTACTDELEGATE: processContactDelegates, Cmd.ARG_CSEIDENTITY: createUpdateCSEIdentity, Cmd.ARG_CSEKEYPAIR: createCSEKeyPair, Cmd.ARG_LOOKERSTUDIOPERMISSION: processLookerStudioPermissions, Cmd.ARG_DELEGATE: processDelegates, Cmd.ARG_DRIVEFILE: createDriveFile, Cmd.ARG_DRIVEFILEACL: createDriveFileACL, Cmd.ARG_DRIVEFILESHORTCUT: createDriveFileShortcut, Cmd.ARG_DRIVEFOLDERPATH: createDriveFolderPath, Cmd.ARG_DRIVELABELPERMISSION: createDriveLabelPermissions, Cmd.ARG_EVENT: createCalendarEvent, Cmd.ARG_FILTER: createFilter, Cmd.ARG_FOCUSTIME: createFocusTime, Cmd.ARG_FORM: createForm, Cmd.ARG_FORWARDINGADDRESS: createForwardingAddresses, Cmd.ARG_GUARDIAN: inviteGuardians, Cmd.ARG_GUARDIANINVITATION: inviteGuardians, Cmd.ARG_LABEL: createLabel, Cmd.ARG_LABELLIST: createLabelList, Cmd.ARG_LICENSE: createLicense, Cmd.ARG_MEETSPACE: createMeetSpace, Cmd.ARG_NOTE: createNote, Cmd.ARG_NOTEACL: createNotesACLs, Cmd.ARG_OUTOFOFFICE: createOutOfOffice, Cmd.ARG_PEOPLECONTACT: createUserPeopleContact, Cmd.ARG_PEOPLECONTACTGROUP: createUserPeopleContactGroup, Cmd.ARG_PERMISSION: createDriveFilePermissions, Cmd.ARG_SENDAS: createUpdateSendAs, Cmd.ARG_SHAREDDRIVE: createSharedDrive, Cmd.ARG_SHEET: createSheet, Cmd.ARG_SITE: deprecatedUserSites, Cmd.ARG_SITEACL: deprecatedUserSites, Cmd.ARG_SMIME: createSmime, Cmd.ARG_TASK: processTasks, Cmd.ARG_TASKLIST: processTasklists, Cmd.ARG_WORKINGLOCATION: createWorkingLocation, } USER_COMMANDS_WITH_OBJECTS = { 'accept': (Act.ACCEPT, {Cmd.ARG_CLASSROOMINVITATION: acceptClassroomInvitations, } ), 'add': (Act.ADD, USER_ADD_CREATE_FUNCTIONS ), 'append': (Act.APPEND, {Cmd.ARG_SHEETRANGE: appendSheetRanges, } ), 'archive': (Act.ARCHIVE, {Cmd.ARG_MESSAGE: archiveMessages, } ), 'cancel': (Act.CANCEL, {Cmd.ARG_GUARDIANINVITATION: cancelGuardianInvitations, } ), 'check': (Act.CHECK, {Cmd.ARG_DRIVEFILESHORTCUT: checkDriveFileShortcut, Cmd.ARG_GROUP: checkUserInGroups, Cmd.ARG_ISINVITABLE: checkCIUserIsInvitable, Cmd.ARG_SERVICEACCOUNT: checkServiceAccount, } ), 'claim': (Act.CLAIM, {Cmd.ARG_OWNERSHIP: claimOwnership, } ), 'clear': (Act.CLEAR, {Cmd.ARG_GUARDIAN: clearGuardians, Cmd.ARG_PEOPLECONTACT: clearUserPeopleContacts, Cmd.ARG_SHEETRANGE: clearSheetRanges, Cmd.ARG_TASKLIST: processTasklists, } ), 'collect': (Act.COLLECT, {Cmd.ARG_ORPHANS: collectOrphans, } ), 'copy': (Act.COPY, {Cmd.ARG_DRIVEFILE: copyDriveFile, Cmd.ARG_OTHERCONTACT: copyUserPeopleOtherContacts, Cmd.ARG_SHAREDDRIVEACLS: copySyncSharedDriveACLs, } ), 'create': (Act.CREATE, USER_ADD_CREATE_FUNCTIONS ), 'dedup': (Act.DEDUP, {Cmd.ARG_PEOPLECONTACT: dedupReplaceDomainUserPeopleContacts, } ), 'delete': (Act.DELETE, {Cmd.ARG_ALIAS: deleteUsersAliases, Cmd.ARG_ASP: deleteASP, Cmd.ARG_BACKUPCODE: deleteBackupCodes, Cmd.ARG_CALENDAR: deleteCalendars, Cmd.ARG_CALENDARACL: deleteCalendarACLs, Cmd.ARG_CHATEMOJI: deleteChatEmoji, Cmd.ARG_CHATMEMBER: deleteUpdateChatMember, Cmd.ARG_CHATMESSAGE: deleteChatMessage, Cmd.ARG_CHATSECTION: deleteChatSection, Cmd.ARG_CHATSPACE: deleteChatSpace, Cmd.ARG_CLASSROOMINVITATION: deleteClassroomInvitations, Cmd.ARG_CONTACTDELEGATE: processContactDelegates, Cmd.ARG_CSEIDENTITY: processCSEIdentity, Cmd.ARG_LOOKERSTUDIOPERMISSION: processLookerStudioPermissions, Cmd.ARG_DELEGATE: processDelegates, Cmd.ARG_DRIVEFILE: deleteDriveFile, Cmd.ARG_DRIVEFILEACL: deleteDriveFileACLs, Cmd.ARG_DRIVELABELPERMISSION: deleteDriveLabelPermissions, Cmd.ARG_EMPTYDRIVEFOLDERS: deleteEmptyDriveFolders, Cmd.ARG_EVENT: deleteCalendarEvents, Cmd.ARG_FILEREVISION: deleteFileRevisions, Cmd.ARG_FILTER: deleteFilters, Cmd.ARG_FOCUSTIME: deleteFocusTime, Cmd.ARG_FORWARDINGADDRESS: deleteForwardingAddresses, Cmd.ARG_GROUP: deleteUserFromGroups, Cmd.ARG_GUARDIAN: deleteGuardians, Cmd.ARG_LABEL: deleteLabel, Cmd.ARG_LABELLIST: deleteLabelList, Cmd.ARG_LABELID: deleteLabelId, Cmd.ARG_LABELIDLIST: deleteLabelIdList, Cmd.ARG_LICENSE: deleteLicense, Cmd.ARG_MESSAGE: processMessages, Cmd.ARG_NOTE: deleteInfoNotes, Cmd.ARG_NOTEACL: deleteNotesACLs, Cmd.ARG_OUTOFOFFICE: deleteOutOfOffice, Cmd.ARG_OTHERCONTACT: processUserPeopleOtherContacts, Cmd.ARG_PEOPLECONTACT: deleteUserPeopleContacts, Cmd.ARG_PEOPLECONTACTGROUP: deleteUserPeopleContactGroups, Cmd.ARG_PEOPLECONTACTPHOTO: deleteUserPeopleContactPhoto, Cmd.ARG_PERMISSION: deletePermissions, Cmd.ARG_PHOTO: deletePhoto, Cmd.ARG_SENDAS: deleteInfoSendAs, Cmd.ARG_SMIME: deleteSmime, Cmd.ARG_SHAREDDRIVE: deleteSharedDrive, Cmd.ARG_SITEACL: deprecatedUserSites, Cmd.ARG_TASK: processTasks, Cmd.ARG_TASKLIST: processTasklists, Cmd.ARG_THREAD: processThreads, Cmd.ARG_TOKEN: deleteTokens, Cmd.ARG_USER: deleteUsers, Cmd.ARG_WORKINGLOCATION: deleteWorkingLocation, } ), 'disable': (Act.DISABLE, {Cmd.ARG_CSEKEYPAIR: processCSEKeyPair, } ), 'draft': (Act.DRAFT, {Cmd.ARG_MESSAGE: draftMessage, } ), 'empty': (Act.EMPTY, {Cmd.ARG_CALENDARTRASH: emptyCalendarTrash, Cmd.ARG_DRIVETRASH: emptyDriveTrash, } ), 'enable': (Act.ENABLE, {Cmd.ARG_CSEKEYPAIR: processCSEKeyPair, } ), 'end': (Act.END, {Cmd.ARG_MEETCONFERENCE: endMeetConference, } ), 'export': (Act.EXPORT, {Cmd.ARG_MESSAGE: exportMessages, Cmd.ARG_THREAD: exportThreads, } ), 'get': (Act.DOWNLOAD, {Cmd.ARG_DOCUMENT: getGoogleDocument, Cmd.ARG_DRIVEFILE: getDriveFile, Cmd.ARG_NOTEATTACHMENT: getNoteAttachments, Cmd.ARG_PEOPLECONTACTPHOTO: getUserPeopleContactPhoto, Cmd.ARG_PHOTO: getUserPhoto, Cmd.ARG_PROFILE_PHOTO: getProfilePhoto, } ), 'hide': (Act.HIDE, {Cmd.ARG_SHAREDDRIVE: hideUnhideSharedDrive, } ), 'import': (Act.IMPORT, {Cmd.ARG_EVENT: importCalendarEvent, Cmd.ARG_MESSAGE: importMessage, Cmd.ARG_TASKLIST: importTasklist, } ), 'info': (Act.INFO, {Cmd.ARG_CALENDAR: infoCalendars, Cmd.ARG_CALENDARACL: infoCalendarACLs, Cmd.ARG_CHATEMOJI: infoChatEmoji, Cmd.ARG_CHATEVENT: infoChatEvent, Cmd.ARG_CHATMEMBER: infoChatMember, Cmd.ARG_CHATMESSAGE: infoChatMessage, Cmd.ARG_CHATSPACE: infoChatSpace, Cmd.ARG_CHATSPACEDM: infoChatSpaceDM, Cmd.ARG_CIGROUPMEMBERS: infoCIGroupMembers, Cmd.ARG_CSEIDENTITY: processCSEIdentity, Cmd.ARG_CSEKEYPAIR: processCSEKeyPair, Cmd.ARG_DRIVEFILE: showFileInfo, Cmd.ARG_DRIVEFILEACL: infoDriveFileACLs, Cmd.ARG_DRIVELABEL: infoDriveLabels, Cmd.ARG_EVENT: infoCalendarEvents, Cmd.ARG_FILTER: infoFilters, Cmd.ARG_FORWARDINGADDRESS: infoForwardingAddresses, Cmd.ARG_GROUPMEMBERS: infoGroupMembers, Cmd.ARG_MEETSPACE: infoMeetSpace, Cmd.ARG_NOTE: deleteInfoNotes, Cmd.ARG_PEOPLECONTACT: infoUserPeopleContacts, Cmd.ARG_PEOPLECONTACTGROUP: infoUserPeopleContactGroups, Cmd.ARG_SENDAS: deleteInfoSendAs, Cmd.ARG_SHAREDDRIVE: infoSharedDrive, Cmd.ARG_SHEET: infoPrintShowSheets, Cmd.ARG_SITE: deprecatedUserSites, Cmd.ARG_SITEACL: deprecatedUserSites, Cmd.ARG_TASK: processTasks, Cmd.ARG_TASKLIST: processTasklists, Cmd.ARG_USER: infoUsers, } ), 'insert': (Act.INSERT, {Cmd.ARG_MESSAGE: insertMessage, } ), 'modify': (Act.MODIFY, {Cmd.ARG_CALENDAR: modifyCalendars, Cmd.ARG_CHATMEMBER: deleteUpdateChatMember, Cmd.ARG_MESSAGE: processMessages, Cmd.ARG_THREAD: processThreads, } ), 'move': (Act.MOVE, {Cmd.ARG_DRIVEFILE: moveDriveFile, Cmd.ARG_EVENT: moveCalendarEvents, Cmd.ARG_CHATSECTIONITEM: moveShowChatSectionItem, Cmd.ARG_OTHERCONTACT: processUserPeopleOtherContacts, Cmd.ARG_TASK: processTasks, } ), 'obliterate': (Act.OBLITERATE, {Cmd.ARG_CSEKEYPAIR: processCSEKeyPair, } ), 'purge': (Act.PURGE, {Cmd.ARG_DRIVEFILE: purgeDriveFile, Cmd.ARG_EVENT: purgeCalendarEvents, } ), 'print': (Act.PRINT, {Cmd.ARG_ANALYTICACCOUNT: printShowAnalyticAccounts, Cmd.ARG_ANALYTICACCOUNTSUMMARY: printShowAnalyticAccountSummaries, Cmd.ARG_ANALYTICDATASTREAM: printShowAnalyticDatastreams, Cmd.ARG_ANALYTICPROPERTY: printShowAnalyticProperties, Cmd.ARG_ASP: printShowASPs, Cmd.ARG_BACKUPCODE: printShowBackupCodes, Cmd.ARG_BUSINESSPROFILEACCOUNT: printShowBusinessProfileAccounts, Cmd.ARG_CALENDAR: printShowCalendars, Cmd.ARG_CALENDARACL: printShowCalendarACLs, Cmd.ARG_CALSETTINGS: printShowCalSettings, Cmd.ARG_CHATEMOJI: printShowChatEmojis, Cmd.ARG_CHATEVENT: printShowChatEvents, Cmd.ARG_CHATMEMBER: printShowChatMembers, Cmd.ARG_CHATMESSAGE: printShowChatMessages, Cmd.ARG_CHATSEARCHMESSAGE: printShowChatSearchMessages, Cmd.ARG_CHATSECTION: printShowChatSections, Cmd.ARG_CHATSECTIONITEM: printShowChatSectionItems, Cmd.ARG_CHATSPACE: printShowChatSpaces, Cmd.ARG_CLASSROOMINVITATION: printShowClassroomInvitations, Cmd.ARG_CLASSROOMPROFILE: printShowClassroomProfile, Cmd.ARG_CONTACTDELEGATE: printShowContactDelegates, Cmd.ARG_CSEIDENTITY: printShowCSEIdentities, Cmd.ARG_CSEKEYPAIR: printShowCSEKeyPairs, Cmd.ARG_LOOKERSTUDIOASSET: printShowLookerStudioAssets, Cmd.ARG_LOOKERSTUDIOPERMISSION: printShowLookerStudioPermissions, Cmd.ARG_DELEGATE: printShowDelegates, Cmd.ARG_DISKUSAGE: printDiskUsage, Cmd.ARG_DRIVEACTIVITY: printDriveActivity, Cmd.ARG_DRIVEFILEACL: printShowDriveFileACLs, Cmd.ARG_DRIVELABEL: printShowDriveLabels, Cmd.ARG_DRIVELABELPERMISSION: printShowDriveLabelPermissions, Cmd.ARG_DRIVELASTMODIFICATION: printShowDrivelastModifications, Cmd.ARG_DRIVESETTINGS: printShowDriveSettings, Cmd.ARG_EMPTYDRIVEFOLDERS: printEmptyDriveFolders, Cmd.ARG_EVENT: printShowCalendarEvents, Cmd.ARG_FILECOMMENT: printShowFileComments, Cmd.ARG_FILECOUNT: printShowFileCounts, Cmd.ARG_FILEINFO: showFileInfo, Cmd.ARG_FILELIST: printFileList, Cmd.ARG_FILEPATH: printShowFilePaths, Cmd.ARG_FILEREVISION: printShowFileRevisions, Cmd.ARG_FILESHARECOUNT: printShowFileShareCounts, Cmd.ARG_FILETREE: printShowFileTree, Cmd.ARG_FILTER: printShowFilters, Cmd.ARG_FOCUSTIME: printShowFocusTime, Cmd.ARG_FORM: printShowForms, Cmd.ARG_FORMRESPONSE: printShowFormResponses, Cmd.ARG_FORWARD: printShowForward, Cmd.ARG_FORWARDINGADDRESS: printShowForwardingAddresses, Cmd.ARG_GMAILPROFILE: printShowGmailProfile, Cmd.ARG_GROUP: printShowUserGroups, Cmd.ARG_GROUPSLIST: printUserGroupsList, Cmd.ARG_GROUPTREE: printShowGroupTree, Cmd.ARG_GUARDIAN: printShowGuardians, Cmd.ARG_IMAP: printShowImap, Cmd.ARG_LABEL: printShowLabels, Cmd.ARG_LANGUAGE: printShowLanguage, Cmd.ARG_MEETCONFERENCE: printShowMeetConferences, Cmd.ARG_MEETPARTICIPANT: printShowMeetParticipants, Cmd.ARG_MEETRECORDING: printShowMeetRecordings, Cmd.ARG_MEETTRANSCRIPT: printShowMeetTranscripts, Cmd.ARG_MESSAGE: printShowMessages, Cmd.ARG_NOTE: printShowNotes, Cmd.ARG_OTHERCONTACT: printShowUserPeopleOtherContacts, Cmd.ARG_OUTOFOFFICE: printShowOutOfOffice, Cmd.ARG_FILEPARENTTREE: printFileParentTree, Cmd.ARG_PEOPLECONTACT: printShowUserPeopleContacts, Cmd.ARG_PEOPLECONTACTGROUP: printShowUserPeopleContactGroups, Cmd.ARG_PEOPLEPROFILE: printShowUserPeopleProfiles, Cmd.ARG_POP: printShowPop, Cmd.ARG_SENDAS: printShowSendAs, Cmd.ARG_SHAREDDRIVE: printShowSharedDrives, Cmd.ARG_SHAREDDRIVEACLS: printShowSharedDriveACLs, Cmd.ARG_SHAREDDRIVEORGANIZERS: printSharedDriveOrganizers, Cmd.ARG_SHEET: infoPrintShowSheets, Cmd.ARG_SHEETRANGE: printShowSheetRanges, Cmd.ARG_SIGNATURE: printShowSignature, Cmd.ARG_SMIME: printShowSmimes, Cmd.ARG_SITE: deprecatedUserSites, Cmd.ARG_SITEACL: deprecatedUserSites, Cmd.ARG_SITEACTIVITY: deprecatedUserSites, Cmd.ARG_TAGMANAGERACCOUNT: printShowTagManagerAccounts, Cmd.ARG_TAGMANAGERCONTAINER: printShowTagManagerContainers, Cmd.ARG_TAGMANAGERPERMISSION: printShowTagManagerPermissions, Cmd.ARG_TAGMANAGERTAG: printShowTagManagerTags, Cmd.ARG_TAGMANAGERWORKSPACE: printShowTagManagerWorkspaces, Cmd.ARG_TASK: printShowTasks, Cmd.ARG_TASKLIST: printShowTasklists, Cmd.ARG_THREAD: printShowThreads, Cmd.ARG_TOKEN: printShowTokens, Cmd.ARG_USER: doPrintUserEntity, Cmd.ARG_USERLIST: doPrintUserList, Cmd.ARG_VACATION: printShowVacation, Cmd.ARG_VAULTHOLD: printShowUserVaultHolds, Cmd.ARG_WEBMASTERSITE: printShowWebMasterSites, Cmd.ARG_WEBRESOURCE: printShowWebResources, Cmd.ARG_WORKINGLOCATION: printShowWorkingLocation, Cmd.ARG_YOUTUBECHANNEL: printShowYouTubeChannel, } ), 'process': (Act.PROCESS, {Cmd.ARG_FILEDRIVELABEL: processFileDriveLabels, } ), 'remove': (Act.REMOVE, {Cmd.ARG_CALENDAR: removeCalendars, Cmd.ARG_CHATMEMBER: deleteUpdateChatMember, Cmd.ARG_DRIVELABELPERMISSION: deleteDriveLabelPermissions, } ), 'replacedomain': (Act.REPLACE_DOMAIN, {Cmd.ARG_PEOPLECONTACT: dedupReplaceDomainUserPeopleContacts, } ), 'show': (Act.SHOW, {Cmd.ARG_ANALYTICACCOUNT: printShowAnalyticAccounts, Cmd.ARG_ANALYTICACCOUNTSUMMARY: printShowAnalyticAccountSummaries, Cmd.ARG_ANALYTICDATASTREAM: printShowAnalyticDatastreams, Cmd.ARG_ANALYTICPROPERTY: printShowAnalyticProperties, Cmd.ARG_ASP: printShowASPs, Cmd.ARG_BACKUPCODE: printShowBackupCodes, Cmd.ARG_BUSINESSPROFILEACCOUNT: printShowBusinessProfileAccounts, Cmd.ARG_CALENDAR: printShowCalendars, Cmd.ARG_CALENDARACL: printShowCalendarACLs, Cmd.ARG_CALSETTINGS: printShowCalSettings, Cmd.ARG_CHATEMOJI: printShowChatEmojis, Cmd.ARG_CHATEVENT: printShowChatEvents, Cmd.ARG_CHATMEMBER: printShowChatMembers, Cmd.ARG_CHATMESSAGE: printShowChatMessages, Cmd.ARG_CHATSEARCHMESSAGE: printShowChatSearchMessages, Cmd.ARG_CHATSECTION: printShowChatSections, Cmd.ARG_CHATSECTIONITEM: printShowChatSectionItems, Cmd.ARG_CHATSPACE: printShowChatSpaces, Cmd.ARG_CLASSROOMINVITATION: printShowClassroomInvitations, Cmd.ARG_CLASSROOMPROFILE: printShowClassroomProfile, Cmd.ARG_CONTACTDELEGATE: printShowContactDelegates, Cmd.ARG_COUNT: showCountUser, Cmd.ARG_CSEIDENTITY: printShowCSEIdentities, Cmd.ARG_CSEKEYPAIR: printShowCSEKeyPairs, Cmd.ARG_LOOKERSTUDIOASSET: printShowLookerStudioAssets, Cmd.ARG_LOOKERSTUDIOPERMISSION: printShowLookerStudioPermissions, Cmd.ARG_DELEGATE: printShowDelegates, Cmd.ARG_DISKUSAGE: printDiskUsage, Cmd.ARG_DRIVEACTIVITY: printDriveActivity, Cmd.ARG_DRIVEFILEACL: printShowDriveFileACLs, Cmd.ARG_DRIVELABEL: printShowDriveLabels, Cmd.ARG_DRIVELABELPERMISSION: printShowDriveLabelPermissions, Cmd.ARG_DRIVELASTMODIFICATION: printShowDrivelastModifications, Cmd.ARG_DRIVESETTINGS: printShowDriveSettings, Cmd.ARG_EVENT: printShowCalendarEvents, Cmd.ARG_FILECOMMENT: printShowFileComments, Cmd.ARG_FILECOUNT: printShowFileCounts, Cmd.ARG_FILEINFO: showFileInfo, Cmd.ARG_FILELIST: printFileList, Cmd.ARG_FILEPATH: printShowFilePaths, Cmd.ARG_FILEREVISION: printShowFileRevisions, Cmd.ARG_FILESHARECOUNT: printShowFileShareCounts, Cmd.ARG_FILETREE: printShowFileTree, Cmd.ARG_FILTER: printShowFilters, Cmd.ARG_FOCUSTIME: printShowFocusTime, Cmd.ARG_FORM: printShowForms, Cmd.ARG_FORMRESPONSE: printShowFormResponses, Cmd.ARG_FORWARD: printShowForward, Cmd.ARG_FORWARDINGADDRESS: printShowForwardingAddresses, Cmd.ARG_GMAILPROFILE: printShowGmailProfile, Cmd.ARG_GROUP: printShowUserGroups, Cmd.ARG_GROUPTREE: printShowGroupTree, Cmd.ARG_GUARDIAN: printShowGuardians, Cmd.ARG_IMAP: printShowImap, Cmd.ARG_LABEL: printShowLabels, Cmd.ARG_LANGUAGE: printShowLanguage, Cmd.ARG_MEETCONFERENCE: printShowMeetConferences, Cmd.ARG_MEETPARTICIPANT: printShowMeetParticipants, Cmd.ARG_MEETRECORDING: printShowMeetRecordings, Cmd.ARG_MEETTRANSCRIPT: printShowMeetTranscripts, Cmd.ARG_MESSAGE: printShowMessages, Cmd.ARG_NOTE: printShowNotes, Cmd.ARG_OTHERCONTACT: printShowUserPeopleOtherContacts, Cmd.ARG_OUTOFOFFICE: printShowOutOfOffice, Cmd.ARG_PEOPLECONTACT: printShowUserPeopleContacts, Cmd.ARG_PEOPLECONTACTGROUP: printShowUserPeopleContactGroups, Cmd.ARG_PEOPLEPROFILE: printShowUserPeopleProfiles, Cmd.ARG_POP: printShowPop, Cmd.ARG_PROFILE: showProfile, Cmd.ARG_SENDAS: printShowSendAs, Cmd.ARG_SHAREDDRIVE: printShowSharedDrives, Cmd.ARG_SHAREDDRIVEACLS: printShowSharedDriveACLs, Cmd.ARG_SHAREDDRIVEINFO: infoSharedDrive, Cmd.ARG_SHAREDDRIVETHEMES: showSharedDriveThemes, Cmd.ARG_SHEET: infoPrintShowSheets, Cmd.ARG_SHEETRANGE: printShowSheetRanges, Cmd.ARG_SIGNATURE: printShowSignature, Cmd.ARG_SITE: deprecatedUserSites, Cmd.ARG_SITEACL: deprecatedUserSites, Cmd.ARG_SMIME: printShowSmimes, Cmd.ARG_TAGMANAGERACCOUNT: printShowTagManagerAccounts, Cmd.ARG_TAGMANAGERCONTAINER: printShowTagManagerContainers, Cmd.ARG_TAGMANAGERPERMISSION: printShowTagManagerPermissions, Cmd.ARG_TAGMANAGERTAG: printShowTagManagerTags, Cmd.ARG_TAGMANAGERWORKSPACE: printShowTagManagerWorkspaces, Cmd.ARG_TASK: printShowTasks, Cmd.ARG_TASKLIST: printShowTasklists, Cmd.ARG_THREAD: printShowThreads, Cmd.ARG_TOKEN: printShowTokens, Cmd.ARG_VAULTHOLD: printShowUserVaultHolds, Cmd.ARG_VACATION: printShowVacation, Cmd.ARG_WEBMASTERSITE: printShowWebMasterSites, Cmd.ARG_WEBRESOURCE: printShowWebResources, Cmd.ARG_WORKINGLOCATION: printShowWorkingLocation, Cmd.ARG_YOUTUBECHANNEL: printShowYouTubeChannel, } ), 'spam': (Act.SPAM, {Cmd.ARG_MESSAGE: processMessages, Cmd.ARG_THREAD: processThreads, } ), 'suspend': (Act.SUSPEND, {Cmd.ARG_USER: suspendUnsuspendUsers, } ), 'sync': (Act.SYNC, {Cmd.ARG_CHATMEMBER: syncChatMembers, Cmd.ARG_GROUP: syncUserWithGroups, Cmd.ARG_GUARDIAN: syncGuardians, Cmd.ARG_LICENSE: syncLicense, Cmd.ARG_SHAREDDRIVEACLS: copySyncSharedDriveACLs, } ), 'transfer': (Act.TRANSFER, {Cmd.ARG_DRIVE: transferDrive, Cmd.ARG_OWNERSHIP: transferOwnership, } ), 'trash': (Act.TRASH, {Cmd.ARG_DRIVEFILE: trashDriveFile, Cmd.ARG_MESSAGE: processMessages, Cmd.ARG_THREAD: processThreads, } ), 'undelete': (Act.UNDELETE, {Cmd.ARG_USER: undeleteUsers, } ), 'unhide': (Act.UNHIDE, {Cmd.ARG_SHAREDDRIVE: hideUnhideSharedDrive, } ), 'unsuspend': (Act.UNSUSPEND, {Cmd.ARG_USER: suspendUnsuspendUsers, } ), 'untrash': (Act.UNTRASH, {Cmd.ARG_DRIVEFILE: untrashDriveFile, Cmd.ARG_MESSAGE: processMessages, Cmd.ARG_THREAD: processThreads, } ), 'update': (Act.UPDATE, {Cmd.ARG_BACKUPCODE: updateBackupCodes, Cmd.ARG_CALATTENDEES: updateCalendarAttendees, Cmd.ARG_CALENDAR: updateCalendars, Cmd.ARG_CALENDARACL: updateCalendarACLs, Cmd.ARG_CHATMEMBER: deleteUpdateChatMember, Cmd.ARG_CHATMESSAGE: updateChatMessage, Cmd.ARG_CHATSECTION: createUpdateChatSection, Cmd.ARG_CHATSPACE: updateChatSpace, Cmd.ARG_CSEIDENTITY: createUpdateCSEIdentity, Cmd.ARG_LOOKERSTUDIOPERMISSION: processLookerStudioPermissions, Cmd.ARG_DELEGATE: updateDelegates, Cmd.ARG_DOCUMENT: updateGoogleDocument, Cmd.ARG_DRIVEFILE: updateDriveFile, Cmd.ARG_DRIVEFILEACL: updateDriveFileACLs, Cmd.ARG_EVENT: updateCalendarEvents, Cmd.ARG_FILEREVISION: updateFileRevisions, Cmd.ARG_FORM: updateForm, Cmd.ARG_GROUP: updateUserGroups, Cmd.ARG_LABEL: updateLabels, Cmd.ARG_LABELID: updateLabelSettingsById, Cmd.ARG_LABELSETTINGS: updateLabelSettings, Cmd.ARG_LICENSE: updateLicense, Cmd.ARG_MEETSPACE: updateMeetSpace, Cmd.ARG_OTHERCONTACT: processUserPeopleOtherContacts, Cmd.ARG_PEOPLECONTACT: updateUserPeopleContacts, Cmd.ARG_PEOPLECONTACTGROUP: updateUserPeopleContactGroup, Cmd.ARG_PEOPLECONTACTPHOTO: updateUserPeopleContactPhoto, Cmd.ARG_PHOTO: updatePhoto, Cmd.ARG_SENDAS: createUpdateSendAs, Cmd.ARG_SERVICEACCOUNT: checkServiceAccount, Cmd.ARG_SHAREDDRIVE: updateSharedDrive, Cmd.ARG_SHEET: updateSheets, Cmd.ARG_SHEETRANGE: updateSheetRanges, Cmd.ARG_SMIME: updateSmime, Cmd.ARG_SITE: deprecatedUserSites, Cmd.ARG_SITEACL: deprecatedUserSites, Cmd.ARG_TASK: processTasks, Cmd.ARG_TASKLIST: processTasklists, Cmd.ARG_USER: updateUsers, } ), 'watch': (Act.WATCH, {Cmd.ARG_GMAIL: watchGmail, } ), 'wipe': (Act.WIPE, {Cmd.ARG_EVENT: wipeCalendarEvents, } ), } # User commands aliases USER_COMMANDS_ALIASES = { 'del': 'delete', 'delegates': 'delegate', 'deprov': 'deprovision', 'imap4': 'imap', 'pop3': 'pop', 'sig': 'signature', 'utf': 'unicode', 'utf-8': 'unicode', 'utf8': 'unicode', } USER_COMMANDS_OBJ_ALIASES = { Cmd.ARG_3LO: Cmd.ARG_TOKEN, Cmd.ARG_ALIASES: Cmd.ARG_ALIAS, Cmd.ARG_APPLICATIONSPECIFICPASSWORDS: Cmd.ARG_ASP, Cmd.ARG_ANALYTICACCOUNTS: Cmd.ARG_ANALYTICACCOUNT, Cmd.ARG_ANALYTICACCOUNTSUMMARIES: Cmd.ARG_ANALYTICACCOUNTSUMMARY, Cmd.ARG_ANALYTICDATASTREAMS: Cmd.ARG_ANALYTICDATASTREAM, Cmd.ARG_ANALYTICPROPERTIES: Cmd.ARG_ANALYTICPROPERTY, Cmd.ARG_ASPS: Cmd.ARG_ASP, Cmd.ARG_BACKUPCODES: Cmd.ARG_BACKUPCODE, Cmd.ARG_BUSINESSPROFILEACCOUNTS: Cmd.ARG_BUSINESSPROFILEACCOUNT, Cmd.ARG_CALENDARS: Cmd.ARG_CALENDAR, Cmd.ARG_CALENDARACLS: Cmd.ARG_CALENDARACL, Cmd.ARG_CLASSIFICATIONLABEL: Cmd.ARG_DRIVELABEL, Cmd.ARG_CLASSIFICATIONLABELS: Cmd.ARG_DRIVELABEL, Cmd.ARG_CLASSIFICATIONLABELPERMISSION: Cmd.ARG_DRIVELABELPERMISSION, Cmd.ARG_CLASSIFICATIONLABELPERMISSIONS: Cmd.ARG_DRIVELABELPERMISSION, Cmd.ARG_CLASSROOMINVITATIONS: Cmd.ARG_CLASSROOMINVITATION, Cmd.ARG_CHATEMOJIS: Cmd.ARG_CHATEMOJI, Cmd.ARG_CHATEVENTS: Cmd.ARG_CHATEVENT, Cmd.ARG_CHATMEMBERS: Cmd.ARG_CHATMEMBER, Cmd.ARG_CHATMESSAGES: Cmd.ARG_CHATMESSAGE, Cmd.ARG_CHATSEARCHMESSAGES: Cmd.ARG_CHATSEARCHMESSAGE, Cmd.ARG_CHATSECTIONS: Cmd.ARG_CHATSECTION, Cmd.ARG_CHATSECTIONITEMS: Cmd.ARG_CHATSECTIONITEM, Cmd.ARG_CHATSPACES: Cmd.ARG_CHATSPACE, Cmd.ARG_CIMEMBER: Cmd.ARG_CIGROUPMEMBERS, Cmd.ARG_CIMEMBERS: Cmd.ARG_CIGROUPMEMBERS, Cmd.ARG_CONTACT: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_CONTACTS: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_CONTACTDELEGATES: Cmd.ARG_CONTACTDELEGATE, Cmd.ARG_CONTACTGROUP: Cmd.ARG_PEOPLECONTACTGROUP, Cmd.ARG_CONTACTGROUPS: Cmd.ARG_PEOPLECONTACTGROUP, Cmd.ARG_CONTACTPHOTO: Cmd.ARG_PEOPLECONTACTPHOTO, Cmd.ARG_CONTACTPHOTOS: Cmd.ARG_PEOPLECONTACTPHOTO, Cmd.ARG_CSEIDENTITIES: Cmd.ARG_CSEIDENTITY, Cmd.ARG_CSEKEYPAIRS: Cmd.ARG_CSEKEYPAIR, Cmd.ARG_COUNTS: Cmd.ARG_COUNT, Cmd.ARG_DATASTUDIOASSET: Cmd.ARG_LOOKERSTUDIOASSET, Cmd.ARG_DATASTUDIOPERMISSION: Cmd.ARG_LOOKERSTUDIOPERMISSION, Cmd.ARG_DATASTUDIOASSETS: Cmd.ARG_LOOKERSTUDIOASSET, Cmd.ARG_DATASTUDIOPERMISSIONS: Cmd.ARG_LOOKERSTUDIOPERMISSION, Cmd.ARG_LOOKERSTUDIOASSETS: Cmd.ARG_LOOKERSTUDIOASSET, Cmd.ARG_LOOKERSTUDIOPERMISSIONS: Cmd.ARG_LOOKERSTUDIOPERMISSION, Cmd.ARG_DELEGATES: Cmd.ARG_DELEGATE, Cmd.ARG_DOMAINCONTACT: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_DOMAINCONTACTS: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_DRIVEFILEACLS: Cmd.ARG_DRIVEFILEACL, Cmd.ARG_DRIVEFILESHORTCUTS: Cmd.ARG_DRIVEFILESHORTCUT, Cmd.ARG_DRIVELABELS: Cmd.ARG_DRIVELABEL, Cmd.ARG_DRIVELABELPERMISSIONS: Cmd.ARG_DRIVELABELPERMISSION, Cmd.ARG_DRIVELASTMODIFICATIONS: Cmd.ARG_DRIVELASTMODIFICATION, Cmd.ARG_EVENTS: Cmd.ARG_EVENT, Cmd.ARG_FILECOMMENTS: Cmd.ARG_FILECOMMENT, Cmd.ARG_FILECOUNTS: Cmd.ARG_FILECOUNT, Cmd.ARG_FILEDRIVELABELS: Cmd.ARG_FILEDRIVELABEL, Cmd.ARG_FILEPATHS: Cmd.ARG_FILEPATH, Cmd.ARG_FILEREVISIONS: Cmd.ARG_FILEREVISION, Cmd.ARG_FILESHARECOUNTS: Cmd.ARG_FILESHARECOUNT, Cmd.ARG_FILTERS: Cmd.ARG_FILTER, Cmd.ARG_FOCUSTIMES: Cmd.ARG_FOCUSTIME, Cmd.ARG_FORMS: Cmd.ARG_FORM, Cmd.ARG_FORMRESPONSES: Cmd.ARG_FORMRESPONSE, Cmd.ARG_FORWARDS: Cmd.ARG_FORWARD, Cmd.ARG_FORWARDINGADDRESSES: Cmd.ARG_FORWARDINGADDRESS, Cmd.ARG_GROUPS: Cmd.ARG_GROUP, Cmd.ARG_GROUPLIST: Cmd.ARG_GROUPSLIST, Cmd.ARG_GROUPSMEMBERS: Cmd.ARG_GROUPMEMBERS, Cmd.ARG_GUARDIANINVITATIONS: Cmd.ARG_GUARDIANINVITATION, Cmd.ARG_GUARDIANINVITE: Cmd.ARG_GUARDIANINVITATION, Cmd.ARG_GUARDIANS: Cmd.ARG_GUARDIAN, Cmd.ARG_GUESTUSERS: Cmd.ARG_GUESTUSER, Cmd.ARG_HOLD: Cmd.ARG_VAULTHOLD, Cmd.ARG_HOLDS: Cmd.ARG_VAULTHOLD, Cmd.ARG_IMAP4: Cmd.ARG_IMAP, Cmd.ARG_INVITEGUARDIAN: Cmd.ARG_GUARDIANINVITATION, Cmd.ARG_LABELS: Cmd.ARG_LABEL, Cmd.ARG_LICENCE: Cmd.ARG_LICENSE, Cmd.ARG_LICENCES: Cmd.ARG_LICENSE, Cmd.ARG_LICENSES: Cmd.ARG_LICENSE, Cmd.ARG_MEETCONFERENCES: Cmd.ARG_MEETCONFERENCE, Cmd.ARG_MEETPARTICIPANTS: Cmd.ARG_MEETPARTICIPANT, Cmd.ARG_MEETRECORDINGS: Cmd.ARG_MEETRECORDING, Cmd.ARG_MEETTRANSCRIPTS: Cmd.ARG_MEETTRANSCRIPT, Cmd.ARG_MEETSPACES: Cmd.ARG_MEETSPACE, Cmd.ARG_MEMBER: Cmd.ARG_GROUPMEMBERS, Cmd.ARG_MEMBERS: Cmd.ARG_GROUPMEMBERS, Cmd.ARG_MESSAGES: Cmd.ARG_MESSAGE, Cmd.ARG_NOTES: Cmd.ARG_NOTE, Cmd.ARG_NOTEACLS: Cmd.ARG_NOTEACL, Cmd.ARG_NOTESACL: Cmd.ARG_NOTEACL, Cmd.ARG_NOTESACLS: Cmd.ARG_NOTEACL, Cmd.ARG_NOTEATTACHMENTS: Cmd.ARG_NOTEATTACHMENT, Cmd.ARG_OAUTH: Cmd.ARG_TOKEN, Cmd.ARG_OTHERCONTACTS: Cmd.ARG_OTHERCONTACT, Cmd.ARG_OUTOFOFFICES: Cmd.ARG_OUTOFOFFICE, Cmd.ARG_PEOPLECONTACTS: Cmd.ARG_PEOPLECONTACT, Cmd.ARG_PEOPLECONTACTGROUPS: Cmd.ARG_PEOPLECONTACTGROUP, Cmd.ARG_PEOPLECONTACTPHOTOS: Cmd.ARG_PEOPLECONTACTPHOTO, Cmd.ARG_PEOPLE: Cmd.ARG_PEOPLEPROFILE, Cmd.ARG_PEOPLEPROFILES: Cmd.ARG_PEOPLEPROFILE, Cmd.ARG_PERMISSIONS: Cmd.ARG_PERMISSION, Cmd.ARG_POP3: Cmd.ARG_POP, Cmd.ARG_SECCALS: Cmd.ARG_CALENDAR, Cmd.ARG_SHAREDDRIVES: Cmd.ARG_SHAREDDRIVE, Cmd.ARG_SHEETS: Cmd.ARG_SHEET, Cmd.ARG_SHEETRANGES: Cmd.ARG_SHEETRANGE, Cmd.ARG_SIG: Cmd.ARG_SIGNATURE, Cmd.ARG_SITES: Cmd.ARG_SITE, Cmd.ARG_SITEACLS: Cmd.ARG_SITEACL, Cmd.ARG_SMIMES: Cmd.ARG_SMIME, Cmd.ARG_TAGMANAGERACCOUNTS: Cmd.ARG_TAGMANAGERACCOUNT, Cmd.ARG_TAGMANAGERCONTAINERS: Cmd.ARG_TAGMANAGERCONTAINER, Cmd.ARG_TAGMANAGERPERMISSIONS: Cmd.ARG_TAGMANAGERPERMISSION, Cmd.ARG_TAGMANAGERTAGS: Cmd.ARG_TAGMANAGERTAG, Cmd.ARG_TAGMANAGERWORKSPACES: Cmd.ARG_TAGMANAGERWORKSPACE, Cmd.ARG_TASKS: Cmd.ARG_TASK, Cmd.ARG_TASKLISTS: Cmd.ARG_TASKLIST, Cmd.ARG_TEAMDRIVE: Cmd.ARG_SHAREDDRIVE, Cmd.ARG_TEAMDRIVES: Cmd.ARG_SHAREDDRIVE, Cmd.ARG_TEAMDRIVEACLS: Cmd.ARG_SHAREDDRIVEACLS, Cmd.ARG_TEAMDRIVEINFO: Cmd.ARG_SHAREDDRIVEINFO, Cmd.ARG_TEAMDRIVEORGANIZERS: Cmd.ARG_SHAREDDRIVEORGANIZERS, Cmd.ARG_TEAMDRIVETHEMES: Cmd.ARG_SHAREDDRIVETHEMES, Cmd.ARG_THREADS: Cmd.ARG_THREAD, Cmd.ARG_TOKENS: Cmd.ARG_TOKEN, Cmd.ARG_USERS: Cmd.ARG_USER, Cmd.ARG_VAULTHOLDS: Cmd.ARG_VAULTHOLD, Cmd.ARG_VERIFICATIONCODES: Cmd.ARG_BACKUPCODE, Cmd.ARG_WEBMASTERSITES: Cmd.ARG_WEBMASTERSITE, Cmd.ARG_WEBRESOURCES: Cmd.ARG_WEBRESOURCE, Cmd.ARG_WORKINGLOCATIONS: Cmd.ARG_WORKINGLOCATION, Cmd.ARG_YOUTUBECHANNELS: Cmd.ARG_YOUTUBECHANNEL, } # Process GAM command def ProcessGAMCommand(args, processGamCfg=True, inLoop=False, closeSTD=True): setSysExitRC(0) Cmd.InitializeArguments(args) Ind.Reset() try: logCmd = Cmd.QuotedArgumentList(args) if checkArgumentPresent(Cmd.LOOP_CMD): if processGamCfg and (not SetGlobalVariables()): sys.exit(GM.Globals[GM.SYSEXITRC]) doLoop(logCmd) sys.exit(GM.Globals[GM.SYSEXITRC]) if processGamCfg and (not SetGlobalVariables()): sys.exit(GM.Globals[GM.SYSEXITRC]) if checkArgumentPresent(Cmd.LOOP_CMD): doLoop(logCmd) sys.exit(GM.Globals[GM.SYSEXITRC]) if not Cmd.ArgumentsRemaining(): doUsage() sys.exit(GM.Globals[GM.SYSEXITRC]) CL_command = getChoice(BATCH_CSV_COMMANDS, defaultChoice=None) if CL_command: Act.Set(BATCH_CSV_COMMANDS[CL_command][CMD_ACTION]) if GM.Globals[GM.CMDLOG_LOGGER]: writeGAMCommandLog(GM.Globals, logCmd, '*') BATCH_CSV_COMMANDS[CL_command][CMD_FUNCTION]() sys.exit(GM.Globals[GM.SYSEXITRC]) CL_command = getChoice(MAIN_COMMANDS, defaultChoice=None) if CL_command: adjustRedirectedSTDFilesIfNotMultiprocessing() Act.Set(MAIN_COMMANDS[CL_command][CMD_ACTION]) MAIN_COMMANDS[CL_command][CMD_FUNCTION]() sys.exit(GM.Globals[GM.SYSEXITRC]) CL_command = getChoice(MAIN_COMMANDS_WITH_OBJECTS, defaultChoice=None) if CL_command: adjustRedirectedSTDFilesIfNotMultiprocessing() Act.Set(MAIN_COMMANDS_WITH_OBJECTS[CL_command][CMD_ACTION]) CL_objectName = getChoice(MAIN_COMMANDS_WITH_OBJECTS[CL_command][CMD_FUNCTION], choiceAliases=MAIN_COMMANDS_OBJ_ALIASES) MAIN_COMMANDS_WITH_OBJECTS[CL_command][CMD_FUNCTION][CL_objectName]() sys.exit(GM.Globals[GM.SYSEXITRC]) CL_command = getChoice(COMMANDS_MAP, choiceAliases=COMMANDS_ALIASES, defaultChoice=None) if CL_command: adjustRedirectedSTDFilesIfNotMultiprocessing() COMMANDS_MAP[CL_command]() sys.exit(GM.Globals[GM.SYSEXITRC]) GM.Globals[GM.ENTITY_CL_START] = Cmd.Location() entityType, entityList = getEntityToModify(crosAllowed=True, delayGet=True) if entityType == Cmd.ENTITY_USERS: CL_command = getChoice(list(USER_COMMANDS)+list(USER_COMMANDS_WITH_OBJECTS), choiceAliases=USER_COMMANDS_ALIASES) if (CL_command != 'list') and (GC.Values[GC.AUTO_BATCH_MIN] > 0): _, count, entityList = getEntityArgument(entityList) if count > GC.Values[GC.AUTO_BATCH_MIN]: if GM.Globals[GM.CMDLOG_LOGGER]: writeGAMCommandLog(GM.Globals, logCmd, '*') doAutoBatch(Cmd.ENTITY_USER, entityList, CL_command) sys.exit(GM.Globals[GM.SYSEXITRC]) adjustRedirectedSTDFilesIfNotMultiprocessing() if CL_command in USER_COMMANDS: Act.Set(USER_COMMANDS[CL_command][CMD_ACTION]) USER_COMMANDS[CL_command][CMD_FUNCTION](entityList) else: Act.Set(USER_COMMANDS_WITH_OBJECTS[CL_command][CMD_ACTION]) CL_objectName = getChoice(USER_COMMANDS_WITH_OBJECTS[CL_command][CMD_FUNCTION], choiceAliases=USER_COMMANDS_OBJ_ALIASES, defaultChoice=[Cmd.ARG_USER, NO_DEFAULT][CL_command != 'print']) USER_COMMANDS_WITH_OBJECTS[CL_command][CMD_FUNCTION][CL_objectName](entityList) else: CL_command = getChoice(list(CROS_COMMANDS)+list(CROS_COMMANDS_WITH_OBJECTS)) if (CL_command != 'list') and (GC.Values[GC.AUTO_BATCH_MIN] > 0): _, count, entityList = getEntityArgument(entityList) if count > GC.Values[GC.AUTO_BATCH_MIN]: if GM.Globals[GM.CMDLOG_LOGGER]: writeGAMCommandLog(GM.Globals, logCmd, '*') doAutoBatch(Cmd.ENTITY_CROS, entityList, CL_command) sys.exit(GM.Globals[GM.SYSEXITRC]) adjustRedirectedSTDFilesIfNotMultiprocessing() if CL_command in CROS_COMMANDS: Act.Set(CROS_COMMANDS[CL_command][CMD_ACTION]) CROS_COMMANDS[CL_command][CMD_FUNCTION](entityList) else: Act.Set(CROS_COMMANDS_WITH_OBJECTS[CL_command][CMD_ACTION]) CL_objectName = getChoice(CROS_COMMANDS_WITH_OBJECTS[CL_command][CMD_FUNCTION], choiceAliases=CROS_COMMANDS_OBJ_ALIASES, defaultChoice=NO_DEFAULT) CROS_COMMANDS_WITH_OBJECTS[CL_command][CMD_FUNCTION][CL_objectName](entityList) sys.exit(GM.Globals[GM.SYSEXITRC]) except KeyboardInterrupt: batchWriteStderr('\nControl-C\n') setSysExitRC(KEYBOARD_INTERRUPT_RC) showAPICallsRetryData() adjustRedirectedSTDFilesIfNotMultiprocessing() except OSError as e: printErrorMessage(SOCKET_ERROR_RC, str(e)) showAPICallsRetryData() adjustRedirectedSTDFilesIfNotMultiprocessing() except MemoryError: printErrorMessage(MEMORY_ERROR_RC, Msg.GAM_OUT_OF_MEMORY) showAPICallsRetryData() adjustRedirectedSTDFilesIfNotMultiprocessing() except (GAPI.permissionDenied, GAPI.accessNotConfigured): SvcAcctAPIDisabledExit() except SystemExit as e: GM.Globals[GM.SYSEXITRC] = e.code if GM.Globals[GM.SYSEXITRC] != STDOUT_STDERR_ERROR_RC and not inLoop: showAPICallsRetryData() try: adjustRedirectedSTDFilesIfNotMultiprocessing() except SystemExit: pass except Exception: print_exc(file=sys.stderr) setSysExitRC(UNKNOWN_ERROR_RC) showAPICallsRetryData() adjustRedirectedSTDFilesIfNotMultiprocessing() if processGamCfg: if not inLoop: if GM.Globals.get(GM.SAVED_STDOUT) is not None: sys.stdout = GM.Globals[GM.SAVED_STDOUT] closeSTDFilesIfNotMultiprocessing(closeSTD) if GM.Globals[GM.PID] == 0 and GM.Globals[GM.CMDLOG_LOGGER]: writeGAMCommandLog(GM.Globals, logCmd, GM.Globals[GM.SYSEXITRC]) if not inLoop: closeGAMCommandLog(GM.Globals) return GM.Globals[GM.SYSEXITRC] # Call GAM command (used by batch/loop to invoke sub-commands) def CallGAMCommand(args, processGamCfg=True, inLoop=False, closeSTD=False): return ProcessGAMCommand(args, processGamCfg=processGamCfg, inLoop=inLoop, closeSTD=closeSTD)